Nginx или apache как проверить
Перейти к содержимому

Nginx или apache как проверить

  • автор:

Как узнать на каком веб сервере работает сайт

Как узнать на каком веб сервере работает сайт

Настройка серверов windows и linux

Добрый день, уважаемые читатели, иногда бывают такие ситуации, что вам понравился сайт, он очень быстро открывается и вы хотели бы понять на каком веб сервере он организован. Для реализации данной задачи, вам не потребуется ничего кроме браузера, я использую для этих целей Google Crome, но вы можете использовать любой, удобный для вас. Особенно данная информация подойдет для начинающих веб мастеров.

Режим разработчика

Для выполнения нашей задачи мы будем пользоваться режимом разработки, который присутствует в каждом браузере. Например, в Google Chrome он вызывается нажатием на клавишу F12. Я его недавно использовал, когда делал переход с php 5 на php 7. Выбираете любой сайт и нажимаете F12. Выбираем пункт Network > Headers. Затем находим нужную страницу. Щелкнув по ней у вас откроется дополнительное окно в котором есть поле X-Powered By. В данном случае сайт работает на PHP 5.2.17.

Как узнать на каком веб сервере работает сайт-2

Как узнать на каком веб сервере работает сайт-3

Еще мне нравится использовать сервис http://checkmy.ru/ он так же позволяет вбив в адресную строку, получить информацию о веб сервисе. Как видите, тут да же показывается версия IIS.

Как узнать на каком веб сервере работает сайт-4

Как определить CMS сайта

Как определить CMS сайта

Если он не показывает движок, то сайт разработан на самописной CMS. Вот вам пример Joomla.

Как определить CMS сайта-2

Так же можно определить движок и через код, для этого откройте любой сайт и нажмите сочетание клавиш CTRL+U, у вас откроется текстовая страница, с кодом данного сайта. Элементарным поиском можно проверить наличие слов, например Joomla.

Как определить CMS сайта-3

Если говорить про WordPress, то там вы сможете так же найти его упоминание, хотя большинство вебмастеров убирают упоминания о версии и движке, но если вы хоть немного знакомы со структурой WordPress, то с легкостью сможете его определить. Поищите такую конструкцию в ссылках wp-content/ это сто процентов каталог WordPress.

Как определить CMS сайта-4

Если вы знаете еще какие-либо способы пишите в комментариях.

Популярные Похожие записи:
  • Горячие клавиши для расширений Chrome, Edge, Яндекс браузерГорячие клавиши для расширений Chrome, Edge, Яндекс браузер
  • Как узнать версию php онлайн
  • Поиск по вкладкам Chrome, полезные настройкиПоиск по вкладкам Chrome, полезные настройки
  • Как обновить сайт до WordPress 6.3 и вышеКак обновить сайт до WordPress 6.3 и выше
  • Как отключить X-Powered-By, за минутуКак отключить X-Powered-By, за минуту
  • Как в Chrome отключить CAPTCHAКак в Chrome отключить CAPTCHA

Apache и nginx

Nginx – это дополнительный высокопроизводительный веб-сервер, который обычно используется как обратный прокси и позволяет улучшить работу основного веб-сервера (Apache), отвечающего за хостинг клиентских сайтов. Этот веб-сервер был разработан специально для передачи больших объемов статического контента (изображений, видео, css, xml и так далее). Nginx намного эффективнее справляется с большим количеством одновременных подключений, чем Apache. А также потребляет гораздо меньше памяти в расчете на одно подключение.

Для наиболее оптимального использования nginx Plesk настраивает его как обратный прокси-сервер между Интернетом и Apache (см. схему ниже). Это означает, что nginx работает как внешний веб-сервер, который принимает все входящие запросы от посетителей сайтов. Эти запросы отправляются Apache, который в свою очередь разделяет их в зависимости от того, какой тип контента запрашивается – статический или динамический. Если запрашивается статический файл (jpg, css, html и т.д.), Apache пропускает запрос через все имеющиеся обработчики (применяет конфигурацию .htaccess , перезаписывает URL и т.д.) и возвращает nginx ответ, содержащий только расположение запрошенного файла в файловой системе. Nginx находит этот файл и отправляет его клиенту. Если запрашивается динамический файл (например, скрипт PHP), Apache исполняет этот файл и отправляет ответ nginx, который доставляет его клиенту.

image apache nginx combination

