我有一个flask服务器,在端口5000上运行,我有一个域。我正在部署flask与gunicorn和nginx。我想做的是能够路由"www.mydomain.com"对另一个服务器说&;www.mydomain.webflow.io&;,但保持所有请求到其他路径说&;www.mydomain.com/path1"或";www.mydomain.com/path2"到同一个nginx主机,但是重定向到5000端口号。
我如何配置nginx为这个。我是否需要为每条路径单独填写条目(在位置下)?
你可以这样做:
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/;
你应该只使用两个选项中的一个