2016-07-28 8 views
0

httpsからhttpに二回リダイレクトし、1は、SSLを持って、私は、SSL証明書を持つサーバーでnginxのは、私は2つのサーバーを持っている

、このようにそれをconfigコン

別のサーバで
location ~^/abc/.* { 
    proxy_pass http://www.example.com:8214/ 
} 

(これはhttp:// www.anotherExample.com):

server { 
    listen 8214; 
    server_name www.anotherExample.com; 
    rewrite ^/(.*)$ http://www.anotherExample.com:8080/$1 permanent; 
} 

以降アクセスします。https:// www.example.com/abc/api/getGroup

http:// www.anotherExample.com:8080/api/getGroupにリダイレクトできません

何か間違っていますか?

答えて

1

設定を改善するためにできることがいくつかあります。

また、upstreamを設定することを検討してください。 その後、サーバーのブロックのために:

server{ 
    listen 8124; 
    server_name www.anotherExample.com; 
    rewrite ^/abc/(.*)$ http://www.anotherExample.com:8080/$1 permanent; 
} 

server{ 
    listen 8080; 
    server_name www.anotherExample.com; 

    location ^~ /api/ { 
     #your_config_here 
    } 
} 

説明:あなたの最初のlocationブロックで

、あなたは式に.*を持つべきではありません。 Nginxはあなたのためにこれにマッチします。次に、プロキシをするときに、NginxにURIを送信するよう明示的に伝えることができます。

次に、/abc/を含むURI www.anotherExample.com:8124を送信しているので、その後すべてを抽出します。

最後に、8080ポートを指すように書き換えたので、このために別のサーバーブロックを定義する必要があります。

達成しようとしていることはわかりませんが、ほとんどの場合、プロキシやリダイレクトはそれほど必要ではなく、パフォーマンスが低下する可能性があります。考慮すべきもう1つの考慮事項は暗号化されていない情報をanotherExample.comに送信することです。別のExExample.comは同じローカルネットワーク上になければセキュリティ上の脆弱性があります。

関連する問題