Такая комбинация из nginx и Apache обеспечивает следующие преимущества:

  • Увеличивается максимальное количество одновременных подключений к одному сайту.
  • Сокращается потребление процессорного времени и памяти на сервере. Этот эффект будет наиболее ощутим для сайтов с большим объемом статического контента (фотогалереи, видеохостинги и так далее).
  • Оптимизируется обслуживание посетителей с низкой скоростью соединения (GPRS, EDGE, 3G и т.д.). Например, допустим, что клиент со скоростью подключения 10 KБ/с запрашивает некий сценарий PHP, который генерирует ответ размером 100 KБ. Если на сервере не установлен nginx, то этот ответ доставляется веб-сервером Apache. В течение всех 10 секунд, необходимых для доставки ответа, Apache и PHP продолжают потреблять полный объем системных ресурсов для поддержания этого открытого подключения. Если же nginx установлен, Apache перенаправляет этот ответ ему (соединение между nginx и Apache очень быстрое, так как оба находятся на одном сервере) и высвобождает системные ресурсы. Благодаря тому, что nginx потребляет меньше памяти, общая нагрузка на систему сокращается. Если у вас много таких медленных подключений, использование nginx позволит вам значительно повысить производительность сайтов.

The technical details on how Plesk processes HTTP requests with the help of nginx are provided next in this section. For information on how to turn on the support for nginx in Plesk, refer to the section Installing nginx . If you do not want to use nginx, make Apache your frontend web server following the instructions in the section Turning off nginx . If you want nginx to process all HTTP requests for web content, see Adjusting Apache Web Server Settings .

Как обрабатываются HTTP-запросы в Plesk с nginx

Чтобы обеспечить интеграцию между nginx и Apache, Plesk использует два дополнительных модуля Apache:

  • mod_aclr2. Этот модуль устанавливает обработчик, который запускается после обработчиков всех остальных модулей Apache (mod_rewrite; модулей, связанных с .htaccess ; mod_php и т.д.). Таким образом, в случае запроса динамического контента модуль mod_aclr2 никогда его не получит, так как этот запрос будет выполнен вышестоящими обработчиками соответствующих модулей Apache (mod_php, mod_perl, mod_cgi и т.д.). Единственным исключением являются запросы SSI: как только они доходят до модуля mod_aclr2, он перенаправляет их соответствующим обработчикам. Если запрашивается статический файл, mod_aclr2 находит точное расположение файла в файловой системе и сообщает его nginx.
  • mod_rpaf или mod_remoteip С точки зрения Apache все клиенты имеют один и тот же IP-адрес – адрес сервера nginx (см. схему выше). Это создает проблемы для сайтов и веб-приложений, использующих IP-адреса клиентов для идентификации, сбора статистики и так далее. Модуль mod_rpaf (в Apache 2.2) или mod_remoteip (в Apache 2.4) решает эту проблему, заменяя IP-адрес сервера nginx на IP-адреса клиентов во всех запросах. Если подробнее, то этот модуль использует специальный заголовок X-Forwarded-For, в который nginx помещает IP-адрес клиента.

Давайте более подробно рассмотрим, как Plesk обрабатывает запросы статического и динамического контента с помощью этих модулей.

Обработка HTTP-запроса статического файла происходит следующим образом (см. схему):

  1. Клиент отправляет запрос веб-серверу.
  2. Nginx добавляет в этот запрос заголовки X-Accel-Internal (используется модулем mod_aclr2) и X-Forwarded-For (содержит IP-адрес клиента) и отправляет его Apache.
  3. Apache получает запрос и пропускает его через зарегистрированные обработчики (применяет конфигурацию .htaccess , перезаписывает URL и т.д.). На этом этапе модуль mod_rpaf заменяет IP-адрес сервера nginx в переменной Apache REMOTE_ADDR на адрес клиента из заголовка X-Forwarded-For.
  4. После прохождения через все зарегистрированные обработчики запрос попадает в модуль mod_aclr2. Обработчик проверяет наличие заголовка X-Accel-Internal. Если он есть, модуль отправляет серверу nginx ответ с заголовком X-Accel-Redirect и пустым содержимым. Этот заголовок содержит точное расположение файла, определенное модулем mod_aclr2.
  5. Получив ответ, сервер nginx находит соответствующий файл и передает его клиенту.

На расположенной ниже схеме приведен пример обработки запроса файла GIF размером 2 КБ.

image request for static content

В случае с динамическим контентом шаги с первого по третий будут такими же. Затем запрос передается обработчику соответствующего модуля Apache (mod_php, mod_perl, mod_cgi и т.д.). Запрос никогда не доходит до модуля mod_aclr2 (за исключением запросов SSI). Обработчик формирует ответ и отправляет его nginx, который в свою очередь доставляет его клиенту. На следующей схеме приведен пример обработки запроса файла PHP.

