Страницы

Поиск по вопросам

воскресенье, 12 мая 2019 г.

Как проверить, является ли apache бэкэндом для nginx?

Есть сервер на Ubuntu 14.04.3, и к нему есть доступ по SSH. На сервере установлен nginx/1.4.6 и Apache/2.4.7
Но вот в чем вопрос. Работают ли в паре Nginx+Apache? То есть, является ли nginx «фронтэндом», а apache «бэкэндом»?
Есть ли какая нибудь ssh-команда, которая бы показала это?


Ответ

можно воспользоваться такой командой:
$ 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 в первую очередь для отображения открытых файлов и писалась).

Комментариев нет:

Отправить комментарий