Ubuntu16.04下部署 nginx+uwsgi+django1.9.7(虛擬環境pyenv+virtualenv)


  由於用的新版本系統,和舊的稍有差別,在網上搜了很多相關資料,搞了三天終於搞好在Ubuntu16.04下的部署,接下來就詳細寫寫步驟以及其中遇到的問題。前提是安裝有虛擬環境pyenv+virtualenv。

一、安裝uwsgi

  1. 在虛擬環境下安裝uwsgi

1 # 啟動環境 2 pyenv activate your_env_name
3 pip install uwsgi

  2. 測試uwsgi,創建test.py

def application(env, start_response): start_response('200 OK', [('Content-Type','text/html')]) return [b"Hello uwsgi!"]

  3. uwsgi運行該文件

    當時用的命令: uwsgi --http  :8088  --wsgi-file  test.py, 終端提示沒有--wsgi-file選項,一直不成功,后來改用 --http-socket可以了。但是現在試了--http竟然也可以運行了,竟然不知道當初為什么不行。

uwsgi --http-socket  :8088   --wsgi-file   test.py

  

二、安裝nginx

  1.nginx不需要在虛擬環境下裝,在終端直接用命令安裝

 

  sudo apt-get install nginx

 

  2.nginx啟動與關閉命令

cln@Aspire:~$ service nginx start #啟動 cln@Aspire:~$ service nginx stop #關閉 cln@Aspire:~$ service nginx restart    #重啟

nginx -t     # 檢查配置文件是否有語法錯誤
cln@Aspire:~$ nginx -V #查看nginx版本 nginx version: nginx/1.10.0 (Ubuntu) built with OpenSSL 1.0.2g-fips  1 Mar 2016 TLS SNI support enabled

  3.修改nginx默認端口

  nginx1.10.0版本 配置文件有/etc/nginx/nginx.conf, /etc/nginx/conf.d/* 和 /etc/nginx/sites-available下的default, nginx.conf包含default、conf.d里的配置,端口號在default文件里修改。

  打開nginx文件夾下default文件,修改其端口號為88,如下,端口已改好

cln@Aspire:~$ sudo gedit /etc/nginx/sites-available/default 

  4.重啟nginx服務,訪問http://127.0.0.1:8088, 會打開nginx歡迎welcome頁面。

三、部署django+uwsgi+nginx

  1. 在你的django項目文件夾下建立 yourProjectName_uwsgi.ini文件,具體的參數配置如下:最重要的是配置pythonpath,它指定django所在的位置,當時沒有配置准確這一點,一直報錯no moudle  django,花了很長時間也不知道為什么,后來查了很多資料后,才知道配置pythonpath。主要的參數有注釋。

  

  當時 socket = :8088, 我寫的是http-socket = :8088,  一直報錯 502  Bad Gateway,花了很長時間后才知道把這句改成socket。

  2. 之前提到nginx.conf配置所包含的配置,那就可以在/etc/nginx/conf.d下建一個nginx.conf來關聯uwsgi

cln@Aspire:~$ sudo vi /etc/nginx/conf.d/nginx.conf

     在里面添加如下內容:

  3.重啟nginx服務,激活虛擬環境,運行.ini文件

# 激活虛擬環境 cln@Aspire:~/PycharmProjects/webapp$ pyenv activate webenv # 在.ini文件的父目錄下運行命令 (webenv) cln@Aspire:~/PycharmProjects/webapp$ uwsgi --ini web_uwsgi.ini 

     如下所示,表示成功。

  訪問http://127.0.0.1:88, 便可以通過nginx訪問到你的django項目的網站。

總結: 一點粗心大意,就會讓你花費很多時間去找問題所在,現在我寫下自己遇到的問題以及解決方法,希望能幫助遇到類似問題的你。

 


免責聲明!

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



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