我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...

java在企业大型应用中占用重要的话语权,如果您想有更好的薪酬,那么就要努力学习java。在java网站开发角度来说的话,需要的服务器是tomcat。苏南大叔在本篇文章中,给大家带来了本次和tomcat交锋的最新战况。

苏南大叔:tomcat 如何修改配置?配置文件在什么位置? - tomcat-hero
tomcat 如何修改配置?配置文件在什么位置?(图2-1)

本文测试环境:mactomcat@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

默认的配置下有个localhosthost配置,类似下方的内容:

<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 &quot;%r&quot; %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配置相比,路径由appbasedocbase两部分组成了。并且,多了个自动解压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做了个反向代理。下面是完整的nginxvhost配置文件代码:

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 如何修改配置?配置文件在什么位置? - brew_tomcat_005
tomcat 如何修改配置?配置文件在什么位置?(图2-2)

总结

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

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。

 【福利】 腾讯云最新爆款活动!1核2G云服务器首年50元!

 【源码】本文代码片段及相关软件,请点此获取更多信息

 【绝密】秘籍文章入口,仅传授于有缘之人   tomcat    nginx