问题描述
nginx + gunicorn + flask的配置现在我把 /demo 这个路由映射到 8088端口,怎么重写路由
server { listen 80; server_name my_server;location /demo {proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;proxy_set_header Host $http_host;proxy_set_header X-Real-IP $remote_addr;proxy_pass http://127.0.0.1:8088;rewrite ^/demo/(.*)$ /$1 last; }}
但是这样写, localhost/demo还是不行,怎么处理
问题解答
回答1:访问下 my_server/demo 试试?
回答2:rewrite ^/demo/(.*)$ /$1 last;
改为
rewrite ^/demo/(.*)$ /$1 break;
last会对server块重新发起请求,break则使用当前location中的数据源
回答3:如果说你想
/demo代理到8088, /demo/xx代理到 8088/xx
的话,可能就需要这样了:
server { listen 80; server_name my_server;location / {proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;proxy_set_header Host $http_host;proxy_set_header X-Real-IP $remote_addr;proxy_pass http://127.0.0.1:8088;rewrite ^/demo/(.*)$ /$1 break; }}
但是这种直接在你的后台程序中处理也就可以了,因为这样的结果就是访问/demo/xx和访问/xx是一样的效果了