我正在尝试为两台服务器设置一个nginx loadbalancer / proxy,并在两台服务器上运行OAuth身份验证的应用程序。 当nginx在端口80上运行时,一切运行正常,但是当我将它放在任何其他端口上时,OAuth身份验证失败并显示“无效签名”错误消息。
这是我在nginx.conf中的服务器配置:
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://webservice;
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-Port $server_port;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-FORWARDED-PROTO https;
}
有没有人遇到过类似的问题?
PS:我注意到OAuth领域属性中省略了端口80,但正常添加了其他端口。
答案 0 :(得分:5)
这可能与nginx没有任何关系。 OAuth(1,而不是2)需要一个签名网址,如果您将其移至端口81,则该网址为http://webservice:81
。请确保您的OAuth代码知道网站实际上位于端口80而不是81.
更新您的客户端以说明它的端口81或告诉服务器它是80。
将81替换为您喜欢的端口