Подтвердить что ты не робот

Запуск сервера Tomcat на двух разных портах

Я хочу развернуть сервер tomcat, чтобы он прослушивал два порта одновременно (оба для протокола http).

Просто, чтобы убедиться, что вы понимаете это требование соответствия, У нас есть только один экземпляр сервера, но вы хотите прослушивать два порта для протокола HTTP. Например, любой может получить доступ к приложениям, развернутым на моем сервере, используя номера портов 7080 и 8080

Можно ли это сделать? Если возможно, как мы можем добиться этого?

4b9b3361

Ответ 1

Это очень просто, вам нужно только посмотреть конфигурационный файл conf/server.xml и добавить новый соединитель для нужного вам порта. Например, если у вас есть такой коннектор:

    <Connector port="8080" protocol="HTTP/1.1" 
           connectionTimeout="20000" 
           redirectPort="8443" 
           URIEncoding="UTF-8" />

Просто добавьте новый коннектор, но измените параметр порта. Это все, перезапустите, и все готово.

Ответ 2

Да, возможно, я просто проверил это сам. Просто отредактируйте файл server.xml(расположенный в папке с именем conf) следующим образом:

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

Это установит Tomcat для прослушивания обоих портов 8080 и 8081.

Ответ 3

В/conf/server.xml вы можете определить 2 разных сервиса.

Пример приведен ниже:

<Service name="Catalina_2">
    <Connector port="8081" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8444" />
    <Connector port="8010" protocol="AJP/1.3" redirectPort="8444" />
    <Engine name="Catalina_2" defaultHost="localhost">
      <Realm className="org.apache.catalina.realm.LockOutRealm">
        <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/>
      </Realm>
      <Host name="localhost"  appBase="webapps_2" 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>
    </Engine>
  </Service>


  <Service name="Catalina">
    <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
    <Engine name="Catalina" defaultHost="localhost">
      <Realm className="org.apache.catalina.realm.LockOutRealm">
        <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/>
      </Realm>
      <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>
    </Engine>
  </Service>

Примечание. Возможно, вам потребовалось увеличить размер кучи tomcat.

Ответ 4

вы можете указать следующий код в своем server.xml

<Service name="sample">

    <Connector port="81" protocol="HTTP/1.1" maxThreads="100" connectionTimeout="2000"/>

    <Engine name="sample" defaultHost="sample">
         <Host name="myhostname" appBase="webapp2">
             <Context docBase="C:\websites\sample\" />
         </Host>
     </Engine>

</Service>

Ответ 5

Пожалуйста, убедитесь, что у вас работает Tomcat, так как если вы хотите использовать его на любом привилегированном порту, вы должны использовать его под пользователем root.

Еще одна вещь, которую вы можете сделать, - перенаправить порт 80 на 8080 с помощью iptables. Что-то вроде этого:

iptables -t nat -A PREROUTING -d 192.168.10.16 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8080

Надеюсь, что это поможет

Ответ 6

запуск tomcat в другом порту. Мы должны изменить четыре вещи внутри тега службы файла server.xml

                                             

  • нам нужно изменить порт no. как 8080 до 80
  • мы должны изменить redirectPort не как 8443 до 8444
  • нам нужно изменить имя Engine, как Catalina, на Catalina_2
  • нам нужно изменить имя приложения, например webapps, на webapps_1