在Cent OS上configurationNginx和Tomcat服务器时遇到问题。
这里是nginx.conf :
server { listen 80; server_name subdomain.test.com; root /usr/local/tomcat/webapps/webapp_folder; index index.html index.htm index.jsp; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; location ~ \.jsp { proxy_pass http://127.0.0.1:8080; } }
当我访问subdomain.test.com时 ,我会得到一个下载对话框而不是index.jsp的内容。
另外,我可以通过访问ip_address:8080 / webapp_folder来访问网站。
我也尝试将URL http://127.0.0.1:8080更改为http://127.0.0.1:8080/webapp_folder ,但是当我启动Nginx时,出现以下错误消息:
重新启动nginx守护进程:nginxnginx:[emerg]“proxy_pass”不能在正则expression式给出的位置,或命名的位置内,或者if语句内,或者在/etc/nginx/nginx.conf中的“limit_except” :145
我也试过这个:
server { listen 80; server_name subdomain.test.com; root /usr/local/tomcat/webapps/webapp_folder; index index.html index.htm index.jsp; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; location / { proxy_pass http://127.0.0.1:8080/webapp_folder; } }
但仍然没有工作。
你能帮我解决这个问题吗? 多谢!
下载对话框可能会出现,因为jsp没有在/etc/nginx/mime.types中定义 – 虽然我认为反向代理不会更改Tomcat提供的MIMEtypes。
当您访问端口8080的应用程序时,我假设WebApp正常工作? 如果是这样,看看你将所有请求传递给Tomcat会发生什么,如下所示:
server { listen 80; server_name subdomain.test.com; root /usr/local/tomcat/webapps/webapp_folder; index index.html index.htm index.jsp; 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_pass http://localhost:8080; }