Linux nginx+uwsgi+flask部署笔记01

今天做一个flask项目,需要部署在服务器上面。系统为centOS7.5
写好了flask项目,直接在服务器上运行nohup python main.py理论上,就可以了,一开始还能访问的挺舒服的,,,,不过很快访问的速度会卡顿甚至直接无法服务像遭受了ddos一样黑化了,黑化的时间会因服务器提供商不同而异(没错,我在多个不同的服务器提供商的服务器上尝试过,哈哈哈)。在百度搜索之后说,如果要真正部署在生产环境下的话,那就需要使用uwsgi+nginx。第一次尝试,我只用了uwsgi发现效果还挺不错的,而且完全可用。nginx是反向代理,理论上不使用,项目也是可以成功访问的。所以今天先记录到这里,以下为笔记:

  1. 首先,安装uwsgi。
    pip install uwsgi (conda install不行,但是用anaconda环境的照样可以pip install)
  2. 配置uwsgi的配置文件。方法:在任何一个位置新建一个文件 XXX.ini(名字也自己起)然后写下下面的东西:
    [uwsgi]
    http=0.0.0.0:80 //想打开那个端口开哪个
    wsgi-file=/path/to/flask_project/main.py //就是你的flask项目里面的主程序啦 要绝对路径哦
    callable=app //flask独有的配置,就是用来调用的那个对象的名字,我的是app(应该大部分的人都一样吧)
    touch-reload=/path/to/flask_project/ //项目文件夹的绝对路径

PS:这只是最简单的方法之一,当然这个配置文件可以写很多东西在上面,百度上可以搜到。 另外,需要注意,在你的flask主程序里面,app.run()里面最好不要加port、host参数等等,直接就可以了。。

  1. 运行uwsgi程序:
    nohup uwsgi --ini /path/to/XXX.ini
    XXX.ini就是你上面创建的那个文件啦。
    对了,有些时候nohup找不到uwsgi这个命令,那就要把uwsgi的绝对路径输进去啦。

好了,现在可以从外网访问你的flask项目了,鲁棒性瞬间++
这是使用uwsgi部署的第一个笔记,以后会逐步写一些更加深入的东西。

以下是基于 CentOS 操作系统的 Nginx + Uwsgi + Flask 部署服务的详细操作步骤: 1. 安装必要的软件包 ```bash yum install epel-release yum install nginx yum install python3 python3-pip pip3 install uwsgi flask ``` 2. 创建 Flask 应用程序 在服务器上创建 Flask 应用程序,例如: ```python from flask import Flask app = Flask(__name__) @app.route('/') def hello_world(): return 'Hello, World!' if __name__ == '__main__': app.run() ``` 3. 创建 uwsgi 配置文件 在服务器上创建一个 uwsgi 配置文件,例如: ```ini [uwsgi] module = wsgi:app master = true processes = 5 socket = /tmp/uwsgi.sock chmod-socket = 660 vacuum = true die-on-term = true ``` 其中,`module` 参数指定 Flask 应用程序所在的模块和变量名,`socket` 参数指定 uwsgiNginx 通信的 Unix 套接字文件位置。 4. 创建 Nginx 配置文件 在服务器上创建一个 Nginx 配置文件,例如: ```nginx server { listen 80; server_name your-domain.com; location / { include uwsgi_params; uwsgi_pass unix:/tmp/uwsgi.sock; } } ``` 其中,`listen` 参数指定监听的端口,`server_name` 参数指定服务器的域名或 IP 地址,`location` 参数指定请求 URL 的路径,`uwsgi_pass` 参数指定 uwsgiNginx 通信的 Unix 套接字文件位置。 5. 启动服务 在服务器上启动 uwsgiNginx 服务: ```bash uwsgi --ini uwsgi.ini & systemctl start nginx ``` 6. 测试服务 在浏览器中输入服务器的域名或 IP 地址,应该能够看到 Hello, World! 的输出。 以上就是在 CentOS 上使用 Nginx + Uwsgi + Flask 部署服务的详细操作步骤。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值