Iis Nginx反向代理-直通基本身份验证
我正在尝试将nginx设置为反向rpoxy服务器,位于使用基本身份验证进行身份验证的几个iisweb服务器的前面 (注意-这与-浏览器/服务器之间的所有内容都应该是相同的) 它的工作方式有点不正常,但是页面上的每一个资源(图像/css等)都会反复提示用户进行身份验证Iis Nginx反向代理-直通基本身份验证,iis,nginx,basic-authentication,reverse-proxy,Iis,Nginx,Basic Authentication,Reverse Proxy,我正在尝试将nginx设置为反向rpoxy服务器,位于使用基本身份验证进行身份验证的几个iisweb服务器的前面 (注意-这与-浏览器/服务器之间的所有内容都应该是相同的) 它的工作方式有点不正常,但是页面上的每一个资源(图像/css等)都会反复提示用户进行身份验证 upstream my_iis_server { server 192.168.1.10; } server { listen 1.1.1.1:80; server_name www.ex
upstream my_iis_server {
server 192.168.1.10;
}
server {
listen 1.1.1.1:80;
server_name www.example.com;
## send request back to my iis server ##
location / {
proxy_pass http://my_iis_server;
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
proxy_http_version 1.1;
proxy_set_header Connection "";
proxy_pass_header Authorization;
proxy_redirect off;
proxy_buffering off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
我花了很长时间才弄明白这个确切的情况,但我想OSS就是这样。这篇文章已经有一年了,所以可能是原来的海报发现了,还是放弃了 无论如何,对我来说,这个问题至少是由以下几点引起的:
server {
listen 80;
server_name your.site.com;
location / {
proxy_http_version 1.1;
proxy_pass_request_headers on;
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_pass_header Authorization; //This didnt work for me
more_set_input_headers 'Authorization: $http_authorization';
proxy_set_header Accept-Encoding "";
proxy_pass https://sharepoint/;
proxy_redirect default;
#This is what worked for me, but you need the headers-more mod
more_set_headers -s 401 'WWW-Authenticate: Basic realm="intranet.example.com"';
}
}
我在使用nginx/1.10.3时出现了这些相同的症状。我有一个基于基本身份验证的安全服务,nginx作为客户端和服务器之间的反向代理。要求nginx通过授权 对服务器的第一个请求确实通过了授权头。第二个请求只是阻止了这个头,这意味着客户端在每个会话中只能发出一个请求 这不知怎么地与饼干有关。如果我清除了浏览器cookies,那么循环就会重复。客户端能够进行身份验证,但仅限于第一个请求。关闭浏览器也有同样的效果 我的解决方案是使用以下方法将上游服务器从https更改为http:
proxy_pass http://$upstream;
而不是:
proxy_pass https://$upstream;
最初的海报确实放弃了,而是尝试了Microsofts IIS应用程序请求路由(ARR),该路由确实可以毫无问题地处理Basic和NTML身份验证,但却在SharePoint 2013的一些最小下载策略(MDS)中引发了一些非常奇怪的问题也许这会有帮助:@matt Hi我需要传递诸如username:password而不是realm=“etc”这样的信息,这还能用吗?
更多设置输入标题
更多设置标题这些是什么?@deathangel908它们是来自标题更多模块的指令()可以使用nginx编译以添加更多功能。