nginx專案部署
1、概念
1、Django專案(Web應用)
2、web服務
1、nginx
2、Apache
LNMP -> Linux Nginx MySQL Python/PHP/Perl
LAMP -> Linux Apache MySQL Python/PHP/Perl
3、uwsgi
是WEB伺服器和WEB框架之間一種簡單而通用的介面
2、單專案部署(nginx+uwsgi+Django)
1、確保django專案能夠執行
2、安裝nginx
1、安裝:sudo pip3 install nginx
2、啟動:sudo /etc/init.d/nginx restart
3、驗證:127.0.0.1:80
3、安裝uwsgi
1、安裝:sudo pip3 install uwsgi
2、驗證(用uwsgi直接啟動django專案)
uwsgi --http :9998 --chdir /home/tarena/myproject/fruit/ --module fruit.wsgi
4、部署
1、配置uwsgi(配置檔案)
1、mkdir uwsgi
2、cd /home/tarena/uwsgi
3、vi fruit_uwsgi.ini
1、設定和nginx通訊的埠
socket = 127.0.0.1:8001
2、專案路徑
chdir = /home/tarena/myproject/fruit
3、wsgi.py路徑
wsgi-file = fruit/wsgi.py
4、程序數
processes = 4
5、執行緒數
thread = 2
6、本專案佔用uwsgi埠
stats = 127.0.0.1:8081
2、配置nginx(配置檔案)
1、sudo -i
2、cd /etc/nginx/sites-enabled/
3、vi project_nginx.conf
server{
listen 8201;#瀏覽器訪問專案的埠
server_name fruit.com;
charset utf-8;
client_max_body_size 75M;
location /static{
alias /home/tarena/myproject/fruit/static
}
# 和uwsgi進行通訊,1、nginx下uwsgi_params檔案 2,埠
location /{
include uwsgi_params;
uwsgi_pass 127.0.0.1:8001;
}
}
4、拷貝uwsgi_params檔案到專案目錄
sudo cp /etc/nginx/uwsgi_params /home/tarena/myproject/fruit
5、重啟nginx服務
sudo /etc/init.d/nginx restart
3、收集靜態檔案
1、settings.py檔案,新增路徑
STATIC_ROOT = '/home/tarena/myproject/fruit/static/'
2、收集靜態檔案
python3 manage.py collectstatic
4、uwsgi啟動專案
uwsgi --ini fruit_uwsgi.ini
3、多專案部署
1、uwsgi:每個專案需要單獨建立uwsgi配置檔案,選用不同埠
2、nginx配置檔案,1個就可以,新增server{}
專案2:個人部落格
瀏覽器訪問埠:8202 ,listen 8202
uwsgi和nginx通訊埠:8002,socket=127.0.0.1:8002
uwsgi佔用埠:8082