nginx - 使用 Nginx 反向代理在位置正确安装 Flask 应用程序
问题描述
我有一个 Flask 应用程序,它在 Docker 容器内运行,应该在特定的 URL 下公开:myserver.com/mylocation
. 我想使用另一个运行 Nginx 的容器作为反向代理来实现路由。我正在关注一个很棒的教程,它已经让我走得很远了。
我的 Nginx-config(相关部分)内容如下:
server {
server_name myserver.com;
location /mylocation {
proxy_pass http://myapp:5000;
proxy_set_header Host $host;
rewrite ^/mylocation(.*)$ $1 break;
}
}
我的 docker-compose.yml 内容如下:
version: '2'
services:
nginx:
image: nginx:latest
container_name: production_nginx
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf
ports:
- 80:80
- 443:443
myapp:
build: .
image: app_image
container_name: app_container
expose:
- "5000"
现在,当我运行它时,我成功地从 myserver.com/mylocation 获取了我的应用程序的 index.html,但是在没有位置部分(/mylocation) 的情况下,myserver.com 会触发后续请求(CSS、JS 等),并且所以 Nginx 不会将它们路由到容器并且它们 404。对 CSS、JS 等的引用都是相对的,它们不(也不应该)包含服务器名称和位置。
我怎样才能做到这一点?我是否在我的 NGinx 配置中遗漏了一些让应用知道它应该在 /mylocation 运行的东西?
解决方案
推荐阅读
- c++ - 如何计算向量中矩阵的实例?
- permissions - 是否可以在字段级别添加对象权限
- palantir-foundry - 在代码工作簿中使用代码存储库
- python - 启动 sr.Microphone() 时显示 ALSA 错误
- sql - EF Core - 如何舍入 DB 值以最小化 json?
- html - 为什么浮动标签不适用于css
- node.js - 获取不接收所有数据的 url 数组
- javascript - 如何向 Firebase 实时数据集中的现有电子邮件地址发送电子邮件
- python - 如何在 pyspark 中提交 tar.gz 文件
- javascript - es6:如何将依赖项添加到动态导入