一:安裝nginx
1:安裝編譯工具及庫檔案
yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
2:安裝PCRE
wget https://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz
tar zxvf pcre-8.35.tar.gz
cd pcre-8.35
./configure --prefix=/usr/local/pcre
make && make install
3:安裝nginx
cd ~
wget https://nginx.org/download/nginx-1.5.6.tar.gz
tar -zxf nginx-1.5.6.tar.gz
cd nginx-1.5.6
./configure --prefix=/usr/local/nginx \
--with-http_stub_status_module \
--with-http_gzip_static_module
make && make install
4判斷nginx是否安裝成功
/usr/local/nginx/sbin/nginx -v
二:安裝uwsgi
1:安裝uwsgi
pip install uwsgi(pip3的話使用:pip3 install uwsgi)
2:判斷uwsgi是否安裝成功
uwsgi --version
三:Nginx+uwsgi部署Django專案
1:uwsgi配置
vim test.ini
test.ini檔案中內容如下:
# uwsig使用配置檔案啟動
[uwsgi]
socket = 127.0.0.1:9090
master = true # 啟用主程式
vhost = true #多站模式
#啟動uwsgi的使用者名稱和使用者組
uid=root
gid=root
# 指定靜態檔案
static-map=/static=/data/www/test/static
no-site = true #多站模式時不設定入口模組和檔案
workers = 2 #子程式數
reload-mercy = 10
vacuum = true #退出、重啟時清理檔案
max-requests = 1000
limit-as = 512
buffer-size = 30000
pidfile = /data/www/script/test.pid #pid檔案,用於下面的指令碼啟動、停止該程式
daemonize = /data/www/script/test.log #日誌檔案
pythonpath = /usr/local/lib/python3.6/site-packages #Python環境地址
2:nginx配置
server {
listen 80;
server_name local.test.com;
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:9090; #必須和uwsgi中的設定一致
uwsgi_param UWSGI_SCRIPT test.wsgi; #入口檔案,即wsgi.py相對於專案根目錄的位置,“.”相當於一層目錄
uwsgi_param UWSGI_CHDIR /data/www/test;#專案根目錄
index index.html index.htm;
client_max_body_size 35m;
}
}
3:啟動服務
killall -9 nginx #停止nginx
killall -9 uwsgi #停止uwsgi
uwsgi --ini /data/www/script/test.ini #啟動uwsgi指令碼
/usr/local/nginx/sbin/nginx #啟動nginx
4:判斷是否配置成功
在瀏覽器訪問local.test.com 如果訪問異常可能是防火牆問題
解決:
#開放指定埠
/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT
/etc/rc.d/init.d/iptables save #儲存配置
/etc/rc.d/init.d/iptables restart #重啟服務
#關閉防火牆
systemctl stop firewalld.service #關閉防火牆
systemctl disable firewalld.service #開機時關閉防火牆