Nginx loaction配置和Tomcat部署方式

版权声明:这篇文章本人原创,转载请注明出处,谢谢 https://blog.csdn.net/yicong406880638/article/details/51249072

昨天写了一个servlet,调试的过程学习到了不少东西。

首先前端和服务端是分开的。前端项目放在nginx中,http请求通过nginx转发。一个<form>表单的action=‘’/ka_upload“,nginx conf中配置为

location /ka_ {
     proxy_pass http://localhost:8080/kmgw/access/post;
     proxy_redirect default;
     # 其他省略
}
通过firebug发现,http://localost:80/ka_upload 一直是404。http://localost:80/ka_upload表示nginx已经接收到了请求,location的ka_在后面自动追加upload。那它没有转到proxy_pass的url吗?其实它应该是也把upload追加到proxy_pass的后面了,相当于http://localhost/kmgw/access/postupload,这当然是404了。

第一种方法,loaction改成 /ka_upload,完全匹配到(可以加上=)。第二是把要转发的应用的url风格弄得和loaction的一样,比如保证http://localhost:8080/kmgw/ka_upload是正确可访问的。

nginx的配置还有很多,暂时未能一一熟悉。


Tomcat的话之前一直以为要运行项目,必须放在webapp下,其实还有其他方法。


1. 打包成war ,拷贝到tomcat/webapp/目录下

这种方法,tomcat启动后,会自动解压到同名目录下,访问路径带上目录名即可


2. 修改conf/server.xml

修改conf / server.xml,里面找到<Host>这段配置

     

<Host  name="localhost"  appBase="webapps"  unpackWARs="true" autoDeploy="true"  xmlValidation="false" xmlNamespaceAware="false"></Host>
在里面增加<context>配置,即增加了一个web应用,比如:

<Context  path="/prj"  docBase="D:\myprj"  reloadable="true"></Context>

这里path如果为空,即可以直接通过域名访问。写上path="具体值",则要加上项目名,http://localhost:8080/具体值/.....  。风闻,这种配置方式不被推荐


3. 不修改server.xml【推荐使用此方法】

在tomcat文件夹的conf"catalina"localhost(对于Tomcat6版本及其以上,需要自己创建catalina和localhost这两个文件夹)下新建一个xml文件。内容为
<?xml version="1.0" encoding="UTF-8"?> 
<Context 
    docBase="换成你的路径" 
    reloadable="true"> 
</Context> 

注意,这种方式,配置path=**** 是无效的,具体web访问的路径以新配置的xml文件名为准,比如配置的为 kkk.xml ,那么访问这个web应用就需要/kkk/
参考 http://blog.csdn.net/lawmansoft/article/details/7394331
展开阅读全文

没有更多推荐了,返回首页