日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > Nginx >内容正文

Nginx

ubuntu云主机上Flask+uwsgi+Nginx配置

發(fā)布時間:2023/12/20 Nginx 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ubuntu云主机上Flask+uwsgi+Nginx配置 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

環(huán)境:
ubuntu:18.10
全程使用root權(quán)限!!!
云主機(jī)IP

所有文件請見文末附錄

?

第一步,編譯安裝nginx以及必要的系統(tǒng)組件

①apt-get install zlib1g-dev
apt-get install libssl-dev
apt-get install libpcre3 libpcre3-dev
apt-get install -y uwsgi-plugin-python3(這個應(yīng)該可以不需要)

需要自己編譯nginx安裝,
wget http://nginx.org/download/nginx-1.12.1.tar.gz && tar -zxf nginx-1.12.1.tar.gz && mv nginx-1.12.1 nginx && cd nginx && ./configure \
--prefix=/usr/local/nginx \
--pid-path=/usr/local/nginx/nginx.pid \
--lock-path=/usr/local/nginx/nginx.lock \
--error-log-path=/usr/local/nginx/logs/error.log \
--http-log-path=/usr/local/nginx/logs/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/usr/local/nginx/client \
--http-proxy-temp-path=/usr/local/nginx/proxy \
--http-fastcgi-temp-path=/usr/local/nginx/fastcgi \
--http-uwsgi-temp-path=/usr/local/nginx/uwsgi \
--with-http_stub_status_module \
--with-http_ssl_module \
--http-scgi-temp-path=/usr/local/nginx/scgi
objs文件夾下面的的MakeFile刪除-Werror
make && make install?
ln -s /usr/local/nginx/sbin/nginx /usr/local/bin/nginx
然后需要重新開個終端或者重新遠(yuǎn)程連接云主機(jī),才會讓nginx -t的時候改變查找路徑(因為nginx.conf的默認(rèn)路徑是/etc/nginx/nginx.conf)
②pip3 install uwsgi
如果調(diào)試的過程中不小心刪除了nginx的error.log,可以使用nginx -s reload讓error.log再次生成
#-------------------------------------------------------------------------------

?

第二步,啟動uwsgin、工程和nginx
當(dāng)前目錄下啟動uwsgi
uwsgi -M --ini uwsgi.ini

啟動web應(yīng)用
python3 main.py


如果報錯信息提示找不到sock文件,可以手動生成socket緩存文件
touch usr/local/nginx/conf/uwsgi.sock


啟動nginx
nginx -c /usr/local/nginx/conf/nginx.conf
nginx -s reload

?

第三步,測試

chromium瀏覽器打開:
http://IP:10073/uwsgi_learn/

效果如下:

嘗試打開多個網(wǎng)頁,然后輸入:

root@ubuntuguest:/usr/local/nginx/conf# lsof -i:10073
COMMAND ? PID USER ? FD ? TYPE DEVICE SIZE/OFF NODE NAME
nginx ? 31896 root ? ?3u ?IPv4 421798 ? ? ?0t0 ?TCP ubuntuguest.lan:10073->115.213.79.161:5766 (ESTABLISHED)
nginx ? 31896 root ? ?5u ?IPv4 421745 ? ? ?0t0 ?TCP ubuntuguest.lan:10073->115.213.79.161:5721 (ESTABLISHED)

nginx ? 31896 root ? ?6u ?IPv4 339467 ? ? ?0t0 ?TCP *:10073 (LISTEN)
root@ubuntuguest:/usr/local/nginx/conf# lsof -i:10071
COMMAND ? PID USER ? FD ? TYPE DEVICE SIZE/OFF NODE NAME
python3 32756 root ? ?3u ?IPv4 404126 ? ? ?0t0 ?TCP localhost:10071 (LISTEN)

另外根據(jù)[1]:

Nginx 總并發(fā)連接數(shù) = worker 數(shù)量 * worker_connections

注意PID數(shù)量可以超過配置文件中的process數(shù)量,process數(shù)量表示的是有多少個邏輯CPU核會被安排這個web app的任務(wù),

當(dāng)然如果只有一個人開一個網(wǎng)頁去訪問,其他的邏輯CPU也是處于圍觀狀態(tài).

#---------------------------------------------------------
如果碰到502報錯,注意查看/usr/local/nginx/error.log,
如果碰到internal server error,查看工程文件夾(和main.py同一個路徑)下面的run.log(由uwsgi啟動的時候自動生成),
根據(jù)報錯信息來排錯.

?

?

#------------------ 實(shí)驗附錄-------------------------------

