我有一个nginx
和一个pgadmin
Docker容器相互连接。只有nginx
容器暴露在外面。如何将pgadmin
映射到子URI?
如果主机是example.com
,我希望pgadmin
可以到达example.com/pgadmin/
。到目前为止,我在我的nginx.conf
文件中有这个:
location ^~ /pgadmin/ {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://pgadmin:80/;
}
对example.com/pgadmin/
的请求通过pgadmin
但是当pgadmin重定向到登录页面时,它会重定向到example.com/login?next=%2F
,而不是example.com/pgadmin/login?next=%2F
。
我如何让pgadmin
在example.com/pgadmin
工作?
我知道你想把http://pgadmin:80/
映射到http://example.com/pgadmin/
。在hosts文件中添加以下条目以将pgadmin映射到example.com
pgadmin example.com
现在将:80
映射到/pgadmin
,在你的nginx.conf中添加以下内容:
location /pgadmin {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://pgadmin:80/;
}