在tomcat和spring-cloud中部署多个工程,并设置不同域名通过https访问不同的工程

本教程通过阿里云获取到免费的https证书,在spring-cloud中目前只会设置一个域名的https访问服务器,在tomcat中可以设置不同的域名通过https访问同一个tomcat服务器,再通过服务器访问不同的工程中,但tomcat必须是8.5及以上版本才行,这里采用的是tomcat9。

一,在windows中部署后,通过不同的域名访问同一个端口,进入不同的工程项目。

1 . 在server.xml中添加两个host设置:

<Host name="testone.com"  appBase="webapps" unpackWARs="true" autoDeploy="true">
    <Context path="" docBase="/zp/"/>
    <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>


<Host name="testtwo.com"  appBase="webapps" unpackWARs="true" autoDeploy="true">
    <Context path="" docBase="/taoci/"/>
    <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>


<Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="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>

2 . 本机测试需要配置host映射到本机

修改C:\Windows\System32\drivers\etc\host文件

在后面添加2个域名

127.0.0.1 testone.com
127.0.0.1 testtwo.com

设置后访问不同域名就可以进入/zp/与/taoci/文件夹下的index.html文件

 

二.在阿里云centos中部署

1 . 将阿里云网站(公网ip:197.21.5.36)解析了备案好的域名,如:www.test1.com ,www.test2.com ,www.test3.com 。

2 . 放开阿里云的相应端口,如:80。

3 . 复制tomcat到服务器中,并在webapps文件夹下新建test/test1,test/test2,test/test3,wp/zp-jtc文件夹,并放index.html页面。

4 . 设置server.xml文件内容,使不同域名访问不同的工程:

<Host name="www.test1.com" appBase="webapps" unpackWARs="true" autoDeploy="true">
          <Context path="" docBase="
test/test1"/>
          <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>
      <Host name="
www.test2.com" appBase="webapps" unpackWARs="true" autoDeploy="true">
          <Context path="" docBase="
test/test2"/>
          <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>

      <Host name="www.test3.com" appBase="webapps" unpackWARs="true" autoDeploy="true">
          <Context path="" docBase="
test/test3"/>
          <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>

      <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">
            <Context path="" docBase="
test/test3"/>
        <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>

5 . 设置server.xml文件内容,使不同域名通过htts访问能访问同一个tomcat服务器:

需要修改两个地方:

一,设置端口

    <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

修改为:

    <Connector port="80" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="443" />

2.去掉下面代码的注释:

    <!--
    <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
               maxThreads="150" SSLEnabled="true">
        <SSLHostConfig>
            <Certificate certificateKeystoreFile="conf/localhost-rsa.jks"
                         type="RSA" />
        </SSLHostConfig>
    </Connector>
    -->

修改为:

    <Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol" URIEncoding="UTF-8" defaultSSLHostConfigName="www.test1.com" 

               maxThreads="150" SSLEnabled="true" >

        <SSLHostConfig hostName="www.test1.com">

            <Certificate certificateKeystoreFile="/opt/jks/test1.jks" certificateKeystorePassword="7WY7Caz8a" certificateKeyAlias="alias" type="RSA" />

        </SSLHostConfig>

          <SSLHostConfig hostName="www.test2.com">

              <Certificate certificateKeystoreFile="/opt/jks/test2.jks" certificateKeystorePassword="nBfQGuQjE" certificateKeyAlias="alias" type="RSA" />

          </SSLHostConfig>

          <SSLHostConfig hostName="www.test3.com">

              <Certificate certificateKeystoreFile="/opt/jks/test3.jks" certificateKeystorePassword="VcyTdFtm0" certificateKeyAlias="alias" type="RSA" />

          </SSLHostConfig>
    </Connector>

注释:certificateKeystoreFile="/opt/jks/test2.jks"为生产出的证书(详情请看阿里云的申请生成文档), certificateKeystorePassword="nBfQGuQjE"为证书密码。 certificateKeyAlias="alias"为证书别人,alias为阿里云免费证书默认名称。

6 . 浏览器下分别输入以下ip或域名进入相应的页面。

197.21.5.36

www.clagz.com

www.wwtaoc.com

www.wptaoci.com

注意:docBase="wp/zp-jtc" 地址不能写成 docBase="/wp/zp-jtc",会找不到项目路径。跟windows下的不一样。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kunzai6

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值