傻逼CSDN在markdown的預覽模式把我英文引號給轉成中文引號了。
問題帖子 還沒解決,持續坐等。
不從完全小白開始寫了,跳過了pyhton3的安裝,Flask的使用這些。
uWSGI 安裝與配置
虛擬環境
如果需要配置虛擬環境,在項目根目錄使用以下命令:
進入虛擬環境
# source venv/bin/activate
退出虛擬環境
# deactivate
安裝
# pip3 uwsgi
# uwsgi -version 驗證版本
配置uwsgi
進入項目根目錄,創建配置文件,編輯
# cd /root/project/FlaskTester
# touch uwsgi.init
# vim uwsgi.init
[uwsgi]
socket = 127.0.0.1:8080
plugins = python
chidir = /root/project/FlaskTester
wsgi-file = main.py
callable = app
socket = 127.0.0.1:8080 # uwsgi的監聽端口【要跟上面nginx配置裏的端口一樣】
plugins = python 不加請求時會出現-- unavailable modifier requested: 0 --錯誤提示#
chidir = /root/project/FlaskTester 項目根目錄 #【路徑按照自己具體的路徑填寫】
wsgi-file = main.py # flask程序的啓動文件,比如這裏是main.py文件
callable = app # 程序變量名 【app是flask實例變量】
Nginx安裝與配置
安裝
# yum -y install nginx
阿里雲服務器中確定相應端口已經開啓
配置相應的 nginx.conf 文件
在 http 的大括號內添加
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
root /usr/share/nginx/html;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
#location / {
#}
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:8080;
uwsgi_param UWSGI_PYHOME /root/project/FlaskTester/venv;
uwsgi_param UWSGI_CHDIR /root/project/FlaskTester;
uwsgi_param UWSGI_SCRIPT main:app;
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
配置介紹:
listen 80; # 服務器監聽端口
server_name 47.96.xx.xx; # 寫域名或者公網IP,使用下劃線表示匹配所有的的Host
charset utf-8; # 編碼
client_max_body_size 75M; # 客戶端請求的最大body大小
include uwsgi_params; # 導入uwsgi配置
uwsgi_pass 127.0.0.1:8000; # 轉發到uwsgi哪個端口
uwsgi_param UWSGI_PYTHON /root/project/FlaskTester/venv; # 配置 Python 路徑,這裏使用 virtualenv 虛擬環境。
uwsgi_param UWSGI_CHDIR /root/project/FlaskTester; # flask web項目的根目錄
uwsgi_param UWSGI_SCRIPT main:app; # main代碼 Flask 項目的入口主代碼文件main.py,app 是文件裏 Flask 實例名字
校驗配置是否正確
nginx -t
啓動&停止&重啓
service nginx start
service nginx stop
service nginx restart
查看安裝路徑&卸載
rpm -ql nginx
rpm -e nginx
Supervisor安裝與配置
安裝
# yum install supervisor
配置相關文件
mkdir /etc/supervisor
cd /etc/supervisor/
echo_supervisord_conf > /etc/supervisor/supervisord.conf
vim supervisord.conf
# 在末尾添加上這麼一行, 同時確保[include]去除了註釋
files = conf.d/*.conf
意思是在這路徑生成一個配置文件 supervisord.conf,這是主配置文件。並且會去讀當前目錄下的所有 conf.d 的以 .conf 後綴結尾的文件當做配置文件。這樣可以針對每個項目,單獨寫一個 supervisor 的配置文件。
使配置文件生效:
# supervisord -c /etc/supervisor/supervisord.conf
創建一個項目配置文件
# cd /etc/supervisor/conf.d/
# vim FlastTester.conf
[program:FlaskTester]
directory = /root/project/FlaskTester
command= uwsgi --ini /root/project/FlaskTester/uwsgi.ini
autostart = true
startsecs = 5
autorestart = true
startretries = 3
user = root
redirect_stderr = true
stdout_logfile_maxbytes = 20MB
stdout_logfile_backups = 20
stdout_logfile = /root/project/FlaskTester/log/FlaskTester.log
stopasgroup=false
killasgroup=false
配置介紹:
directory = /root/project/FlaskTester # 項目路徑
command= uwsgi --ini /root/project/FlaskTester/uwsgi.ini # 項目uwsgi啓動命令
redirect_stderr = true # 把出錯的日誌 stderr 重定向到正常output 日誌裏 stdout
stdout_logfile = /root/project/FlaskTester/log/FlaskTester.log # 輸出日誌路徑,注意它不會創建相應的目錄,需要手工提前創建好文件Dir。
使配置文件生效
# supervisorctl reload
進入supervisorctl shell, 啓動
# supervisorctl -c /etc/supervisor/supervisord.conf
或者
# cd /etc/supervisor
# supervisorctl
會顯示出當前的 supervisor pragram
[root@iZbp1at7o13nmv0uakkppkZ ~]# supervisorctl -c /etc/supervisor/supervisord.conf
FlaskTester STOPPED Oct 24 05:42 PM
啓動之
supervisor> start FlaskTester
FlaskTester: started