main.py

from flask import Flask import os app = Flask(__name__) @app.route("/uwsgi_learn/") def hello():return '''<h1 style="color:blue">Hello World!</h1>''' def killport(port):command='''kill -9 $(netstat -nlp | grep :'''+str(port)+''' | awk '{print $7}' | awk -F"/" '{ print $1 }')'''os.system(command) if __name__ == "__main__":port=10071killport(port)app.run(host='127.0.0.1',port=port)

uwsgi完整文件:

[uwsgi] wsgi-file = ./main.py callable=app master = true processes = 4 chdir =./ socket = /usr/local/nginx/conf/uwsgi.sock #socket = 127.0.0.1:10072 logto = ./run.log chmod-socket = 660 vacuum = true limit-as=256

?

nginx.conf

user root; worker_processes 2; error_log /usr/local/nginx/error.log; pid /usr/local/nginx/nginx.pid;events {worker_connections 1024; }http {include /usr/local/nginx/conf/mime.types;default_type application/octet-stream;server {listen 10073;server_name localhost;location / {include uwsgi_params;uwsgi_pass unix:/usr/local/nginx/conf/uwsgi.sock;proxy_http_version 1.1; proxy_set_header Connection "";uwsgi_read_timeout 1800;uwsgi_send_timeout 300;proxy_read_timeout 300;}} }

Reference:

[1]https://blog.csdn.net/pencilseo/article/details/82021218

總結(jié)

以上是生活随笔為你收集整理的ubuntu云主机上Flask+uwsgi+Nginx配置的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲第一a | 中文人妻一区二区三区 | 日韩激情图片 | 日韩欧美一级大片 | 在线观看一二区 | 中文字幕――色哟哟 | 鲁一鲁一鲁一鲁一av | 在线观看免费高清 | 国产69精品久久久久999小说 | 日韩成人自拍 | 丁香花婷婷 | 亚洲网址| 国产91一区二区三区在线精品 | 在线观看免费视频国产 | 精品国产乱码久久久久久1区二区 | 欧美无遮挡高潮床戏 | 色视频网站在线观看 | 少妇太爽了太深了太硬了 | 国产又粗又猛又黄视频 | 国产精品国产三级国产aⅴ无密码 | 成人a级网站 | 都市激情 自拍偷拍 | 四季av一区二区三区免费观看 | 好吊操这里有精品 | 亚色影库| 日本久久精品 | 国产精品传媒视频 | 亚洲一区二区视频网站 | 伊人色综合网 | 西方裸体在线观看 | 亚洲精品aa| 国产精品女人久久久 | 伊人网综合 | 中国色老太hd | av网站大全在线观看 | 久久av网 | 亚洲综合黄色 | 亚洲色图国产 | 国产3级 | m3u8成人免费视频 | 捆绑中国女人hd视频 | 国产最新自拍视频 | 雪白的扔子视频大全在线观看 | 日韩欧美三级 | 国产精品网站入口 | 这里只有精品国产 | 色啪综合| 爱爱一区 | 欧美亚日韩| 亚色视频在线观看 | 成人精品亚洲人成在线 | 狠狠操免费视频 | 国产精品久久久久久久一区探花 | 99久久人妻无码中文字幕系列 | 99国产精品免费 | 亚洲在线一区二区三区 | 免费久久| 奇米精品一区二区三区四区 | 精品国语对白 | 毛片随便看 | 中文字幕在线免费视频 | 黄色片一区二区 | beeg日本高清xxxx18 | 天天操夜夜夜 | 91丨国产丨捆绑调教 | 北条麻纪在线观看aⅴ | 日韩在线视频你懂的 | 色在线看 | 国产乱仑视频 | 成人av一区二区在线观看 | 特级淫片aaaaaaa级附近的 | 免费无码不卡视频在线观看 | 国产一区二区麻豆 | 九九av| 一级坐爱片 | 尤物视频在线观看免费 | 久久久6| 亚洲色欧美 | 欧美极品少妇xxxxⅹ免费视频 | 欧美成人黑人猛交 | 天堂成人av | 欧美色就是色 | 中文字幕免费视频 | 精品伦精品一区二区三区视频 | 亚洲特黄一级片 | 国产精品久久久久久久久久久新郎 | 色偷偷免费费视频在线 | av最新天| 春色导航 | 好色综合| 亚洲精品二三区 | 老外一级片| 欧美精品日韩在线 | 国产伦精品一区二区三区在线观看 | 五月婷婷爱 | 99热官网 | 4438x五月天 日吊视频 | 日韩操操操 | 麻豆精品 |