django+nginx+uwsgi_cent0s7.4 部署

django+nginx+uwsgi_cent0s7.4 部署

 

 

幾條命令

# 查看是否有 uwsgi 相關的進程
ps -aux|grep "uwsgi"

# 殺死有關 uwsgi 相關的進程
pkill -9 uwsgi

# 使用yum install nginx 安裝nginx的安裝目錄
/etc/nginx/

 

 

安裝環境

# 安裝 gcc 環境
yum install -y gcc

# 爲python安裝pip -- 這裏的路徑在執行的時候,估計會有問題,涉及相對路徑和絕對路徑
wget https://pypi.python.org/packages/11/b6/abcb525026a4be042b486df43905d6893fb04f05aac21c32c638e939e447/pip-9.0.1.tar.gz#md5=35f01da33009719497f01a4ba69d63c9
tar -xf pip-9.0.1.tar.gz
cd pip-9.0.1
sudo python setup.py install
cd ..
rm -rf *

# 安裝 Django
pip install django==1.8

# 解決uwsgi安裝報錯問題
yum install -y python-devel.x86_64

# 安裝uwsgi
pip install uwsgi

# 安裝 nginx
yum install -y nginx

 

修改django配置

# 將debug模式改爲False
DEBUG = False

# 容許訪問的 host, 能夠寫成單獨的 host, 也能夠直接寫 "*",表明所有
ALLOWED_HOSTS = ['*', ]

STATIC_URL = '/static/'

# 修改 靜態文件的位置
if DEBUG:
    STATICFILES_DIRS = (
        os.path.join(BASE_DIR, "static"),
    )
else:
    STATIC_ROOT = os.path.join(BASE_DIR, 'static')

 

 

收集靜態文件

python manage.py collectstatic

這條命令會將全部 Django 項目的靜態文件蒐集到上面配置中的,靜態文件的位置html

 

 

修改uwsgi以及nginx配置

  • uwsgi配置

[uwsgi]
# 使用socket協議,直接綁定 127.0.0.1:8888,和下面http任意存在一個就能夠了
# 這裏的1207.0.01:8888 在nginx中也有用到
socket=127.0.0.1:8888
# 使用http協議,監聽端口,能夠是 0.0.0.0:8888(比socket多了一層封裝)
# http = :8888
# 本地項目目錄
chdir = /home/dja/cost_total/
# 項目 wsgi.py 文件目錄
wsgi-file = /home/dja/cost_total/cost_total/wsgi.py
# 該項目使用的進程數,通常使用電腦的 核數
processes = 1
# 開啓的線程數
threads = 1
# 指定靜態文件路徑
static-map=/static=/home/dja/cost_total/static
 
# pidfile = /opt/classiclaw/nginx/logs/uwsgi.pid
# 日誌文件的位置
daemonize = /var/log/nginx/uwsgi.log

   

  • nginx配置

# For more information on configuration, see:
#   * Official English Documentation: http://nginx.org/en/docs/
#   * Official Russian Documentation: http://nginx.org/ru/docs/

user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;

# Load dynamic modules. See /usr/share/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;

events {
    worker_connections 1024;
}

http {
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile            on;
    tcp_nopush          on;
    tcp_nodelay         on;
    keepalive_timeout   65;
    types_hash_max_size 2048;

    include             /etc/nginx/mime.types;
    default_type        application/octet-stream;

    # Load modular configuration files from the /etc/nginx/conf.d directory.
    # See http://nginx.org/en/docs/ngx_core_module.html#include
    # for more information.
    include /etc/nginx/conf.d/*.conf;
	
	# 修改的配置內容 -->開始
	upstream django {   # 設置別名,如將 127.0.0.1:8888 設置一個別名,叫 django,下面能夠直接使用這個別名
						# server unix:///path/to/your/mysite/mysite.sock; # for a file socket
						server 127.0.0.1:8888; # for a web port socket (we'll use this first)
					}

    server {   # 這個server標識我要配置了
        listen 80;  # 80 是http默認的端口, 443 是https默認的端口(網頁通常使用這兩個端口)
        server_name _;  # 你訪問的路徑前面的url名稱,後面能夠寫一條短橫槓(我沒寫,報錯了)
        charset  utf-8; # Nginx編碼

        # 指定靜態文件路徑,含義爲,若是訪問的是 /static 開頭的,走下面的位置獲取內容
		# 以前我寫 /static/ 沒有效果,後來修改成 /static
        location /static { # 若是是 /static 開頭的,那麼直接走這裏,就是 靜態文件存放的位置
            alias  /home/dja/cost_total/static;
        }
		
		# 指定項目路徑uwsgi
		# 若是是 其它開頭的,那麼直接走這裏,就是 咱們django項目中,uwsgi起的服務
        location / {        # 這個location就和我們Django的url(r'^admin/', admin.site.urls),
            include uwsgi_params;  # 導入一個Nginx模塊他是用來和uWSGI進行通信的
            uwsgi_connect_timeout 30;  # 設置鏈接uWSGI超時時間
            # 指定uwsgi的sock文件全部動態請求就會直接丟給它
			uwsgi_pass  django;  # 若是上面寫別名了,那麼,這裏還能夠直接使用別名
            # uwsgi_pass 127.0.0.1:8888;   # 若是上面沒有寫別名,那麼這裏能夠直接寫 url
			# 這個配置和uwsgi中綁定的一致,這裏直接寫127,這樣能夠之經過127,也就是這個代理進行訪問
        }
	}
	# 修改的配置內容 -->結束

 

 

啓動服務

  • 啓動 uwsgi

# 直接uwsgi 後面跟 uwsgi 文件的路徑
uwsgi uwsgi.ini

  

  • 啓動 nginx

# 我使用的系統是 CentOs7.4,因此使用了 systemctl 命令啓動
systemctl start nginx
相關文章
相關標籤/搜索