我在 Debian 11 上配置了 nginx 反向代理,我可以从互联网使用子域访问应用程序服务器。但在内部网络上它不起作用。
备用代理与应用服务器 172.3.0.1/24 位于同一子网中。域控制器作为 DNS 输入。客户端位于不同的子网中,无法通过浏览器访问子域。客户端可以 ping 备用代理,但当我使用 HTTPS 访问子域时,连接被拒绝。
因此,主要目标是每个人都可以访问子域,并从互联网访问子域、具有特殊端口的子域以及通过 HTTPS 的子域。访问应从 HTTP 重定向到 HTTPS,因为该应用程序仅支持端口 80。
我不明白问题是什么或者我是否配置了错误。
我的配置的第一个块
server {
listen 80;
return 301 https://$host$request_uri;
}
第二个
server {
listen 443 ssl;
server_name somesubdomain.www.com;
ssl_certificate /etc/nginx/ssl/somesubdomain.pem;
ssl_certificate_key /etc/nginx/ssl/somesubdomain.key;
ssl_session_cache builtin:1000 shared:SSL:10m;
ssl_protocols TLSv1.2;
ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
ssl_prefer_server_ciphers on;
access_log /var/log/nginx/somesubdomainweb.www.com.access.log;
location / {
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-Proto $scheme;
proxy_pass http://172.3.0.x;
proxy_read_timeout 90;
}
}
以及我配置的最后一块用于通过特殊端口进行访问
server {
listen 443 ssl;
server_name somesubdomain.www.com:27000;
ssl_certificate /etc/nginx/ssl/somesubdomain.pem;
ssl_certificate_key /etc/nginx/ssl/somesubdomain.key;
ssl_session_cache builtin:1000 shared:SSL:10m;
ssl_protocols TLSv1.2;
ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
ssl_prefer_server_ciphers on;
access_log /var/log/nginx/somesubdomainpath.www.com.access.log;
location / {
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-Proto $scheme;
proxy_pass http://172.3.0.13:27000;
proxy_read_timeout 90;
}
}
感谢您的帮助
答案1
我的问题已经解决了。添加并配置了新的网络适配器,并控制和调整了路由。
然后,我允许服务器块中的子网,控制配置并执行重新加载。然后一切正常!
我希望这种方法能够帮助到有同样困扰的人。
- 控制 DNS
- 允许子网以及可达性
- 路由控制
- 在我们的例子中,配置了第二个网络适配器