我们有一个正在工作的NGINX将外部用户重定向到IIS服务器。问题是IIS看到的IP是NGINX机器,而不是来自外部用户的IP。我们的日志中充满了";10.0.0.2";IP不正确。
显示了类似的配置文件。我们已经包括";proxy_set_header";线
这个配置文件正确吗?IIS服务器上应该做什么?我们应该在web.config文件中包含一些主题吗?如果是这种情况,我们应该补充什么?
server {
listen 10.0.0.2:443 ssl;
server_name web.mydomain.com;
ssl_certificate /home/admin/conf/web/ssl.web.mydomain.com.pem;
ssl_certificate_key /home/admin/conf/web/ssl.web.mydomain.com.key;
error_log /var/log/apache2/domains/web.mydomain.com.error.log error;
location / {
proxy_set_header x-real-IP Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Host $remote_addr;
proxy_pass https://10.0.0.11;
location ~* ^.+.(jpeg|jpg|png|gif|bmp|ico|svg|tif|tiff|css|js|htm|html|ttf|otf)$ {
root /home/admin/web/web.mydomain.com/public_html;
access_log /var/log/apache2/domains/web.mydomain.com.log combined;
access_log /var/log/apache2/domains/web.mydomain.com.bytes bytes;
expires max;
try_files $uri @fallback;
}
}
location /error/ {
alias /home/admin/web/web.mydomain.com/document_errors/;
}
location @fallback {
proxy_pass https://10.0.0.11;
}
location ~ /.ht {return 404;}
location ~ /.svn/ {return 404;}
location ~ /.git/ {return 404;}
location ~ /.hg/ {return 404;}
location ~ /.bzr/ {return 404;}
include /home/admin/conf/web/snginx.web.mydomain.com.conf*;
}
您可以使用IIS增强的日志记录来将自定义标头(如X-Forwarded-For
(写入日志文件,
https://learn.microsoft.com/en-us/iis/configuration/system.applicationhost/sites/site/logfile/customfields/add
无法更改源IP字段,因为这确实是TCP/IP数据包中记录的IP地址。
起初我认为这可能与IIS/NGINX有关,但在@lex li和@bruce zhang重新发布后,我对它进行了更多的研究。
我实际上并不知道,但在我们的应用程序(在IIS上运行(中有这些头的侦听器,而这些侦听器没有正确实现。
所以这只是我们的应用程序和NGINX之间的错位。
感谢李和张