2016-12-13 13 views
1

ラズベリーパイのRailsアプリケーションのリバースプロキシとしてnginxを使用しています。私はhttpで動作させることができましたが、httpsを有効にしたいと思います。SSLをRailsと連携させるためにnginxを設定するには?

問題は、Railsアプリケーションがhttps要求を処理できないようです。私はページに到達しようとすると、これはRailsのサーバーの出力です:

ERROR bad Request-Line `\x16\x03\x01\x01\x1C\x01\x00\x01\x18\x03\x03ɳ▒▒▒ ▒▒ڬ▒▒9C▒▒▒=▒▒▒-v_\f▒&▒%9}\x00\x00▒▒0▒,▒(▒$▒\x14▒'. 

私はすべてのことに非常に新しいですが、それはできているので、私の理解から、私は何とかRailsのに自分の証明書とキーを伝える必要があります要求を復号化するには?あなたの助けのための

upstream lobsters { 
    server 127.0.0.1:3000; 
    keepalive 8; 
} 

## Redirects all HTTP traffic to the HTTPS host 
server { 
    listen 0.0.0.0:80; 
    server_name lobsters.my.domain; 

    server_tokens off; 

    return 301 https://$http_host$request_uri; 
    access_log /var/log/nginx/lobsters_access.log; 
    error_log /var/log/nginx/lobsters_error.log; 
} 

## HTTPS host 
server { 
    listen 0.0.0.0:443 ssl; 
    server_name lobsters.my.domain; 

    access_log /var/log/nginx/lobsters_access.log; 
    error_log /var/log/nginx/lobsters_error.log; 

    ssl on; 
    ssl_certificate /etc/letsencrypt/live/lobsters.my.domain/fullchain.pem; 
    ssl_certificate_key /etc/letsencrypt/live/lobsters.my.domain/privkey.pem; 

    location/{ 
     proxy_set_header X-Real-IP $remote_addr; 
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
     proxy_set_header Host $http_host; 
     proxy_set_header X-NginX-Proxy true; 
     proxy_set_header X-Forwarded-Proto $scheme; 

     proxy_pass https://127.0.0.1:3000; 
     proxy_redirect off; 

     proxy_http_version 1.1; 
    } 
} 

ありがとう:

https://github.com/jcs/lobstersはここに私の現在のnginxの設定です:

この

は私がインストールするアプリケーションです。

答えて

1

nginxでSSL接続を終了し、ポート3000で実行されているバックエンドプロセスに新しいSSL接続を確立します。HTTPを使用してnginxとポート3000の間で通信する必要があります。

のいずれかにご proxy_passステートメントを変更し

proxy_pass http://127.0.0.1:3000; 

か(あなたのupstreamディレクティブを使用する):

proxy_pass http://lobsters; 
+0

感謝を!私はnginxがSSLの部分だけを管理していたことを認識していなかったし、その後、httpに切り替えることができた。今ははっきりしています。 –

関連する問題