我想在我的 Docker 实例中使用 letsencrypt-nginx-proxy-companion。 经过一些阅读后,我仍然找不到适合我的架构的解决方案:
HOST => DOCKER
/ |
(vps) |
(containers)
- nginx-proxy
- letsencrypt-nginx-proxy-companion
- portainer [to manage self-hosted docker]
https://projects.domain.com:4488
- jenkins [to manage projects from github]
https://projects.domain.com:5533
- projects home [static website]
https://projects.domain.com
- project #1
https://projects.domain.com/project-1
- project #2
https://projects.domain.com/project-2
假设我知道如何管理多个子域(每个用于容器),我想念如何(以及在何处)为项目指定/path。
如果我想通过 SSL 路由所有流量(不包括用于证书更新的脚本)并使用 Jenkins 管理项目,从哪里开始?以这种方式包装它是个好主意吗?
最佳答案
您是否尝试过将“location/”标签与 proxy_pass 和子过滤器一起使用? 例如:
server {
server_name jenkins.domain.com;
listen 80 ;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name jenkins.domain.com;
ssl on;
ssl_certificate /etc/nginx/ssl/sslcertificate.crt
ssl_certificate_key /etc/nginx/sslkey.key;
proxy_set_header Accept-Encoding “”;
sub_filter_types ‘text/html’;
sub_filter_types ‘text/css’;
sub_filter ‘http://jenkins.domain.com‘ ‘https://$host';
sub_filter_once off;
server {
server_name projects.domain.com;
listen 80 ;
return 301 https://$host$request_uri;
}
location /project-1/{
proxy_pass http://jenkins.domain.com:4488/project-1/;
}
}
关于docker - 如何使安全的 nginx-proxy 指向单个服务器中的不同路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54219120/