2017-03-24 14 views
1

私は正常にnginxがTomcatにすべて転送していました。今、私は静的なHTMLページを 'myserver.com'上で実行し、tomcat appはapp.myserver.com上で実行したいと考えています。ファイルが存在しない場合はnginx forward to tomcat

すでにインターネットにリンクがあり、app.myserver.comを指さないので、何とかそれを処理する必要があります。

基本的な考え方は、リクエストの静的なhtmlファイルが存在するかどうかをnginxに確認させることです。 存在しない場合は、tomcat(つまり@app)に転送する必要があります。これは私の現在の設定です。

location/{ 
    root /usr/share/nginx/html; 
    try_files/$uri @app; 
} 


location @app { 

# 
# Forward SSL so that Tomcat knows what to do 
proxy_set_header X-Forwarded-Host $host; 
proxy_set_header X-Forwarded-Server $host; 
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 

proxy_pass http://tomcat1/; 
proxy_set_header X-Forwarded-Proto https; 
#proxy_redirect off; 
proxy_connect_timeout  240; 
proxy_send_timeout   240; 
proxy_read_timeout   240; 
} 

は、私は次のエラー

2017/03/24 20:49:12 [emerg] 7639#0: "proxy_pass" cannot have URI part in location given by regular expression, or inside named location, or inside "if" statement, or inside "limit_except" block in /etc/nginx/sites-enabled/myserver.com:134 

私の誤解は何を取得していますか?

答えて

0

proxy_passステートメントからURIを削除します。使用:

proxy_pass http://tomcat1; 

詳細はthis documentを参照してください。

また、try_filesステートメントの中には、裸の/が含まれていてはなりません。使用:

try_files $uri @app; 
関連する問題