在我们的机构中,我们有一个静态公共 IP,但托管了多个用于互联网访问的应用程序。在尝试通过单个服务器访问不同内部服务器上的应用程序时,发现反向代理可以完成这项工作。以下是当前要求:
为了实现这一点,我们安装了 Apache 和 Nginx(Ubuntu 20),如下图所示这里。但不幸的是,反向代理没有按预期工作。虽然安装时没有错误,但方向没有发生。
server {
listen 443 ssl;
server_name domaina.com;
ssl on;
ssl_certificate /etc/letsencrypt/live/domaina.com.cer;
ssl_certificate_key /etc/letsencrypt/live/domaina.com.key;
include /etc/letsencrypt/options-ssl-nginx.conf;
location / {
proxy_pass https://10.10.60.18/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
server {
listen 443 ssl;
server_name domainb.com;
ssl on;
ssl_certificate /etc/letsencrypt/live/domainb.com.cer;
ssl_certificate_key /etc/letsencrypt/live/domainb.com.key;
include /etc/letsencrypt/options-ssl-nginx.conf;
location / {
proxy_pass https://10.10.60.30/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
使用上述设置不会发生这种情况。不确定我们的方法是否正确,是否有正确的方法可以实现这一点?
答案1
找到了一个超级好的解决方案。只需从以下网址下载并安装 Nginx Proxy Manager:https://nginxproxymanager.com/ 这可以作为 docker 运行,因此无需安装任何依赖项。这是一个一体化软件包。只需下载并运行即可。然后使用非常易于使用的 GUI 打开应用程序集“代理主机”。完整指南可在此处获取:https://nginxproxymanager.com/guide/#project-goal