我有一个工作的 spring mvc 应用程序。我想让它可供测试用户查看。我已经购买了域名/设置名称服务器和所有 dns 的东西。
我像这样通过本地主机访问我的应用程序:
localhost:8080/myApp
但在现实世界中,我想像mydomain.com
. 所以我搜索了很多,发现人们将 nginx 推荐为“最快”的这些东西。因此,使用以下配置安装了 nginx:
server {
listen 80;
server_name www.mydomain.com mydomain.com;
location / {
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://localhost:8080;
}
} #end server
问题 :
当我访问时mydomain.com
,我得到了那个众所周知的 tomcat 页面If you're seeing this page via a web browser, it means you've setup Tomcat successfully. Congratulations!
。
如果我手动转到,mydomain.com/myApp
那么一切都会按预期进行。
问题 :
有没有办法让我配置它来执行以下操作:
mydomain.com
当我输入转移到的地址栏时mydomain.com/myApp
或者我在这种情况下完全关闭。有更简单的方法吗?
更新:
根据 fvu 的建议,当我将 ROOT 更改为其他目录然后将我的 up 部署在 ROOT 目录中时,我从 tomcat 得到 404:
type Status report
message
description The requested resource is not available.
我可以从服务器日志中检索此错误:
SEVERE: Exception sending context initialized event to listener instance of class org.springframework.web.util.Log4jConfigListener
java.lang.IllegalStateException: Web app root system property already set to different value: 'webapp.root' = [/tomcat_9090/webapps/myApp/] instead of [/tomcat_9090/webapps/ROOT
/] - Choose unique values for the 'webAppRootKey' context-param in your web.xml files!
更新二:
当我将配置更改为:
proxy_pass http://localhost:8080/myApp/;
该网站看起来可以正常工作,但实际上并没有。链接不起作用,css/js 无法加载。