Администрирование FreeBSD, Linux, ... Установка Nginx + Apache на Debian Sat, November 09 2024  

Поделиться

Нашли опечатку?

Пожалуйста, сообщите об этом - просто выделите ошибочное слово или фразу и нажмите Shift Enter.


Установка Nginx + Apache на Debian Печать
Добавил(а) microsin   

В этом руководстве (перевод статьи [1]) мы рассмотрим установку Nginx в качестве промежуточного прокси (reverse proxy) для веб-сервера Apache на операционной системе Debian 11. И Nginx, и Apache это бесплатные и открытые (open-source) программные пакеты, заслужившие мировую популярность. Apache известен как мощный многофункциональный сервер с поддержкой множества web-технологий (PHP, MySQL и т. д), в то время как Nginx отличается высокой скоростью работы и низкими затратами используемых ресурсов сервера. Оба этих пакета могут работать как web-сервер, и у каждого свои достоинства и недостатки. По этой причине их часто используют вместе, соединенными в цепочку. Сервер Nginx работает как внешний web-сервер (frontend), который принимает запросы клиентов, передает их web-серверу Apache (backend), и получает от Apache запрошенный ответ и возвращает этот ответ клиенту. Такая несколько усложненная процедура обработки запроса позволяет строить дополнительные уровни защиты без значительной потери производительности.

Чтобы выполнить команды установки из этой статьи, требуются базовые знания Linux (для запуска команд в шелл) и доступ к системе сервера с правами root. Подразумевается, что ваш сайт размещен на выделенном хосте VPS (или VDS). Если у вас нет учетной записи root, то ваша учетная запись должна обладать привилегиями sudo для выполнения команд от имени root.

Предварительные требования:

• Сервер, работающий на Debian 11 (Bullseye).
• Рекомендуется чистая установка OS, это предотвратит появление потенциальных проблем при установке.
• Обычный пользователь с привилегиями sudo, или пароль пользователя root. Рекомендуется выполнять команды от имени обычного пользователя (не root), при необходимости повышая права с помощью команды sudo.

[Шаг 1: обновление apt]

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

$ sudo apt update
$ sudo apt upgrade

[Шаг 2: установка Apache]

Для установки веб-сервера Apache выполните команду:

$ sudo apt install apache2 apache2-utils

Проверьте сборку и версию Apache следующей командой:

$ apache2 -v

Перед началом конфигурирования необходимо убедиться, что службы Apache запущены. Проверка статуса служб Apache:

$ sudo systemctl status apache2

Запуск служб Apache:

$ sudo systemctl start apache2
$ sudo systemctl enable apache2

[Шаг 3: конфигурирование Apache]

Для конфигурирования Apache откройте в текстовом редакторе файл /etc/apache2/ports.conf (файл настройки рабочих портов):

$ nano /etc/apache2/ports.conf

Найдите строки NameVirtualHost и Listen, и поменяйте их значение, чтобы сервер прослушивал порт 8080 на внутреннем локальном адресе localhost:

NameVirtualHost 127.0.0.1:8080
Listen 127.0.0.1:8080

Сохраните и закройте файл /etc/apache2/ports.conf, и затем откройте и отредактируйте файл /etc/apache2/sites-enabled/000-default.conf (файл конфигурации по умолчанию Apache):

$ nano /etc/apache2/sites-enabled/000-default.conf

Поменяйте порт по умолчанию 80 на 8000, как показано ниже:

< VirtualHost *:8000>

Сохраните и закройте файл. Затем перезапустите службу Apache, чтобы изменения конфигурации вступили в силу:

$ sudo systemctl restart apache2

После успешной установки в браузере по ссылке по IP-адресу вашего сервера можно будет открыть тестовую веб-страничку Apache:

http://your-server-ip-address:8000

apache web server test page

[Шаг 4: установка Nginx]

Для установки Nginx на Debian выполните команду:

$ sudo apt install nginx

После завершения установки запустите Nginx и разрешите его автоматический запуск при загрузке системы:

$ sudo systemctl start nginx
$ sudo systemctl enable nginx

Проверьте установку:

$ nginx -v

[Шаг 5: конфигурирование Nginx]

В этом примере Nginx мы сконфигурируем как reverse proxy для передачи через него запросов и ответов сервера Apache. Для этого отредактируйте файл /etc/nginx/sites-enabled/default:

$ nano /etc/nginx/sites-enabled/default

Вставьте в файл следующий текст:

server {

listen 80;
index index.php index.html index.htm;

server_name your-server-ip;                

location / {
proxy_pass http://localhost:8000;
proxy_set_header Host $http_host;

proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}

Здесь директива listen задает стандартный порт для web-сервера, список index указывает файлы веб-страничек по умолчанию, находящихся в корневом каталоге вашего сервера. Строка server_name задает имя вашего сервера, а your-server-ip это внешний IP-адрес вашего сервера (или зарегистрированное доменное имя). См. также описание настройки сервера Nginx в статье [2].

Сохраните и закройте файл /etc/nginx/sites-enabled/default, и проверьте синтаксис этого файла на наличие ошибок командой:

$ nginx -t

Если все в порядке и ошибок нет, то перезапустите Nginx:

$ sudo systemctl restart nginx

Проверить совместную работу Nginx + Apache теперь можно внешним подключением браузера по IP-адресу или доменному имени вашего сервера. Откройте браузер, и введите его строке http://your-server-ip-address (здесь вместо your-server-ip-address укажите IP-адрес или доменное имя сервера). Должна отобразиться тестовая страница веб-сервера Apache.

apache web server test page

[Ссылки]

1. How To Set Up Nginx as a Reverse Proxy for Apache on Debian 11 site:idroot.us.
2. Установка веб-сервера Nginx на Debian 11.

 

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


Защитный код
Обновить

Top of Page