部署Nginx+uwsgi+Django


本人環境centos 6.x,是剛裝上的系統。

centos IP:192.168.1.1

python:2.7.11

django:1.9.5

nginx:1.10.1

進去服務器后 就是安裝一大堆東西。

pip(下載django,uwsgi需要用pip下載)

yum install wget -y

wget https://pypi.python.org/packages/e7/a8/7556133689add8d1a54c0b14aeff0acb03c64707ce100ecd53934da1aa13/pip-8.1.2.tar.gz#md5=87083c0b9867963b29f7aba3613e8f4a

tar zxvf pip-8.1.2.tar.gz
cd ./pip-8.1.2
wget http://pypi.python.org/packages/source/s/setuptools/setuptools-0.6c11.tar.gz
tar zxvf setuptools-0.6c11.tar.gz
cd setuptools-0.6c11
python setup.py build
python setup.py install
cd ../
python setup.py install

然后利用pip下載django和uwsgi

pip install django==1.9.5
pip install uwsgi

下載完成之后就可以把你所寫的項目放到服務器上面。我這里距離是放在/project/

然后測試django

python /project/manage.py runserver 192.168.1.1:8000    #按需求更改IP

然后內網訪問192.168.1.1:8000,如果可以正常訪問則OK。

uwsgi

首先新建1個test.uwsgi.py文件在項目的根目錄。即/project (與manage.py同目錄)

文件內容如下:

 1 #coding:utf-8
 2 import os
 3 import sys
 4 reload(sys)
 5 sys.setdefaultencoding('utf8')
 6 
 7 from django.core.wsgi import get_wsgi_application
 8 
 9 os.environ.setdefault("DJANGO_SETTINGS_MODULE", "project.settings")    #project為項目名,請按需求修改
10 
11 application = get_wsgi_application()

 

uwsgi的話有2種開啟方法

第一種是直接在命令行輸入命令打開,如:

uwsgi --http 192.168.1.1:8000 --chdir /project --module test_uwsgi --chmod-socket=666

第二種就是添加ini或xml配置文件

新建文件test.ini在項目根目錄

vi /project/test.ini

[uwsgi]
http = 192.157.1.1:8000 #監聽IP和端口
chdir = /project     #項目根目錄
module = test_uwsgi    #uwsgi文件,注意不用把后綴.py加上去
processes = 4       #開啟4個進程(按需更改)
threads = 2           #每個進程開啟4個線程
enable-threads = True    #支持線程啟動
daemonize = /var/log/uwsgi.log    #后台啟動,並把日志記錄到指定文件
buffer-size = 21573
stats = 192.157.1.1:9000

示例中用的是ini配置文件,如需使用xml配置,請另行百度xml配置文件。更多的參數使用也可以自行百度添加上去

當ini配置文件寫好后執行

uwsgi --ini /project/blog.ini #--ini 表示使用ini配置文件,xml文件就用--xml

做完這些之后就訪問192.168.1.1:8000端口,如無意外的話是可以訪問成功的,但是我搭建的時候是可以訪問成功,但是訪問不了css,js,圖片等靜態文件。

如果出現問題無法訪問成功,請仔細閱讀啟動uwsgi之后彈出來的一系列信息,里面一般都包含有錯誤信息。按照提示修改即可。

因為網頁可以訪問成功而且靜態文件本來就是打算放在nginx上讓用戶直接訪問,所以我就繼續把配置進行下去了。

 

安裝nginx

因為途方便,所以我直接選擇yum 安裝。

wget http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm
chmod +x nginx-release-centos-6-0.el6.ngx.noarch.rpm
rpm -i nginx-release-centos-6-0.el6.ngx.noarch.rpm 
yum install nginx -y 

如無法安裝成功,就在百度上搜其他的安裝方法把nginx裝上。

安裝成功之后,nginx的目錄會在/etc/nginx 下

接下來就要修改nginx 的默認配置了。

查看默認配置文件

cat /etc/nginx/nginx.conf



user  nginx;
worker_processes  1;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}


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

    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;

    keepalive_timeout  65;

    #gzip  on;

    include /etc/nginx/conf.d/*.conf;
}

這是我的默認配置文件,如果我沒記錯的話應該是沒做過任何修改的。請確保里面有include /etc/nginx/conf.d/*.conf;這行

這行的意思就是包含了所有/etc/nginx/conf.d/下 后綴是.conf的配置文件

然后我們在/etc/nginx/conf.d/目錄下創建test.conf

vi  /etc/nginx/conf.d/test.conf


server{
        listen       80 ;    #監聽80端口
        access_log /var/log/nginx/access.log;    #日志文件位置
        error_log  /var/log/nginx/error.log;
        location / {#訪問/時
          include         uwsgi_params; #加載uwsgi模塊
          proxy_pass http://192.168.1.1:8000;  #將連接轉到該IP
        }
        error_page   500 502 503 504  /50x.html;
          location = /50x.html {
              root   html;
        }
        location /static/ {
            alias  /project/static/;    #訪問/static時直接訪問到/project/static 
        }
}

然后就大功告成了。當用戶直接訪問192.168.1.1:80  時  nginx 就會把連接轉到192.168.1.1:8000上。

 

如果文章內有出錯的地方,或者對文章有任何意見,可在評論下說明。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM