2

我有一个在本地运行的 Ruby on Rails 应用程序。然后我也在本地运行一个 nginx 服务器。现在,通过 HTTP 连接工作正常,但是当我尝试通过 HTTPS 连接时,我从 nginx 收到“502 Bad Gateway”错误。我很确定证书工作正常,因为当它们没有正常工作时,我遇到了不同的错误,但现在我的 nginx 配置有问题?这是配置:

http {
  access_log off;
  #include mime.types;
  default_type application/octet-stream;

  upstream mydomain.com {
    server 127.0.0.1:8080;
  }

  server {
    listen 80;
    server_name local www.local;
    location / {
      proxy_pass http://mydomain.com;
    }
    add_header Pragma "no-cache";
  }

  server {
    listen 443;
    server_name local www.local;
    ssl on;
    ssl_certificate /Users/daise/projects/mydomain/run/ssl/server.crt;
    ssl_certificate_key /Users/daise/projects/mydomain/run/ssl/server.key;
    location / {
      proxy_set_header X-FORWARDED_PROTO https;

      #proxy_pass https://mydomain.herokuapp.com;
      proxy_pass https://mydomain.com;
    }
    add_header Pragma "no-cache";
  }
}

我还应该补充一点,我欺骗了我的 /etc/hosts 文件以解析为 127.0.0.1

4

1 回答 1

0

改变

 proxy_pass https://mydomain.com;

 proxy_pass http://mydomain.com;

您的 ssl 在 nginx 中终止。所以不需要使用https来连接上游服务器。

[更多]

还要注意配置文件中的错字:

proxy_set_header X-FORWARDED_PROTO https

proxy_set_header X-FORWARDED-PROTO https;
于 2013-03-29T01:47:23.563 回答