Назад | Перейти на главную страницу

Как мне запустить два разных веб-сервера на одном сервере?

Я знаю, что вы не можете прослушивать один и тот же порт и IP-адрес, используя два разных серверных процесса, но, очевидно, это возможно, если вы выделите каждому отдельный IP-адрес. Так ли это? Я подумываю запустить и ningx, и Apache на одном сервере (я также приветствую отзывы о том, хорошая ли это идея), в основном потому, что в идеале я хотел бы попробовать переключиться на nginx, но, предположительно, его поддержка Tomcat невелика, поэтому я думаю, что для этого мне нужно сохранить apache.

Кто-нибудь делал что-то подобное; это рекомендуется, и как вы это делаете?

И apache, и nginx принимают аргументы того, какие адреса следует слушать; если вам нужен apache на 192.168.1.100 и nginx на 192.168.1.110, вы должны добавить следующее в соответствующие файлы conf:

httpd.conf (или /etc/apache/ports.conf, в зависимости от дистрибутива):

listen 192.168.1.100:80

nginx.conf:

server {
    # port to listen on. Can also be set to an IP:PORT
    listen 192.168.1.110:80;
    . . . 

Да, с двумя IP-адресами у вас могут быть nginx и apache, которые прослушивают порт 80. В качестве альтернативы вы можете настроить apache для перечисления на том же IP-адресе, но на другом порту, и иметь запросы прокси-сервера nginx к apache для доменов apache.

server {
    listen 1.2.3.4:80;
    server_name apache_domain.com www.apache_domain.com;
    location / {
    proxy_pass http://1.2.3.4:81/;
    proxy_redirect http://1.2.3.4:81/ /; 
    ...

для прослушивания apache через порт 81.