通过nginx将主路径转发到另一个服务器

ryevplcw  于 2022-11-28  发布在  Nginx
关注(0)|答案(1)|浏览(427)

我有一个flask服务器,运行在端口5000,我有一个域.我正在部署flask与gunicorn和nginx.我想做的是能够路由“www.mydomain.com“到一个不同的服务器,如“www.mydomain.webflow.io“,但保持所有的请求来到其他路径,如“www.mydomain.com/path1“或“www.mydomain.com/path2“到同一个nginx主机,但重定向到5000端口号。
我如何配置nginx来实现这个。我需要为每个路径(在位置下)做单独的条目吗?

oxosxuxt

oxosxuxt1#

您可以执行以下操作:

server {
    listen 80;
    server_name example.com;

    location = / {
        # this location block handles only request which ends with /

        # redrects to another domain
        return 301 https://example.otherdomain.tld;

        # proxies to another backend
        # proxy_pass http://localhost:6000/;
    }
    
    location / {
        # this location block handles everything else
        proxy_pass http://localhost:7777/;
    }
}

上面的nginx配置有两个位置块。

第一个位置块处理/结尾的每个请求。例如:
https://example.com/

# a / is appended automatically so this works as well
https://example.com
第二个位置块处理不匹配/的所有内容。

例如:

https://example.com/api
https://example.com/static/img.png

我已包含一个选项,可将您重定向到HTTP状态代码为301(永久)的新域

return 301 https://example.otherdomain.tld;

# https://example.com -> https://example.otherdomain.tld;

第二个选项将请求传递到另一个后端。

proxy_pass http://localhost:6000/;

您只能使用这两个选项中的一个

相关问题