近い将来、3台のnginxサーバーを使用する予定です。1つは、他の2つのSSL用のリバースプロキシです。したがって、たとえば、私はに行きます:
https://www.mysitename.com/site1
この例の他の2つのサーバーは、site1とsite2です。SSL証明書をプロキシにインストールし、リバースプロキシを使用したい(3つすべてが内部ネットワーク上にあるため、SSLは不要です) site1のrailsアプリであるポート8081、site2の8082です。
私はこれを持っています...
server {
listen 443;
server_name mysitename.com;
ssl on;
ssl_certificate ssl/mysitename.com.crt;
ssl_certificate_key ssl/mysitename.com.key;
keepalive_timeout 60;
location /site1 {
proxy_pass http://localhost:8081;
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_redirect http:// https://;
}
location /site2 {
proxy_pass http://localhost:8082;
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_redirect http:// https://;
}
}
したがって、www.mysitename.com / site1にアクセスすると、通常はlocalhost:8081(または後で別のサーバーの内部IP)から来るものを基本的に返すようにします。
localhost呼び出しから「site1」を削除する方法はありますか?やっているように見えることは、localhost:8081 / site1を使用していることです。site1およびsite2サイトは、「/ login / index」または「/ whatever / list」などの性質を持ち、「site1」はありません。
また、サイトコントローラーには(redirect_toを使用して)/ login / indexから/ whatever / listへのリダイレクトがあります。
site1を使用するには、サイトのURLを再設計する必要がありますか?または、NGINXプロキシはそれを把握できますか?
ありがとう。