我有一个 docker 容器,它只显示随机的猫图片。容器的镜像位于我用于个人网站的服务器上,我想在 Nginx 中添加一条路由,以便我导航到应用程序并查看当天的猫。
使用以下配置,当我尝试导航到 时,出现 404 错误my_site.com/cats
。
sites-available/my_site.conf
:
server {
listen 443 ssl;
include snippets/my_site-ssl.conf;
include snippets/ssl-params.conf;
server_name my_site.com www.my_site.com;
root /var/www/my_site.com/html;
#working location directives for my_site here...
location = /cats {
proxy_pass https://localhost:5001;
}
}
使用以下命令调用 Docker 容器:
$ docker run --rm -d -p 5001:5000 --name cats handsomegorilla/cats
为了解决这个问题,我所做的每一次搜索都只是返回“如何在容器中运行 nginx”的一些变体结果,这显然是不是我的目标就是此
我是 Docker 新手,因此这可能是我应该询问 Stack Overflow 的问题,但我想我应该从服务器开始,然后再回到 Docker。
答案1
好的,所以我通过执行以下操作解决了这个问题:
我做了/etc/nginx/conf.d/my_site.conf
:
upstream catApp {
server 127.0.0.1:5001;
}
我修改了位置指令以sites-available/my_site.com
使用
# unchanged configuration stuff...
location = /cats {
proxy_pass http://catApp/; #trailing / is important for removing req uri
}
}
重新加载 nginx 并启动应用程序
$ docker run --rm -d -p 127.0.0.1:5001:5000 handsomegorilla/cats