我在8080端口部署了一个Docker容器。
我将我的nginx服务器配置为指向nginx中的8080端口。像这样配置:
server {
...
location / {
proxy_pass http://127.0.0.1:8080;
}
...
这工作正常,对服务器的调用被重定向到docker容器。
我现在需要将不同的URI路径指向不同的容器。
例如,我需要/service1路径来指向我的原始docker容器。所以我这样做了:
server {
...
location / {
}
location /service1 {
proxy_pass http://127.0.0.1:8080;
}
我遵循以下指南:
https://gist.github.com/soheilhy/8b94347ff8336d971ad0#step-5----add-blog-and-mail
我重新加载并重新启动了nginx-s,但当我导航到{IP\u ADDRESS}/service1时,出现了一个白标签错误。我不明白这一点。
它是否与位置/{}成为emtpy有关?
编辑
按照建议,我在8090上重新聚合了我的容器,并更换了nginx。将文件配置为:
server {
...
location / {
proxy_pass http://127.0.0.1:8080;
}
location /service1 {
proxy_pass http://127.0.0.1:8090;
}
当我HTTP到[IP\U地址]/服务1时,我仍然得到404。
编辑2
根据建议,我更改了nginx。conf文件,以避免将“service1”传递给容器,但错误响应表明它仍然接收到它。
nginx公司。形态:
location / {
}
location = /service1 {
return 302 /service1/;
}
location /service1/ {
proxy_pass http://127.0.0.1:8090;
}
错误:
{
"timestamp": "2018-04-07T09:56:44.600+0000",
"status": 404,
"error": "Not Found",
"message": "No message available",
"path": "/service1/image"
}
需要明确的是,这个错误是由Docker而不是Ngnix生成的,所以重定向正在工作?