转发IP地址-NGINX和IIS



我们有一个正在工作的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之间的错位。

感谢李和张

最新更新