我有一个公共静态 IP 地址和几个在自己的虚拟机上的端口 80 和 443 上运行的应用程序。
其中之一就是 GitLab。
由于我无法将端口 80/443 转发到其中一个,因此我必须:
- 一台 Ubuntu 机器接收所有 80/443 个请求。
nginx
安装在其上并根据主机头配置为代理服务器,例如scm.mydomain.com
配置为proxy_pass 192.168.50.200
GitLab 机器。
到目前为止一切都按预期进行。
我的挑战是如何启用https
对 GitLab 的支持。我知道当我编辑时external_url
GitLabhttps://....
会处理其余的事情,但问题就从这里开始,因为现在我必须在代理服务器中转发端口 443 而不是 80,如果没有有效的证书,这是不可能的,而且scm.mydomain.com
GitLab 机器上已经安装了有效的证书。
有解决办法吗?
这是我nginx
正在运行的 80 端口的配置:
server {
listen 80;
server_name scm.mydomain.com;
location / {
include proxy_params;
proxy_pass http://192.168.50.200;
}
}
答案1
如果没有有效的证书,这是不可能的
是的。只需设置proxy_ssl_verify为假。
server {
listen 80;
server_name scm.mydomain.com;
location / {
include proxy_params;
proxy_pass http://192.168.50.200;
}
}
server {
listen 443 ssl http2;
server_name scm.mydomain.com;;
ssl_certificate /etc/letsencrypt/live/www.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/www.example.com/privkey.pem;
include snippets/ssldefaults.conf;
location / {
include snippets/proxydefaults.conf;
proxy_ssl_verify off;
proxy_pass https://192.168.50.200/ ;
}
}