我有一个flaskapp,使用 nginx 作为代理服务器和 gunicorn 进行部署。我在 Flask python 脚本中定义了几条路由,但它们都无法访问。
然而,当使用开发服务器时,它们运行良好。
除基本 URL(“/”)之外的所有路由都返回 404 nginx 页面,因此我假设 nginx 存在问题,但是我没有找到任何可以帮助我解决该问题的方法。
如何配置 nginx 来接受这些路由并使用 flaskApp 中定义的路由?
答案1
这是因为您没有在 nginx 配置中定义所有路由,您应该有类似下面示例的内容,只是您应该更改server_name
和ports
。
注意:我正在使用此代码片段将 nginx 连接到其他容器,因此考虑将 http://client:80; 更改为您的本地主机或应用程序名称,并对所有路由执行相同的操作。
主要思想是定义所有路线。
http {
server {
listen 80;
server_name localhost 127.0.0.1;
location / {
proxy_pass http://client:80;
proxy_set_header X-Forwarded-For $remote_addr;
}
location /api/ {
# why should i add / at the end 5000/ to make it work
proxy_pass http://api:5000/;
proxy_set_header X-Forwarded-For $remote_addr;
}
location /api/client {
proxy_pass http://api:5000/client;
proxy_set_header X-Forwarded-For $remote_addr;
}
}