image request for dynamic content

Установка nginx

If you perform a clean installation of Plesk, nginx will be turned on by default. If you upgrade from earlier versions, you can install the «Nginx web server» component at any time after the upgrade in Tools & Settings > Updates (under «Plesk») > Add/Remove Components. Once the component is added, start the Reverse Proxy Server (nginx) service in Tools & Settings > Services Management (under «Server Management»).

You can view the version of the installed nginx server in Tools & Settings > Server Components (under «Server Management»).

image nginx version

Выключение nginx

To return to the configuration with a single Apache web server, stop the Reverse Proxy Server (nginx) service in Tools & Settings > Services Management (under «Server Management»).

image stop nginx

Чтобы снова включить nginx, запустите службу Обратный прокси-сервер (nginx).

Примечание: Запуская и останавливая службу Обратный прокси-сервер (nginx), вы не только включаете и отключаете nginx, но и меняете конфигурацию веб-сервера (при одной внешним веб-сервером является комбинация из nginx и Apache, при другой ― только Apache). Перезапуск работает так же, как со всеми остальными службами: служба nginx просто перезапускается.

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

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

Отслеживать
68k 221 221 золотой знак 79 79 серебряных знаков 221 221 бронзовый знак
задан 6 окт 2015 в 15:42
151 2 2 серебряных знака 12 12 бронзовых знаков
А вы уверены, что именно apache бэкенд для nginx, а не наоборот?
6 окт 2015 в 16:32
@Foxtrot, посмотри глазами в конфигах nginx (/etc/nginx/nginx.conf и дальше в инклюды)
6 окт 2015 в 16:43

@norbornen, я слишком долго смотрел в вопрос и не так его понял. Естественно, nginx не может быть бэкендом. По крайней мере мне об этом ничего не известно.

6 окт 2015 в 16:52
@norbornen, бэкендом для nginx много что может быть.
6 окт 2015 в 17:03

@ВикторРэд, Естественно, nginx не может быть бэкендом — запросто, ведь nginx — полноценный http-сервер. при желании можно использовать даже связку apache+nginx «наоборот» — чтобы apache проксировал запросы к nginx-у. только так вряд ли кто-то делает.

6 окт 2015 в 18:38

2 ответа 2

Сортировка: Сброс на вариант по умолчанию

можно воспользоваться такой командой:

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

Как узнать версию Nginx

Если вы администрируете Linux сервер, вам может понадобиться узнать версию Nginx. Это очень популярный и высокопроизводительный веб-сервер, который используется даже чаще чем Apache. От версии зависит поддерживает веб-сервер те или иные возможности, а также есть ли в нём все необходимые патчи исправляющие уязвимости.

Дальше в этой статье мы рассмотрим как посмотреть версию различными способами на самом сервере или без доступа к серверу.

Как посмотреть версию Nginx

Самый простой способ посмотреть версию Nginx если у вас есть доступ к серверу — воспользоваться командой nginx с опцией -v:

Если вы запускаете команду от имени обычного пользователя и получаете ошибку, это значит что она находится в каталоге /sbin/ или /usr/sbin, доступному только для суперпользователя. Попробуйте выполнить команду с sudo:

Более подробную информацию можно получить используя опцию -V. Она выводит информацию о версии компилятора и модулях, с которыми была скомпилирована программа:

Если вы хотите проверить скомпилирована ли программа с определённым модулем, например, модулем http_flv, используйте такую команду:

nginx -V 2>&1 | grep http_flv_module

Если имя модуля есть в списке, то оно будет подсвечено красным цветом.

Это всё что касается просмотра версии на сервере. Кроме того, Nginx отображает версию сервера при возникновении ошибки в браузере, а также передает её в заголовке Server. Посмотреть передаваемые заголовки можно с помощью curl. Например:

curl -I test.losst.pro

Как скрыть версию Nginx

Если вы не хотите чтобы ваш Nginx показывал свою версию всем в заголовках или во время ошибки, надо отредактировать файл /etc/nginx/nginx.conf. Измените значение директивы server_tokens с on на off в секции http:

sudo vi /etc/nginx/nginx.conf

Затем перезапустите сервер:

sudo systemctl restart nginx

Теперь вы знаете как скрыть версию, в заголовке Nginx будет передавать только своё название.

Как видите, всё очень просто. Теперь вы знаете как посмотреть версию Nginx. Если вы знаете другие способы, пишите в комментариях!

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *