使用Nginx和uwsgi在自己的服务器上部署python的flask项目

Nginx 是一个高性能的 HTTP 和反向代理服务。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好。

Nginx 专为性能优化而开发,性能是其最重要的考量指标,实现上非常注重效率,能经受住高负载的考验,有报告表明能支持高达50000个并发连接数。

在连接高并发的情况下,Nginx 是 Apache 服务不错的替代品。

什么是代理和反向代理呢?

代理其实就是一个中介,A和B本来可以直连,中间插入一个C,C就是中介。刚开始的时候,代理多数是帮助内网client(局域网)访问外网server用的。 后来出现了反向代理,反向这个词在这儿的意思其实是指方向相反,即代理将来自外网客户端的请求转发到内网服务器,从外到内。

 uWSGI 是一个 Web 服务器,它是一个用 C 语言编写的 Web 应用程序容器,支持运行 Python、Ruby、Perl 等多种编程语言。uWSGI 服务器可以作为一个独立的应用服务器,也可以与其他 Web 服务器(如 Nginx、Apache)一起使用,通过 WSGI 协议与 Python 应用程序通信。

nginx服务器配置

使用 service nginx start 启动nginx服务

uwsgi配置,在项目目录下新建uwsgi.ini文件,编辑文件,写入以下内容

 

其中的路径等内容改为自己项目的路径,app.py即flask项目的启动文件,因为使用了nginx进行代理,所以使用的socket而不是http,同时socket的IP应该为0.0.0.0,而不是127.0.0.1,这样做是为了让公网上的其他用户能不受限制的访问,同时app.py中的启动应该写为run(host=0.0.0.0)。

使用uwsgi --ini uwsgi.ini 命令启动uwsgi服务,因为这里nginx绑定的是80端口,所以启动成功后就可以通过访问你的公网ip访问到你的flask项目了。 如果是其他如5000端口则需要通过ip:5000这样访问你的项目。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
nginxuwsgi是常用的部署flask应用的工具。首先,需要配置nginx将请求转发给uwsgi处理。在nginx的配置文件中,可以使用类似以下的配置来实现转发: ``` location / { include uwsgi_params; uwsgi_pass 127.0.0.1:3031; } ``` 这样配置后,nginx会将所有的请求转发给uwsgi处理。\[1\] 启动nginx可以使用以下命令: ``` service nginx start ``` 可以使用以下命令查看nginx的状态: ``` service nginx status ``` 重启nginx可以使用以下命令: ``` service nginx restart ``` 可以使用以下命令查看nginx是否已经启动: ``` ps -ef | grep nginx ``` 如果需要强制停止nginx,可以使用以下命令: ``` kill -9 nginx ``` 可以使用以下命令查看nginx的错误日志: ``` tail -f error.log ``` 在后端代码中,可以使用`@app.route('/info', methods=\['GET', 'POST'\])`来定义路由。当使用flask自带的web服务器进行测试时,访问`xxxx:xx/info`可以正常访问界面。但是通过nginx访问时,nginx会将末尾不带斜杠的非文件类请求加上斜杠,并给出301回应,然后重定向到有斜杠的URL下。这是因为在一些经典的WEB开发语言中,请求通常是一个文件,如.php,.aspx,.html等。而python的框架实际上将一个“目录”节点作为一个html文件给出。因此,末尾需要加上斜杠,以便让nginx知道这是一个指向目录的请求。\[3\] #### 引用[.reference_title] - *1* [部署Flask应用:nginx+uwsgi+flask](https://blog.csdn.net/qq_33411065/article/details/90410667)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [Nginx+uWSGI+Flask服务部署](https://blog.csdn.net/baidu_24752135/article/details/123726280)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值