Nginx является свободный высоко-производительный HTTP-сервер с открытым исходным кодом. Он широко используется для балансировки нагрузки, почтовый прокси-сервер, общий TCP/UDP прокси-сервер, он предоставляет конфигурацию обратного прокси-сервера, потокового мультимедиа и многого другого. Он предназначен для эффективного обслуживания от низкого до высокого трафика веб-сайтов, и он является очень популярной альтернативой веб-сервера Apache. Nginx приводит в движение много нагруженных сайтов, таких как Яндекс, DropBox, Netflix, WordPress.
В этой статье мы покажем вам, как установить и настроить Nginx на Debian. Установка Nginx на сервере Debian является очень простой задачей, и если вы внимательно следовали всем инструкциям, приведенным ниже, вы должны иметь работоспособный сервер Nginx в течении менее чем 10 минут. Это руководство было написано и протестировано на Debian 9 VPS.
Прежде чем мы начнем, вам необходимо войти на сервер через SSH с правами суперпользователя:
ssh root@IP_ADDRESS -p PORT_NUMBER
и заменить «IP_ADDRESS» и «PORT_NUMBER» на фактический IP-адрес сервера и номером порта SSH.
Давайте также убедимся, что ваш сервер Debian является обновленный, выполнив следующую команду:
apt-get update && sudo apt-get upgrade
Вот пример вывода, который вы должны получить:
Reading package lists... Done Building dependency tree Reading state information... Done Calculating upgrade... Done The following packages will be upgraded: libperl5.24 perl perl-base perl-modules-5.24 4 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. Need to get 7813 kB of archives. After this operation, 9216 B of additional disk space will be used. Do you want to continue? [Y/n] Y Get:1 http://security.debian.org stretch/updates/main amd64 libperl5.24 amd64 5.24.1-3+deb9u3 [3527 kB] Get:2 http://security.debian.org stretch/updates/main amd64 perl amd64 5.24.1-3+deb9u3 [219 kB] Get:3 http://security.debian.org stretch/updates/main amd64 perl-base amd64 5.24.1-3+deb9u3 [1344 kB] Get:4 http://security.debian.org stretch/updates/main amd64 perl-modules-5.24 all 5.24.1-3+deb9u3 [2723 kB] Fetched 7813 kB in 0s (12.0 MB/s) (Reading database ... 36668 files and directories currently installed.) Preparing to unpack .../libperl5.24_5.24.1-3+deb9u3_amd64.deb ... Unpacking libperl5.24:amd64 (5.24.1-3+deb9u3) over (5.24.1-3+deb9u2) ... Preparing to unpack .../perl_5.24.1-3+deb9u3_amd64.deb ... Unpacking perl (5.24.1-3+deb9u3) over (5.24.1-3+deb9u2) ... Preparing to unpack .../perl-base_5.24.1-3+deb9u3_amd64.deb ... Unpacking perl-base (5.24.1-3+deb9u3) over (5.24.1-3+deb9u2) ... Setting up perl-base (5.24.1-3+deb9u3) ... (Reading database ... 36668 files and directories currently installed.) Preparing to unpack .../perl-modules-5.24_5.24.1-3+deb9u3_all.deb ... Unpacking perl-modules-5.24 (5.24.1-3+deb9u3) over (5.24.1-3+deb9u2) ... Setting up perl-modules-5.24 (5.24.1-3+deb9u3) ... Setting up libperl5.24:amd64 (5.24.1-3+deb9u3) ... Setting up perl (5.24.1-3+deb9u3) ... Processing triggers for libc-bin (2.24-11+deb9u3) ... Processing triggers for man-db (2.7.6.1-2) ...
Вы можете установить Nginx из репозитория Debian. Просто запустите следующую команду, чтобы установить Nginx на сервере:
apt-get install nginx
Вы получите следующий результат:
Reading package lists... Done Building dependency tree Reading state information... Done The following additional packages will be installed: libnginx-mod-http-auth-pam libnginx-mod-http-dav-ext libnginx-mod-http-echo libnginx-mod-http-geoip libnginx-mod-http-image-filter libnginx-mod-http-subs-filter libnginx-mod-http-upstream-fair libnginx-mod-http-xslt-filter libnginx-mod-mail libnginx-mod-stream nginx-common nginx-full Suggested packages: fcgiwrap nginx-doc The following NEW packages will be installed: libnginx-mod-http-auth-pam libnginx-mod-http-dav-ext libnginx-mod-http-echo libnginx-mod-http-geoip libnginx-mod-http-image-filter libnginx-mod-http-subs-filter libnginx-mod-http-upstream-fair libnginx-mod-http-xslt-filter libnginx-mod-mail libnginx-mod-stream nginx nginx-common nginx-full 0 upgraded, 13 newly installed, 0 to remove and 0 not upgraded. Need to get 0 B/1585 kB of archives. After this operation, 2865 kB of additional disk space will be used. Do you want to continue? [Y/n] y
После завершения установки Nginx запускаться автоматически.
Для того, чтобы убедиться , что Nginx действительно работает на вашем сервере, вы можете использовать следующую команду:
systemctl status nginx
● nginx.service - A high performance web server and a reverse proxy server Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled) Active: active (running) since Sat 2018-04-14 11:44:12 CDT; 4min 10s ago Docs: man:nginx(8) Process: 6412 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS) Process: 6409 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS) Main PID: 6413 (nginx) CGroup: /system.slice/nginx.service ├─6413 nginx: master process /usr/sbin/nginx -g daemon on; master_process on; ├─6414 nginx: worker process └─6415 nginx: worker process
Есть несколько полезных команд, которые вы можете использовать для управления службой Nginx.
Во-первых, давайте удостоверимся, что ваш сервер Nginx запускается автоматически после перезагрузки сервера:
systemctl enable nginx
Synchronizing state of nginx.service with SysV service script with /lib/systemd/systemd-sysv-install. Executing: /lib/systemd/systemd-sysv-install enable nginx
В случае, если вы хотите отключить автоматический запуск после перезагрузки сервера, вы можете использовать следующую команду:
systemctl disable nginx
Для того, чтобы проверить состояние службы Nginx, выполните следующую команду:
systemctl status nginx
Чтобы запустить службу Nginx, вы можете использовать:
systemctl start nginx
Чтобы остановить службу Nginx, вы можете использовать:
systemctl stop nginx
Вы можете перезапустить службу Nginx с командой:
systemctl restart nginx
По умолчанию, установка Nginx создает корневой каталог веб — сервера по следующему адресу /var/www/html/.
Файл конфигурации по умолчанию для этого находится в следующем месте: /etc/nginx/sites-enabled/default/.
Основной файл конфигурации Nginx расположен в /etc/nginx/nginx.conf
В этой статье мы покажем вам, как создать новый блок сервера для нового домена mydomain.ru и установить его корень документа в /var/www/mydomain.ru
Во-первых, нам нужно будет создать корневой каталог документов с помощью следующей команды:
mkdir -p /var/www/mydomain.ru
Затем создайте файл index.html внутри этого каталога и добавmnt следующее содержание:
nano /var/www/mydomain.ru/index.html
<!DOCTYPE html> <html> <head> <title>mydomain.ru</title> </head> <body> <h1>Добро пожаловать на mydomain.ru</h1> <p>Это тестовый блок сервера mydomain.ru.</p> </body> </html>
Далее, давайте создадим новый блок сервера по следующему адресу:
nano /etc/nginx/sites-available/mydomain.ru.conf
И добавьте следующее содержание:
server { listen 80; listen [::]:80; server_name mydomain.ru www.mydomain.ru; root /var/www/mydomain.ru; index index.html; location / { try_files $uri $uri/ =404; } }
Сохраните файл. Для того, чтобы активировать блок сервера необходимо создать символьную ссылку с помощью следующей команды:
ln -s /etc/nginx/sites-available/mydomain.ru.conf /etc/nginx/sites-enabled/mydomain.ru.conf
Проверка конфигурации Nginx и перезагрузка Nginx:
nginx -t systemctl restart nginx
Если все настроено правильно, как указано, то вы должны быть в состоянии открыть MYDOMAIN.RU в вашем браузере и увидеть блок сервера mydomain.ru, который вы создали ранее.
Вот и все. Был успешно установлен и настроен Nginx на сервере Debian 9.