自学nginx(三): nginx + gunicorn的反向代理
来源:互联网 发布:淘宝开店试题答案 编辑:程序博客网 时间:2024/06/15 19:46
前言
正好一个项目是python的flask框架开发的,部署的时候就考虑用gunicorn作为应用服务器,然后再用nginx的反向代理套在应用服务器的外层。
架构图
每一台server内部,都安装nginx,以及部署gunicorn的python flask应用程序。nginx和gunicorn之间用unix local socket机制进行连接。
所以gunicorn启动flask程序的时候,请配置成
bind = “unix:/xxx/xxx.sock”来启动,这样就会在/xxx目录下生成xxx.sock文件,而不是启动类似8000的端口了。
nginx反向代理配置
在http模块下(也就是和server模块平行的地方), 先定义一个upstream变量。
upstream myapp_server { # for UNIX domain socket setups server unix:/xxx/xxx.sock fail_timeout=0; # for a TCP configuration # server 127.0.0.1:8000 fail_timeout=0; }
如果应用服务器是8000端口的tcp的话,不是unix的socket的话,那么可以用下面注释的代码。
下面需要配置server,注意我只贴了location的部分,其他server的部分(如access_log, keepalive_timeout之类的)请根据自身的需求合理设置。
# favicon放在其他目录location = /favicon.ico { root /usr/share/nginx/html;}# 静态文件直接走静态目录location /static/ { alias /usr/share/nginx/html/static/;}# 其他的路径走这个配置# try_files可以一定程度代替rewrite。location / { try_files $uri @proxy_to_app;}# 定义一个变量名字是proxy_to_app的location,并不是路由规则。这个location会作为一个变量代到上面的try_files的地方。location @proxy_to_app { # 设置一些转发到应用服务器的header,使得gunicorn可以获得一些客户端来的信息。 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # 如果是https的话,下面这行需要enable # proxy_set_header X-Forwarded-Proto https; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-Host $remote_addr; proxy_redirect off; proxy_pass http://myapp_server;}
结语
nginx一侧的设置还是比较简单的。gunicorn的部分这篇就不提了。有机会另外写一篇gunicorn的。
阅读全文
0 0
- 自学nginx(三): nginx + gunicorn的反向代理
- nginx的反向代理
- nginx的反向代理
- Nginx的反向代理
- nginx的反向代理
- Nginx反向代理Nginx
- Nginx反向代理Nginx
- nginx的proxy配置(反向代理)
- nginx的反向代理指令
- nginx的反向代理缓存
- Nginx反向代理的配置
- nginx的反向代理缓存
- nginx的反向代理缓存
- Nginx反向代理的配置
- NGINX反向代理的配置
- nginx的反向代理配置
- Nginx反向代理的配置
- 关于Nginx的反向代理
- RE:JAVA学习-基本IO操作及文本数据IO操作
- maven之clean、install命令
- 第三章:3.7 傅里叶变换性质(一)
- 微型四轴飞行器(2)硬件设计
- 高吞吐高并发Java NIO服务的架构
- 自学nginx(三): nginx + gunicorn的反向代理
- UVA
- 并查集
- Android6.0哪些权限要动态申请?
- 【转】ABAP的坑2
- python 小记(一)
- opencv 图像像素点的值获取与显示
- pomelo源码分析(4)--connector之网络监听
- RQNOJ 188 购物问题