Nginx+uWSGI+Django+Python在Linux上的部署


搞了一整天,終於以發現自己訪問網絡的端口是錯誤的結束了。

首先要安裝Nginx,uWSGI,Django,Python,這些都可以再網上查到。

安裝好后可以用 whereis 命令查看是否安裝好了各種軟件。

例如 whereis nginx

nginx wget http://nginx.org/download/nginx-0.8.54.tar.gz

Django wget http://media.djangoproject.com/releases/1.2/Django-1.2.5.tar.gz

 

 

1.創建django項目

需要用到命令

—django-admin.py startproject projectname  其中projectname 為自定義的項目名
如果顯示djfenf: command not found  就需要把django-admin.py的路徑加入到環境變量中  可以用
find / -name django-admin.py 來查找django-admin.py在那個路徑
然后 用 
export  PATH=/work/django/:$PATH 
命令添加環境變量,其中/work/django 為django-admin.py的路徑
2.創建django.py文件
在django項目里面的manage.py文件所在的目錄下 創建 django.py
import  os,sys
import  django.core.handlers.wsgi
os.environ['DJANGO_SETTINGS_MODULE']='auth_check.settings'
application=django.core.handlers.wsgi.WSGIHandler()

其中auth_check 為你創建的項目名稱 

3.創建uwsgi.xml文件

在django.py文件的目錄創建uwsgi.xml

<uwsgi>  
<socket>0.0.0.0:9090</socket>  
<listen>20</listen>  
<master>true</master>  
<pidfile>/usr/local/nginx/uwsgi.pid</pidfile>  
<processes>8</processes>  
<module>django</module>
<pythonpath>/root/work/djangodemo/auth_check</pythonpath>  
<profiler>true</profiler>  
<enable-threads>true</enable-threads>  
<logdate>true</logdate>  
</uwsgi> 

其中9090為端口號,這個需要與后面配置的nginx.conf中的端口一樣,module表示上面創建的django.py文件,pythonpath為django.py文件的絕對路徑(可以有多個pythonpath)

4.啟動uwsgi

輸入命令啟動uwsgi

uwsgi -x uwsgi.xml

5.配置nginx

進入nginx目錄  可以通過

which nginx

命令查找,然后再conf目錄下找到 nginx.conf文件,然后更改。

修改前的文件:

 server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html;
            index  index.html index.htm;
        }

修改后:

    server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
 include uwsgi_params;
                uwsgi_pass 127.0.0.1:9090;
        }

其中9090要與上面的xml文件一樣,80為訪問的端口

6.啟動 nginx

/usr/local/nginx/sbin/nginx

每次修改conf文件后都需要重啟nginx

/usr/local/nginx/sbin/nginx -s reload

7.訪問網絡

curl "http://192.168.153.134"

ip地址可以使ifconfig里面的你的本機的地址,可以是0.0.0.0,可以是127.0.0.1

如果返回的html是django的頁面就表明你成功了

訪問網絡時的端口是nginx.conf里面的listen參數,這里是80,不是uwsgi的端口(9090),切記切記。

 8.后記

1)如果訪問網絡,返回的html有“The page you are looking for is temporarily unavailable.”

表明你的uswgi服務沒啟動,或nginx里的端口與uswgi的端口不一致

2)uwsgi有多個參數,-x 表示以xml為配置文件啟動uwsgi,-d /var/log/uwsgi.log 為后台運行uwsgi並把日志寫到/var/log/uwsgi.log里面

 

 


免責聲明!

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



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