Запуск сервера Tomcat на двух разных портах
Я хочу развернуть сервер tomcat, чтобы он прослушивал два порта одновременно (оба для протокола http).
Просто, чтобы убедиться, что вы понимаете это требование соответствия, У нас есть только один экземпляр сервера, но вы хотите прослушивать два порта для протокола HTTP. Например, любой может получить доступ к приложениям, развернутым на моем сервере, используя номера портов 7080 и 8080
Можно ли это сделать? Если возможно, как мы можем добиться этого?
Ответы
Ответ 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 "%r" %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 "%r" %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