我有以下设置:
mydomain.com
)我遇到的问题是从外部代理请求(使用nginx
容器)。因此,当我访问mydomain.com/juputer
时,应该指向jupyter
容器,而mydomain.com/portainer
应该指向portainer
容器。从本地计算机访问这两个容器很好。
我设法让prtainer
容器可以从外部访问,但不能使其适用于其他容器。
通过portainer
访问mydomain.com/portainer
时,所有链接都会被正确重定向(mydomain.com/portainer/#/dashboard
,mydomain.com/portainer/#/containers
等)但是当尝试访问jupyter
容器时,我会获得404和该网址已更改为mydomain.com/tree?
。 tree?
是Jupyter的一部分,但我希望链接为mydomain.com/jupyter/tree?
我在nginx.conf
尝试过其他一些配置选项,但似乎没有什么对我有用
这是可以从Nginx
方或其特定应用程序修复的内容(如果可能,应编辑应用程序的配置)
nginx.conf:
worker_processes 1;
events { worker_connections 1024; }
http {
log_format compression '$remote_addr - $remote_user [$time_local] '
'"$request" $status $upstream_addr '
'"$http_referer" "$http_user_agent" "$gzip_ratio"';
#172.17.0.2 and 172.17.0.4 are the containers internal ip
#ips will be replaced by names in the future
upstream portainer {
server 172.17.0.2:9000;
}
upstream jupyter {
server 172.17.0.4:8888;
}
server {
listen 80;
access_log /var/log/nginx/access.log compression;
location /portainer/ {
proxy_pass http://portainer/;
proxy_redirect off;
proxy_set_header Host $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-Host $server_name;
}
location /jupyter/ {
proxy_pass http://jupyter/;
proxy_redirect off;
proxy_set_header Host $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-Host $server_name;
}
}
}