nginx负载均衡器和OAuth

时间:2012-03-14 20:32:37

标签: oauth proxy nginx load-balancing

我正在尝试为两台服务器设置一个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,但正常添加了其他端口。

1 个答案:

答案 0 :(得分:5)

这可能与nginx没有任何关系。 OAuth(1,而不是2)需要一个签名网址,如果您将其移至端口81,则该网址为http://webservice:81。请确保您的OAuth代码知道网站实际上位于端口80而不是81.

更新您的客户端以说明它的端口81或告诉服务器它是80。

将81替换为您喜欢的端口