我成功地将nginx转发给了tomcat。现在我希望在'myserver.com'上运行一个静态html页面,在app.myserver.com下运行我的tomcat应用程序。
由于互联网上已经存在未指向app.myserver.com的链接,我需要以某种方式处理。
基本上,我们的想法是让nginx检查请求的静态html文件是否存在。 如果它不存在,它应该将它转发到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 :(得分:0)
从proxy_pass
语句中删除URI。使用:
proxy_pass http://tomcat1;
有关详细信息,请参阅this document。
此外,try_files
语句中不应包含/
个try_files $uri @app;
。使用:
d <- c(rexp(1e4, 100), runif(100, max=5e4))
hist(d)