При вашей настройке если nginx и apache2 настроены на одном IP у вас один из сервисов просто не работает, т.к. не может 2 разных сервиса слушать 1 порт. Ответ на вопрос - можно, если все сделаете правильно будет даунтайм несколько секунд на перечитку конфига и все.
@RicoX тоесть, я сейчас в виртуальных хостах nginx переделываю все хосты на IP:80 и так же в конфиге ispmgr.conf строку httpport ставлю 80, и все должно пройти без проблем?
Я не знаю вашей полной связки, сказать да - это к медиумам. Выложите конфиги апача и нгиникса, по ним можно будет сказать как оно настроено и работает. Вообще если используете ispmgr все настройки лучше делать через его вебморду а не руками в конфигах.
Из этого не видно на каком порту слушает апач, видно только, что nginx проксирует на http://IP:8080; сам же он и так скорее всего слушает на порту 80.
Выполните команду
netstat -nlp | grep -E "(nginx|apache|http)"
Узнаете точно что на каком порту у вас работает.
Ну смотрите расшифровываю вывод:
nginx работает на портах 443 (https) и 80 (http)
ihttpd - админка вашей панели работает на 1500 порту
apache2 - работает на 81 порту, судя по выводу на 8080 у вас ничего не работает и не понятно на что проксирует в этом случае nginx
@RicoX эта команда netstat -nlp | grep 8080 ничего не выводит, сейчас у меня произошла ошибка, и мне пришлось вернуть все конфиги на старое, тоесть это:
nginx IP:81
apache2 IP:81
потому что IspManager создает домены на IP:81 не знаю почему
Он все правильно создает, nginx у вас работает на порту 80, апач на порту 81 соответственно nginx проксирует запросы на апач, так и должно быть, чего вы хотите добиться то? У вас сейчас стандартная схема фронтенд-бэкенд. Убедиться что это так можно первой командой.
@RicoX Пожалуйста, помогите перенастроить на другие порты.
Я делал изменения на такие
nginx ip:8080
apache ip:8080
а ispmgr все равно создает домены на 81 порт, получается домен либо не работает, либо перенаправляется на основной сайт.
Как это исправить? Мне нужно чтобы nginx был на 80 порту, а apache2 на 8080.
Мне нужно закрыть полностью порт 81. Это прямо срочно как нужно, ибо в данный момент у полностью уязвим
nginx УЖЕ у вас на 80 порту, отстаньте от него, apache смотрящий в мир вам вообще не нужен, пусть себе будет на 81 порту, но только локалхоста.
Делается так
nano /etc/apache2/ports.conf
NameVirtualHost 127.0.0.1:80
Listen 80
Меняем на
NameVirtualHost 127.0.0.1:81
Listen 127.0.0.1:81
Если сильно хочется именно сменить, меняйте скриптом в 2х местах во первых в конфиге апача, во вторых в конфиге nginx в настройках проксирования, но при перезапуске панель вам все равно вернет все назад, на сколько я помню ispmgr умеет ставить nginx только так, ну или спросить у их техподдержки.
@RicoX service apache2 restart
[....] Restarting web server: apache2[Tue Jul 01 13:41:39 2014] [warn] NameVirtualHost 127.0.0.1:81 has no VirtualHosts
... waiting [Tue Jul 01 13:41:41 2014] [warn] NameVirtualHost 127.0.0.1:81 has no VirtualHosts
. ok
что это значит?
В apache2.conf тоже виртуальные хосты переделать на 127.0.0.1:81 ?
@RicoX это конфиг ispmgr.conf
Service "HTTP" {
Confname apache2
Monitored NO
Process apache2
Start /etc/init.d/apache2 start
Stop /etc/init.d/apache2 stop
Type www
Ip МОЙ ВНЕШНИЙ ТУТ ВПИСАН 81
}
Когда есть всевозможные менеджеры сайтов надо все делать через них, иначе ничерта не работает и любые настройки вне их перезаписываются. Если я не ошибаюсь сам менеджер умеет ставить nginx именно как прокси и тогда апач автоматически им же перевешивается на локалхост.
@RicoX Я все ставил с помощью ispmgr но вот как вы видели, у меня такие настройки он сделал, и мне нужно закрыть порт 81, в любом случае, иначе я с этим портом уязвим
То-есть чтоб сайты соединялись с миром сами не через nginx? Добавьте в фаирвол правило:
iptables -A INPUT -p all -m state --state ESTABLISHED,RELATED -j ACCEPT
перед запретами.
у nginx есть команда nginx -s reload
которая перегружает конфиг без перезагрузки самого сервера и без разрыва соединений
как в прочем и у Apache2 - gracefull