#ubuntu #apache #nginx #ssh
Есть сервер на Ubuntu 14.04.3, и к нему есть доступ по SSH. На сервере установлен nginx/1.4.6 и Apache/2.4.7 Но вот в чем вопрос. Работают ли в паре Nginx+Apache? То есть, является ли nginx «фронтэндом», а apache «бэкэндом»? Есть ли какая нибудь ssh-команда, которая бы показала это?
Ответы
Ответ 1
можно воспользоваться такой командой: $ sudo lsof -Pn -iTCP -sTCP:LISTEN -c nginx -c apache -c httpd -a и проанализировать её вывод. пример (реальный сервер, часть строк опущена для наглядности): COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME apache2 2206 root 3u IPv4 58834967 0t0 TCP 127.0.0.1:8080 (LISTEN) apache2 13377 www-data 3u IPv4 58834967 0t0 TCP 127.0.0.1:8080 (LISTEN) nginx 13289 root 6u IPv4 58829785 0t0 TCP *:80 (LISTEN) nginx 13289 root 7u IPv4 58829786 0t0 TCP *:443 (LISTEN) nginx 13624 www-data 6u IPv4 58829785 0t0 TCP *:80 (LISTEN) nginx 13627 www-data 7u IPv4 58829786 0t0 TCP *:443 (LISTEN) из него видно, что nginx слушает 80-й и 443-й порты на всех адресах (*:80 и *:443), а apache — лишь порт 8080 и только на адресе 127.0.0.1 (127.0.0.1:8080). откуда вытекает вполне логичный вывод: nginx слушает внешние обращения и (возможно) передаёт (некоторые из них) apache-у. «расшифровка» использованных опций программы lsof: -P — отображать номера портов, а не имена, взятые из файла /etc/services -n — отображать ip-адреса, не пытаясь преобразовать их в доменные имена -iTCP -sTCP:LISTEN — отобразить процессы, слушающие tcp-порты -c nginx -c apache -c httpd — отобразить процессы, начинающиеся с этих строк -a — логическое and для параметров (правда, не для всех: в данном случае применяется для «связывания» -iTCP и -c имя). если его опустить, то будут выведены ещё и открытые указанными (с помощью опций -c) процессами файлы (вообще программа lsof в первую очередь для отображения открытых файлов и писалась).Ответ 2
Можно посмотреть, кто какие порты слушает: sudo lsof -i | grep LISTEN Напр. у меня выводит что-то вроде: nginx 22633 root 27u IPv4 82311419 0t0 TCP *:http (LISTEN) nginx 22633 root 28u IPv4 82311420 0t0 TCP *:https (LISTEN) nginx 22635 nobody 27u IPv4 82311419 0t0 TCP *:http (LISTEN) nginx 22635 nobody 28u IPv4 82311420 0t0 TCP *:https (LISTEN) Тут видно, что по портам 80 (http) и 443 (https) слушает nginx. Т.е. обращения к вашему серверу по этим портам принимает он. А Apache, в случае если nginx проксирует соединения к Apache, слушает на порту 8080, или другом «нестандартном». Посмотрите всю подряд инфу о портах: sudo lsof -i или grep'ом выделите оттуда только "apache2" или 'httpd" или как там ещё могут называться процессы Apache. А потом можно отправиться смотреть конфиги nignx и Apache подробнее.
Комментариев нет:
Отправить комментарий