我有一个Windows服务器,用于托管投资组合网站和某些应用程序,该网站使用nginx在端口80和443上工作。
我正在尝试让nginx反向代理我的一些应用程序,以帮助保护它们的安全。
按照所有指南操作后,我的网站仍可正常运行,但仍只能通过其分配的端口访问这些应用程序。
SSL nginx当前看起来像:
server {
listen 192.168.0.2:443;
server_name example.com 192.168.0.2;
ssl_certificate cert.pem;
ssl_certificate_key key.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
root html;
index index.php index.html index.htm;
}
location /app1/ {
proxy_set_header Host 192.168.0.2:3882/;
proxy_pass http://192.168.0.2:3882/app1;
}
location /app2 {
proxy_pass http://127.0.0.1:3883;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
我尝试了两种不同的方法来尝试查看应用程序,但是两种方法均会产生404错误,错误日志显示以下错误:
2019/09/10 22:21:08 [error] 11940#15356: *1 CreateFile() "C:\Users\Alex\Services\nginx-1.17.3/html/app1" failed (2: The system cannot find the file specified), client: 192.168.0.2, server: example.com, request: "GET /app1 HTTP/1.1", host: "192.168.0.2"
从该错误中我可以得出的结论是,nginx在网站文件夹中查找,而不是在该应用程序的服务器中查找,因为我看不到该端口的引用。
我认为错误在某处:
location /app2 {
proxy_pass http://127.0.0.1:3883;
该位置可能需要更多信息