今天介紹一下如何在ubuntu18.04中爲django項目搭建nginx+gunicorn環境。html
具體步驟以下:
1.安裝gunicorn: pip install gunicorn
2.使用gunicorn啓動django項目: gunicorn 項目名稱.wsgi:application –bind 127.0.0.1:8000
3.安裝並配置nginx:
編譯安裝時,在安裝nginx前,須要先安裝其餘幾個軟件包,具體安裝以下:
1)安裝openssl:python
wget https://www.openssl.org/source/openssl-1.1.0e.tar.gz tar zxvf openssl-1.1.0e.tar.gz
解壓完成後,進入openssl所在目錄,依次執行./config、make和make install進行安裝;nginx
2)安裝zlib:django
wget https://downloads.sourceforge.net/project/libpng/zlib/1.2.11/zlib-1.2.11.tar.gz tar zxvf zlib-1.2.11.tar.gz
解壓完成後,進入zlib所在目錄,依次執行./configure、make和make install進行安裝;ubuntu
3)安裝pcre:服務器
wget https://ftp.pcre.org/pub/pcre/pcre-8.40.tar.gz tar zxvf pcre-8.40.tar.gz
解壓完成後,進入pcre所在目錄,依次執行./configure、make和make install進行安裝;app
固然,以上軟件包還能夠下載並安裝其餘版本。網站
4)安裝nginx,能夠點擊 http://nginx.org/en/download.... 來下載你須要的nginx版本。下載完成後,使用tar命令解壓: tar zxvf nginx-1.14.0.tar.gz
解壓完成後進入nginx目錄,執行如下命令進行配置:this
./configure --with-http_ssl_module --with-cc-opt="-Wno-error" --with-pcre=/home/wyzane/install_package/pcre-8.40 --with-zlib=/home/wyzane/install_package/zlib-1.2.11 --with-openssl=/home/wyzane/install_package/openssl-1.1.0e
以上配置中,我將軟件包都安裝在了/home/wyzane/install_package/目錄下,也能夠安裝在其餘目錄中。
執行以上配置後,我在編譯(make)時遇到了一個錯誤,錯誤信息大體以下:.net
src/core/ngx_murmurhash.c:37:11: error: this statement may fall through [-Werror=implicit-fallthrough
後來在 https://trac.nginx.org/nginx/ 中找到了解決辦法,即在執行./configure時加上 –with-cc-opt=」-Wno-error」 這個參數。
之後再安裝nginx遇到問題時,均可以取上面那個網站尋找解決方案。
執行完./configure後,再執行make和make install進行編譯和安裝。
安裝完成後,便可啓動ngin並訪問nginx首頁驗證是否安裝成功。
4.配置nginx: 進入nginx.conf文件中修改配置
配置下面的部分便可:
server { listen 80; server_name 192.168.114.113; #charset koi8-r; #access_log logs/host.access.log main; location / { proxy_pass http://192.168.114.113:8000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } location /static { alias /home/wyzane/pyprojects/test/test/static; } }
主要配置listen,server_name,location / 和location /static
listen是須要監聽的端口,server_name是gunicorn啓動後服務器的ip,location /指定根路徑,location /static指定靜態文件路徑
5.配置完nginx後,蒐集靜態文件: python manage.py collectstatic6.啓動nginx和gunicorn,便可訪問項目。