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

话说每隔几年都要和tomcat有次亲密接触。java是个绕不过去的坑啊。所以要勇敢直面了。苏南大叔在本篇文章中,给大家带来了本次和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 &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配置相比,路径由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,这样的话,就把对应的请求给“反向代理”走了。

brew安装tomcat

最后奉上几张,在mac系统下用brew install tomcat,来安装tomcat的mac版本的截图。记住tomcat的命令行的里面的名字是catalina,命令是 catalina run (有详细错误输出),catalina start(没错误log输出),catalina stop。而且貌似没有restart命令。切记。(apache的命令行名字是httpd,也蛮有意思的。为啥都不用原名呢?)

安装tomcat,默认的安装完的路径为:/usr/local/Cellar/tomcat/<版本号>

brew install tomcat

tomcat的安装及配置 - brew_tomcat_002

查看所有tomcat/catalina可用的参数选项:

catalina -h

tomcat的安装及配置 - brew_tomcat_003

启动一个tomcat服务器,两条命令任选其一即可。区别在于是否在终端里面输出log日志,start不输出,run输出。

catalina start
catalina run

tomcat的安装及配置 - brew_tomcat_004

tomcat的安装及配置 - brew_tomcat_005

本站采用创作共用版权协议, 要求署名、非商业用途和相同方式共享。
转载本站内容必须也遵循“署名-非商业用途-相同方式共享”的创作共用协议。
程序如此灵动~》下所有原创文章,如被用于商业用途,请您按规定支付稿费。