Nginx+Gunicorn+Python Flask部署网站到服务器
2021/10/20 7:12:50
本文主要是介绍Nginx+Gunicorn+Python Flask部署网站到服务器,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Flask通过pip安装
pip install flask
项目目录构成
后端:
启动文件main.py,运行该文件部署网站到localhost:8080
from flask import Flask,render_template app=Flask(__name__) #注册蓝图 from app import daka_blue,home_blue app.register_blueprint(daka_blue) app.register_blueprint(home_blue) #起始页面 @app.route('/') def index(): return render_template('index.html') if __name__ == '__main__': app.run(host='0.0.0.0',port=8080,debug=True)
蓝图文件__init__.py,各个py代码通过该文件和Blueprint模块连接
from flask import Blueprint daka_blue=Blueprint('daka', __name__, url_prefix='/daka') home_blue=Blueprint('home', __name__, url_prefix='/home') from . import daka,home
后台文件,通过__init__.py文件连接到main.py
举例:
from flask import Flask,request,render_template import pymysql from app import home_blue @home_blue.route('/') def home(): # return render_template('home.html') return "home"
前端:
html文件放置在templates目录
css、js、img等放在static目录
static内文件调用举例:
<link rel="stylesheet" type="text/css" href="{{ url_for('static', filename='css/index/index.css')}}"/>
云服务器CentOS系统部署网站:
Gunicorn:
首先安装Gunicorn
pip install gunicorn
进入main所在的目录,输入以下命令:
gunicorn -w 4 -b 0.0.0.0:5000 -D main:app
-w表示工作进程数,设置4个进程以充分利用资源
-b是部署所在端口,这样就不是在8080端口,而是在5000端口
main为主程序,不带.py
app是main.py内的实例名
Nginx:
使用Nginx对Gunicorn映射的5000端口进行反代理
进入/etc/nginx,打开nginx.onf
vim /etc/nginx/nginx.conf
将server改为以下:
server { listen 80 default_server; listen [::]:80 default_server; server_name 127.0.0.1:5000; return 301 https://$host$request_uri; root /usr/share/nginx/html; # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; location / { proxy_pass http://*.*.*.*:5000; # 这里是指向 gunicorn host 的服务地址,*.*.*.*为服务器IP } error_page 404 /404.html; location = /404.html { } error_page 500 502 503 504 /50x.html; ocation = /50x.html { } }
设置https证书:
在nginx.conf后面添加一个server:
server { #SSL 访问端口号为 443 listen 443 ssl; #填写绑定证书的域名 server_name 你的域名; #证书文件名称 ssl_certificate ssl/Nginx/*.crt; #私钥文件名称 ssl_certificate_key ssl/Nginx/*.key; ssl_session_timeout 5m; #请按照以下协议配置 ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。 ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; ssl_prefer_server_ciphers on; location / { #网站主页路径。此路径仅供参考,具体请您按照实际目录操作。 proxy_pass http://*.*.*.*:5000; # 这里是指向 gunicorn host 的服务地址 } } }
重启nginx完成对Gunicorn的反代理
nginx -s reload
这篇关于Nginx+Gunicorn+Python Flask部署网站到服务器的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-10-29Nginx发布学习:从入门到实践的简单教程
- 2024-10-28Nginx发布:新手入门教程
- 2024-10-21nginx 怎么设置文件上传最大20M限制-icode9专业技术文章分享
- 2024-10-17关闭 nginx的命令是什么?-icode9专业技术文章分享
- 2024-09-17Nginx实用篇:实现负载均衡、限流与动静分离
- 2024-08-21宝塔nginx新增8022端口方法步骤-icode9专业技术文章分享
- 2024-08-21nginx配置,让ws升级为wss访问的方法步骤-icode9专业技术文章分享
- 2024-08-15nginx ws代理配置方法步骤-icode9专业技术文章分享
- 2024-08-14nginx 让访问带有/relid的地址返回404 ,例子 /relid-x-0.36-y-131.html-icode9专业技术文章分享
- 2024-08-14nginx 判断地址有/statics/的路径,指向到/home/html/statics/目录-icode9专业技术文章分享