tomcat 如何修改配置?配置文件在什么位置?
发布于 作者:苏南大叔 来源:程序如此灵动~
java在企业大型应用中占用重要的话语权,如果您想有更好的薪酬,那么就要努力学习java。在java网站开发角度来说的话,需要的服务器是tomcat。苏南大叔在本篇文章中,给大家带来了本次和tomcat交锋的最新战况。

本文测试环境:mac、tomcat@8.5.14。默认您已经安装好了tomcat,如果您还没有安装好,可以参考最后一页的内容。简要来说的话,可以通过brew install tomcat来进行安装。
配置文件
tomcat的配置文件地址路径为:
<tomcat path>/libexec/conf/server.xml默认的网站源码路径为:
<tomcat path>/libexec/webapps/在mac环境下,
/usr/local/Cellar/tomcat/<版本号>当然和apache一样,这个默认的路径不一定非要是这里的。可以在配置文件中,改动到别的位置。
配置vhost
默认的配置下有个localhost的host配置,类似下方的内容:
<Host name="localhost" appBase="/home/wwwroot/" unpackWARs="true" autoDeploy="true">
<!-- SingleSignOn valve, share authentication between web applications
Documentation at: /docs/config/valve.html -->
<!--
<Valve className="org.apache.catalina.authenticator.SingleSignOn" />
-->
<!-- Access log processes all example.
Documentation at: /docs/config/valve.html
Note: The pattern used is equivalent to using pattern="common" -->
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>当添加个新的vhost的时候:
<Host name="newsn.net" appBase="/home/wwwroot/" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
<Context path="/" docBase="newsn.net"/>
</Host>这个新的host要放在和默认的host平级。
和大家所熟悉的apache配置相比,路径由appbase和docbase两部分组成了。并且,多了个自动解压war包的概念,其余的还是差不多。网上有教程说,要在默认的host里面也要添加一条context,我觉得不用。要是需要,您再加上,记得保证docBase里面有东西啊~
<Context path="/" docBase="___tom.root___"/>context中的path就对应于我们访问一个网页的时候,除了域名之外的pathinfo部分。设置为/,就是相当于domain.com/的请求都要到docbase里面去找对应代码了。
默认的tomcat端口号是8080,当然可以在下面这个配置中的8080,换成你喜欢的任何端口号即可,只要保证端口号不冲突即可。
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />配合nginx
当然了,因为在苏南大叔的服务器上,主体程序是php的缘故,所以,这个tomcat,就用nginx做了个反向代理。下面是完整的nginx的vhost配置文件代码:
server
{
listen 80;
server_name newsn.net www.newsn.net;
index index.jsp index.html index.htm default.jsp default.htm default.html;
root /home/wwwroot/newsn.net;
#error_page 404/404.html;
error_page 404 /404.html;
error_page 502 /502.html;
#TOMCAT-START
access_log /www/wwwlogs/newsn.net.log;
location / {
proxy_pass http://127.0.0.1:8080/;
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_set_header Cookie $http_cookie;
}
}重点就是这个 proxy_pass 相关的语句了,端口号8080,这样的话,就把对应的请求给“反向代理”走了。
mac系统brew安装
最后提一下,在mac系统下用brew install tomcat,来安装tomcat的事情。
tomcat的命令行的里面的名字是catalina...apache的命令行名字是httpd,也蛮有意思的。为啥都不用原名呢?
brew install tomcat安装完tomcat,默认的安装完的路径为:/usr/local/Cellar/tomcat/<版本号>。
查看所有tomcat/catalina可用的参数选项:
catalina -h可用命令是:
catalina run(有详细错误输出)catalina start(没错误log输出)catalina stop- 貌似没有
restart命令。

总结
tomcat的安装和配置,在本文中有个最佳实践。当然,在后续的文章里面,苏南大叔也会继续提及tomcat的相关经验,请点击下面的链接查看: