2017-09-05 8 views
0

私のWebスタックは(nginx(ポート:29090) - > tomcat) nginxはリバースプロキシとして機能し、tomcatホスト2 webappsは
で構成されています1.認証の場合(netflix zuulを使用) - runningポート29091
2. SensorThingsのAPIサーバー上 - この要求の下に以下= http://localhost:29090/sensor-internal
Nginxはポートの変更で正規表現を書き換えます

zuul.route.sensor.urlを使用して渡されるポート29101
上で実行されているnginx.confブロックは

location /sensor-internal/ { 
     include cors_support;    
     rewrite ^(/sensor/)(.*)$ SensorThingsServer-1.0/v1.0/$2 break; 
     proxy_redirect  off; 
     proxy_set_header Host $host; 
     rewrite_log on; 

    } 
です

は私がポートで
http://localhost:29101/SensorThingsServer-1.0/v1.0/xxxx(n)/yyyy(m)

参照の変化にURL
http://localhost:29090/sensor/xxxx(n)/yyyy(m)
を交換し、STS-1.0/v1.0のでセンサーを交換したい/
は、私は上記のブロックは、ポート変更のために動作しませんと信じています。ご案内ください。

答えて

0

あなたが定義した場所/sensor-internal//sensor/*要求には対応していないため、別の場所/sensor/を記述してそこで書き直しを実行する必要があります。

location /sensor/ { 
    rewrite ^/(/sensor/)(.*)$ http://localhost:29101:SensorThingsServer-1.0/v1.0/$2 break; 
    rewrite_log on; 
} 
+0

ブロックの外に書き換えを移動してブロックする必要はありません –

+0

技術的には - はい、それを 'server'コンテキストに移動できます。しかし、この場合、ルールはこのサーバーへのすべての要求に対してテストされます。これは、私の観点から見ると、CPU使用率が無駄になります。 'location'を定義するとき、あなたはこの書き換えルールに対してどのようなURIが検証されるべきかを明確に指定します。 –

+1

思考プロセスを共有してくれてありがとう。それを覚えておいてください:-) –

関連する問題