我有 3 台服务器。
服务器 A:带有 nginx 的防火墙服务器,根据 server_name(虚拟主机)重定向到服务器 B 或 C,可从外部访问。
服务器 B:带有jwilder/nginx-proxy的 Web 服务器,这是一个反向 nginx-proxy,为该服务器中的所有 docker web 容器提供服务,可通过服务器 A 访问。
服务器 C:与服务器 B 相同
这些是办公室内的专用服务器,办公室中的人员直接访问公司站点到服务器 B 或 C,我想为基础架构中的网站配置 ssl,但我有两个问题:
1.- 如果我在服务器 A 中配置 ssl,办公室内的人无法使用 https 访问站点,因为直接访问服务器 B 或 C。
2.- 如果我根据此从服务器 B 或 C 内部配置站点,则站点显示重定向问题(重定向太多),至少来自外部。
这是服务器 A 中用于重定向到服务器 B 的配置:
server {
listen 80;
server_name sites-in-serverB.com;
access_log /var/log/nginx/xxxxxxxx.log;
location / {
proxy_pass http://serverB-IP/;
}
}
**同样适用于服务器 C 站点
当然每个容器都有自己的 nginx 服务器(是的,我真的很喜欢 nginx)。所以我们正在寻找 4 个级别的 nginx。开始!!
在每台服务器上配置 SSL。这样,通过服务器 A 访问两者的公众获得 SSL,访问服务器 B 和 C 的人获得 SSL。无论目标是 http 还是 https,您都可以从服务器 A 代理_pass。
但是,内部服务器并不总是需要通过 SSL,在这种情况下,您可以只保护服务器 A。
如果您愿意,可以使用免费的 Let's Encrypt 证书。