Tomcat 多域名端口配置问题求助

我现在用的容器是 Tomcat,我现在想做的一件事是:

条件:有腾讯云服务器、域名、两个 Tomcat、项目。

我想做的事:

  1. IP 地址不可以访问 80 端口
  2. IP 地址可以访问除了 80 端口外的所有端口
  3. 域名可以访问 80 端口

描述一下就是:

比如我域名是 mateboot.com,我的 Tomcat1 端口是 80,Tomcat2 端口是 8080

我现在用 IP:80 不能访问 IP:8080 可以访问

但是,mateboot.com:80 是可以访问的。

这样的要怎么配置呢。

  • Tomcat

    Tomcat 最早是由 Sun Microsystems 开发的一个 Servlet 容器,在 1999 年被捐献给 ASF(Apache Software Foundation),隶属于 Jakarta 项目,现在已经独立为一个顶级项目。Tomcat 主要实现了 JavaEE 中的 Servlet、JSP 规范,同时也提供 HTTP 服务,是市场上非常流行的 Java Web 容器。

    146 引用 • 524 回帖
  • Q&A

    提问之前请先看《提问的智慧》,好的问题比好的答案更有价值。

    1720 引用 • 11354 回帖 • 583 关注

赞助商 我要投放

5 回帖
请输入回帖内容 ...
  • fpdan
  • ferried

    有没有类似 iptables 之类的 filewall 之类的或者运营商安全策略管理里限制的锅?

  • ghostsf

    nginx 代理下呗

  • biehaiyang

    nginx 轻松解决这个问题,但是你这个问题。很刁钻。doge

    域名设置默认访问 80 端口

    在你的 server 下面配置这个,80 443 都拒绝 ip 请求。只有域名可以

    image.png

    其他的直接放开 就行了,管那么多~

    doge

  • 233333
    <?xml version='1.0' encoding='utf-8'?>
    <Server port="8504" shutdown="SHUTDOWN">
        <Listener className="org.apache.catalina.startup.VersionLoggerListener" />
        <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
        <Listener className="org.apache.catalina.core.JasperListener" />
        <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
        <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
        <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />
        <GlobalNamingResources>
            <Resource name="UserDatabase" auth="Container"
                      type="org.apache.catalina.UserDatabase"
                      description="User database that can be updated and saved"
                      factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
                      pathname="conf/tomcat-users.xml" />
        </GlobalNamingResources>
        <Service name="Catalina">
            <Connector port="80" protocol="HTTP/1.1"
                       connectionTimeout="20000"
                       redirectPort="你本地运行的端口" URIEncoding="UTF-8" />
            <Connector port="8504" protocol="AJP/1.3" redirectPort="你本地运行的端口" />
    
            <Engine name="Catalina" defaultHost="localhost">
    
                <Realm className="org.apache.catalina.realm.LockOutRealm">
                    <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
                           resourceName="UserDatabase"/>
                </Realm>
    
                <Host name="解析在你机器上的域名" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false" >
                    <Context docBase="真实路径" path="虚拟路径" reloadable="true"/> <!--没这个需求的话去掉无视-->
                    <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>
            </Engine>
        </Service>
    </Server>
    
    

    tomcat7 上貌似可用