nginx 重写路由

发布于 2022-09-01 18:20:41 字数 483 浏览 11 评论 0

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还是不行,怎么处理

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

嗫嚅 2022-09-08 18:20:41

访问下 my_server/demo 试试?

溺渁∝ 2022-09-08 18:20:41
rewrite ^/demo/(.*)$ /$1 last;

改为

rewrite ^/demo/(.*)$ /$1 break;

last会对server块重新发起请求,break则使用当前location中的数据源

你在看孤独的风景 2022-09-08 18:20:41

如果说你想

/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是一样的效果了

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文