Nginx + uWSGI + Django部署

安裝

1.Nginx的安裝

brew nginx

安裝過程中,有兩句提示需要注意:

The default port has been set in /usr/local/etc/nginx/nginx.conf to 8080 so that
nginx can run without sudo.  # 說明了nginx.conf的位置及默認(rèn)為8080端口。

nginx will load all files in /usr/local/etc/nginx/servers/.  # 說明了nginx加載文件的位置。

2.uWSGI安裝

pip uwsgi

文件配置

1.將/usr/local/etc/nginx/文件夾下面的uwsgi_params文件復(fù)制至Django項(xiàng)目文件夾下面(與manage.py處于同一文件級(jí))
2.在項(xiàng)目文件夾下新建mysite_uwsgi.ini文件(vi mystic_uwsgi.ini),寫入如下代碼:

[uwsgi]
socket = 127.0.0.1:3031  # uwsgi運(yùn)行的網(wǎng)絡(luò)接口,與nginx.conf中的配置必須一致。
chdir = /path/to/my/Django/project/  # Django項(xiàng)目文件夾路徑
wsgi-file = project/wsgi.py
processes = 4
threads = 2
stats = 127.0.0.1:9191

3.在項(xiàng)目文件夾下新建mysite_nginx.conf文件,寫入如下代碼:
# mysite_nginx.conf

# the upstream component nginx needs to connect to
upstream django {
    # server unix:///path/to/your/mysite/mysite.sock; # for a file socket
    server 127.0.0.1:3031; # 與mysite_uwsgi.ini文件中的socket配置一致。
}

# configuration of the server
server {
    # the port your site will be served on
    listen      8000;
    # the domain name it will serve for
    server_name localhost; # substitute your machine's IP address or FQDN 真實(shí)場(chǎng)景此處填寫服務(wù)器地址
    charset     utf-8;

    # max upload size
    client_max_body_size 75M;   # adjust to taste

    # Django media
    location /media  {
        alias /path/to/my/Django/project/media;  # your Django project's media files - amend as required
    }

    location /static {
        alias /path/to/my/Django/project/static; # your Django project's static files - amend as required
    }

    # Finally, send all non-media requests to the Django server.
    location / {
        uwsgi_pass  django;
        include     /path/to/my/Django/project/uwsgi_params; # the uwsgi_params file you installed
    }
}

接著,將mysite_nginx.conf文件軟連接至/usr/local/etc/nginx/servers/文件夾,在終端輸入如下指令:

ln -s /path/to/my/Django/project/mysite_nginx.conf
/usr/local/etc/nginx/servers/

以上命令可能需要加入sudo

服務(wù)器啟動(dòng)

1.終端輸入nginx即可啟動(dòng)Nginx服務(wù)器。退出輸入nginx -s quit
2.cd進(jìn)入/path/to/my/Django/project文件夾,輸入uwsgi mysite_uwsgi.ini啟動(dòng)uWSGI服務(wù)器。退出應(yīng)同時(shí)按鍵ctrl c


注意事項(xiàng)

我遇見了一個(gè)大坑的事,我之前上一個(gè)遠(yuǎn)程主機(jī)用的是阿里云ECS,選的是經(jīng)典網(wǎng)絡(luò)。后來專有網(wǎng)絡(luò)的ECS有大優(yōu)惠,就轉(zhuǎn)到專有網(wǎng)絡(luò)了。現(xiàn)在我在專有網(wǎng)絡(luò)上建一個(gè)網(wǎng)站,域名也添加解析了,nginx也安裝了,但網(wǎng)站就是訪問不了,不能出現(xiàn)nginx的歡迎頁(yè)面,困擾了我很久。最終,讓我發(fā)現(xiàn)專有網(wǎng)絡(luò)比以前的經(jīng)典網(wǎng)絡(luò)多了一個(gè)叫安全組的東西,默認(rèn)的安全組策略是限制http80端口訪問的,需要自己開通。真是大坑啊!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容