Изменить порт nginx centos

Обновлено: 05.07.2024

Nginx — это один из самых популярных в мире веб-серверов, который обеспечивает работу целого ряда крупнейших сайтов в Интернете с огромным трафиком. Обычно он использует ресурсы эффективнее, чем Apache, и может использоваться как веб-сервер или обратный прокси-сервер.

Шаг 1 — Установка веб-сервера Nginx

Для установки Nginx мы будем использовать менеджер пакетов dnf , который представляет собой новый доступный по умолчанию менеджер пакетов в CentOS 8.

Установите пакет nginx с помощью следующей команды:

При получении запроса введите y для подтверждения того, что вы хотите установить nginx . После этого dnf выполнит установку dnf и любых требуемых зависимостей на ваш сервер.

После завершения установки воспользуйтесь следующей командой, чтобы активировать и запустить сервер:

Это позволит запускать Nginx во время загрузки системы.

Шаг 2 — Настройка правил брандмауэра

Если вы активировали брандмауэр firewalld согласно требованиям нашего руководства по первоначальной настройке для CentOS 8, вам потребуется изменить настройки брандмауэра, чтобы разрешить внешние подключения к вашему веб-серверу Nginx, который запускается на порту 80 по умолчанию.

Вывод будет выглядеть следующим образом:

Для применения изменений вам необходимо перезагрузить службу брандмауэра:

Теперь сервер Nginx полностью установлен и доступен для внешних посетителей.

Шаг 3 — Проверка веб-сервера

Теперь вы можете проверить, работает ли ваш веб-сервер, выполнив попытку перехода на публичный IP-адрес вашего сервера или его доменное имя с помощью вашего веб-браузера.

Если у вас нет доменного имени, указывающего на ваш сервер, и вы не знаете публичный IP-адрес вашего сервера, вы можете найти его, введя следующую команду:

Команда выведет несколько IP-адресов. Вы можете попробовать каждый из них в своем браузере.

Также вы можете проверить доступность IP-адреса из других мест в интернете:

Введите полученный адрес в браузере, после чего вы попадете на страницу Nginx по умолчанию:


Если вы увидите эту страницу, это значит, что ваш веб-сервер установлен корректно.

Шаг 4 — Управление процессом Nginx

Теперь, когда у вас есть работающий и запущенный веб-сервер, мы рассмотрим процесс управления службой Nginx с помощью systemctl .

Если вам потребуется остановить работу веб-сервера, вы можете использовать следующую команду:

Чтобы запустить остановленный веб-сервер, введите:

Чтобы остановить и перезапустить службу еще раз, вы можете использовать следующую команду:

Nginx также может перегрузить изменения конфигурации без отключения подключений. Для этого введите:

По умолчанию Nginx настроен на автоматический запуск при загрузке сервера. Если вам это не нужно, вы можете отключить такое поведение с помощью следующей команды:

Чтобы снова активировать эту службу и активировать запуск Nginx во время загрузки, воспользуйтесь следующей командой:

Шаг 5 — Знакомство с важными файлами и директориями Nginx

Теперь, когда вы научились управлять службой Nginx, настало время познакомиться с несколькими важными директориями и файлами.

Контент

  • /usr/share/nginx/html​​​ : реальный веб-контент, в состав которого по умолчанию входит только показанная ранее страница Nginx по умолчанию, выводится из директории /usr/share/nginx/html​​​ . Это можно изменить путем изменения файлов конфигурации Nginx.

Конфигурация сервера

  • /etc/nginx : директория конфигурации Nginx. Здесь хранятся все файлы конфигурации Nginx.
  • /etc/nginx/nginx.conf : основной файл конфигурации Nginx. Его можно изменить для внесения изменений в глобальную конфигурацию Nginx.
  • /etc/nginx/conf.d/ : эта директория содержит файлы конфигурации для блока сервера, где вы можете определить веб-сайты, которые размещены в Nginx. Типичный подход — размещение каждого сайта в отдельном файле, название которого совпадает с доменным именем сайта, например, your_domain.conf .

Журналы сервера

  • /var/log/nginx/access.log : каждый запрос к вашему веб-серверу регистрируется в этом файле журнала, если Nginx не настроен иначе.
  • /var/log/nginx/error.log : любые ошибки Nginx будут регистрироваться в этом журнале.

Шаг 6 — Настройка блоков сервера (опция)

Если вы хотите разместить несколько сайтов на одном и том же веб-сервере Nginx, вам придется создать блоки сервера. Блоки сервера Nginx работают аналогичным с виртуальными хостами Apache образом, позволяя одному серверу реагировать на запросы к нескольким доменным именам и предоставлять разное содержимое для каждого домена. В CentOS 8 серверные блоки определяются в файлах .conf , расположенных в /etc/nginx/conf.d .

По умолчанию Nginx на CentOS 8 настроен для предоставления документов из директории в /usr/share/nginx/html . Хотя это хорошо работает для отдельного сайта, при размещении нескольких сайтов это может стать очень неудобно. Вместо изменения /usr/share/nginx/html мы создадим внутри /var/www структуру директорий для нашего сайта your_domain, оставив /usr/share/nginx/html “**** в качестве директорию по умолчанию для вывода в случае, если запросу клиента не соответствуют никакие другие сайты.

Создайте директорию для your_domain следующим образом, используя флаг -p для создания необходимых родительских каталогов:

Затем необходимо назначить права владения для директории с помощью переменной среды $USER, которая будет использоваться для текущего системного пользователя:

Затем мы создадим образец страницы index.html для тестирования конфигурации блока сервера. Предоставляемый с CentOS 8 по умолчанию текстовый редактор — vi . vi очень мощный текстовый редактор, но освоить работу с ним неопытным пользователям достаточно сложно. Вы можете установить более удобный для пользователя редактор, например, nano , для облегчения редактирования файлов конфигурации на сервере CentOS 8:

Теперь вы можете использовать nano для создания файла index.html​​​:

В этом файле добавьте следующий код HTML:

Сохраните файл и закройте его после завершения. Если вы используете nano, вы можете сделать это, нажав CTRL + X, Y .

Чтобы Nginx обслуживал это содержимое, нам нужно создать серверный блок с правильными директивами, которые указывают на наш настраиваемый корневой каталог. Мы создадим новый серверный блок в /etc/nginx/conf.d/your_domain.conf :

Вставьте следующий блок конфигурации:

Сохраните и закройте файл после внесения изменений в его содержимое.

Чтобы убедиться, что в файлах Nginx нет синтаксических ошибок, запустите следующую команду:

Если проблем нет, вы увидите на экране следующие результаты:

После тестирования конфигурации перезапустите Nginx для активации изменений:

Прежде чем вы сможете проверить изменения в браузере, вам нужно будет обновить контексты безопасности SELinux вашего сервера, чтобы позволить Nginx обслуживать содержание из директории /var/www/your_domain .


Эта страница отображает код HTML, который мы задали в корневой директории документов, созданной для серверного блока. Если вы увидите эту страницу, это означает, что ваш сервер Nginx настроен корректно для обслуживания вашего домена.

Кроме функции веб-сервера, программа может работать в качестве обратного прокси, прокси для TCP/UDP или почты, а также в качестве балансировщика нагрузки. Nginx используется для обеспечения работы огромного количества сайтов в сети интернет, а также известна, как самый высокопроизводительный веб-сервер. В этой статье мы рассмотрим, как выполняется установка Nginx CentOS 7, а также как выполнить первоначальную настройку программы.

Установка Nginx в CentOS 7

Веб-сервер Nginx есть в официальных репозиториях дистрибутива, та версия уже устарела, и если вы хотите получить новую версию с современными возможностями, вам придётся использовать репозиторий EPEL. Для его добавления в систему выполните:

yum install epel-release


Затем можно установить Nginx:

yum install nginx

Чтобы запустить сервис Nginx, выполните:

systemctl start nginx

Затем необходимо добавить программу в автозагрузку:

systemctl enable nginx


Далее надо разрешить трафик для веб-сервера в брандмауэре системы:

И перезагрузить брандмауэр:

Если все было сделано правильно, то, открыв адрес сервера, на который вы устанавливали Nginx, вы увидите страницу по умолчанию:


Настройка расположения файлов сайта

Установка Nginx CentOS 7 завершена, теперь будет рассмотрена настройка Nginx. Нам нужно сообщить Nginx, где будут находится файлы нашего сайта. В конфигурационном файле /etc/nginx.conf, уже настроен один виртуальный хост. Его мы и будем использовать. Здесь указана опция default_server, поэтому он будет открываться для всех запросов к Nginx:


Сначала нужно создать само расположение файлов. Создайте папку /var/www/html/default, в которой будут храниться наши файлы сайтов, и дайте на неё права пользователю nginx:

mkdir /var/www/html/default
chown nginx:nginx /var/www/html/default

Также можно создать файл index.html в этой папке для теста веб-сервера с таким текстом:

Этот файл тоже должен принадлежать пользователю Nginx. Далее в конфигурационном файле /etc/nginx/nginx.conf найдите секцию server и замените значение параметра root на /var/www/html/default:

Теперь Nginx будет брать файлы сайта из этого каталога при всех запросах. Перезапустите Nginx:

systemctl restart nginx


Если возникает ошибка, убедитесь, что у Nginx есть права для доступа к этому файлу, а также, что SELinux отключён или правильно настроен.

Настройка PHP-FPM Nginx CentOS

Если вам нужен Nginx, то скорее всего, вам нужно также настроить его для работы с интерпретатором PHP. Дальше будет разобрана настройка php-fpm Nginx CentOS 7. Прочитать более подробно про установку PHP 7 в CentOS можно в отдельной статье, а в этой статье мы будем работать с версией, доступной в официальных репозиториях. Для Nginx нам необходимо установить пакет php-fpm:

yum install php-fpm

Затем запустите службу php-fpm командой:

systemctl start php-fpm


Далее нам осталось только связать Nginx с новой службой. Для этого в секцию server добавьте такой код:

\.php$ try_files $uri =404;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_buffer_size 128k;
fastcgi_buffers 256 16k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
include fastcgi_params;
>


Здесь очень важно значение этого параметра:

sudo systemctl reload nginx

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

Затем откройте адрес сервера на который был установлен Nginx плюс phpinfo.php в браузере:

Теперь вы увидите, что php-fpm nginx настроен полностью и корректно работает.

Обратите внимание, что секция location для php - это регулярное выражение и если у вас будут более общие регулярные выражения, то эта секция должна находиться перед ними, потому что Nginx не будет проверять все регулярные выражения и искать самое подходящее, а выберет первое, которое совпадёт.

Выводы

В этой статье мы разобрали, как установить Nginx CentOS 7, а также как настроить первый веб-сайт и подключить обработку скриптов с помощью интерпретатора php-fpm. В следующих статьях разберёмся с настройкой виртуальных хостов для Nginx и SSL-сертификатов.





Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна.

Оцените статью:

(2 оценок, среднее: 5,00 из 5)

Об авторе

5 комментариев

А зачем php в статье про nginx? мб стоит как то более подробно расписать возможности nginx, например stream проксирование, либо возможность разным сайтам работать под разными пользователями. Подобных этой статей слишком много уже.

О каких вопросах в комментариях может быть речь, если даже вызов phpinfo написан с ошибкой. Не читайте статью - пустая трата времени.

Я полчаса потратил на ковыряние конфигов, только после твоего коммента дошло! Сайт нормальный вроде, но авторы косячат иногда!

Недавно приняли решение переехать с хостинга на VPS, будем использовать: CentOS 7, Nginx, Apache, PHP, MySQL. Несмотря на большое количество статей на эту тему, многие аспекты не упоминаются, поэтому выкладываем эту статью чтобы услышать мнение знающих и опытных людей. Настраивать сервер как Вы уже поняли будем первый раз, поэтому о актуальности статьи можно будет судить из комментариев. Nginx будет отдавать статику, а динамику Apache (скрипты PHP), чтобы снизить нагрузку на сервер.

Все настройки будем применять на рабочем сервере нашего проекта с конфигурацией сервера: CPU — 2 × 2000 МГц и RAM — 2048 МБ.

Для начала работы находим подходящий VPS с предустановленной CentOS 7, к серверу будем подключаться по SSH через PuTTY.

Вводим название хоста и порт, нажимаем Open:

image

Далее вводим логин [Enter], потом пароль (обратите внимание, ввод пароля не отображается) [Enter]:


Обновить систему, при этом сохранить устаревшие версии пакетов:


Или обновить все пакеты, старые пакеты будут удалены:

Устанавливаем файловый менеджер с текстовым интерфейсом — Midnight Commander:

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

Создаём файловую структуру и пользователей под сайты.

Создаём каталог (папку) для файлов под все сайты:

Под каждый отдельный сайт выполните такие действия.

Содержимое каждого сайта будет находиться в собственном каталоге, поэтому создаём нового пользователя и отдельный каталог для разграничения прав доступа:
-b папка в которой будет создан каталог пользователя
-m создать каталог
-U создаём группу с таким же именем как у пользователя
-s /bin/false отключаем пользователю shell


Делаем каталоги для данных сайта (файлы сайта, логи и временные файлы):

Изменяем владельца и группу на каталог, включая вложенные папки:

Устанавливаем Nginx.

Инструкции по установке приведены на официальном сайте Nginx.

Для настройки репозитория yum в CentOS создаём файл /etc/yum.repos.d/nginx.repo:


Для проверки подписи загружаем ключ и импортируем его в менеджер пакетов rpm:

image

Устанавливаем Apache и PHP.

image



Временно останавливаем:

Настраиваем Nginx.

Добавляем в автозагрузку:

user nginx;
worker_processes 2;
pid /var/run/nginx.pid;

events worker_connections 1024;
multi_accept on;
>

charset utf-8;
server_tokens off;

include /etc/nginx/mime.types;
default_type application/octet-stream;

reset_timedout_connection on;
client_header_timeout 15;
client_body_timeout 30;
send_timeout 15;
keepalive_timeout 5;
keepalive_requests 30;
client_max_body_size 8m;

limit_rate_after 30M;
limit_rate 500K;

open_file_cache max=10000 inactive=3m;
open_file_cache_min_uses 2;
open_file_cache_valid 1m;

sendfile on;
tcp_nodelay on;
tcp_nopush on;


Указываем количество рабочих процессов (зависит от количества ядер процессора и количества жёстких дисков, потому что головка диска быстрее перемещаться не сможет):

Внутри блока events, максимальное количество одновременных соединении с сервером (worker_processes × worker_connections):

Внутри блока events, принимать соединения сколько будет возможно:

Записывать ошибки (уровня: warn, error, crit, alert) по указанному пути:

Отключаем запись журнала доступа (жёсткий диск скажет спасибо):

Если MIME-тип файла не удастся определить, то по умолчанию файл будет бинарным:

Читать заголовок запроса клиента не более 15 секунд:

Читать тело запроса клиента не более 30 секунд — интервал устанавливается не на всю передачу тела запроса, а только между двумя последовательными операциями чтения:

Если клиент не принимает ответ более 15 секунд, сбрасываем соединение:

Максимальное количество запросов с открытым соединением от одного клиента:

Чтобы один пользователь не занял весь свободный канал трафика, после 30 Мб наложим ограничение на скорость отдачи данных:

Максимальная скорость с клиентом в рамках одного соединения после наложенных ограничений будет не более 500 Кб/с:

Устанавливаем максимальное количество файлов, информация о которых будет содержаться в кеше и удаляться, если файл не будет запрошен повторно в течении 3 минут:

Если файл будет запрошен более 2 раз, поместить в кэш:

Для каждого сайта создаём виртуальный хост Nginx.

Чтобы Nginx получил доступ к файлам сайта, добавим пользователя nginx в группу name.site:

* \.(css|js|png|gif|jpg|jpeg|ico)$ root /website/name.site/www;
expires 1d;
>

error_page 500 502 503 504 /50x.html;
location = /50x.html root /usr/share/nginx/html;
>
>


Имя сервера, определяет в каком блоке будет выполнен запрос, указывается имя домена:

Обрывать коннект через 300 секунд, если превышен таймаут при чтении ответа с сервера Apache:

Передать список серверов по которым прошёл запрос и добавить свой:
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

* \.(css|js|png|gif|jpg|jpeg|ico)$ root /serves/name.site/www;
expires 1d;
>

Настраиваем Apache.

Посмотрите какой именно модуль Apache у вас установлен. У меня — apache2-mpm-prefork (один процесс с одним потоком будет обрабатывать одно соединение, рекомендуется как безопасный совместно с PHP):

ServerRoot "/etc/httpd"
DocumentRoot "/website"
Include conf.modules.d/*.conf

User apache
Group apache

Listen 127.0.0.1:8080
ServerName 127.0.0.1:8080
ServerAdmin root@localhost

ServerSignature Off
ServerTokens Prod

RLimitMEM 786432000
TimeOut 250

AddDefaultCharset utf-8
DefaultLanguage ru

KeepAlive Off
ContentDigest Off
EnableSendfile off

ErrorLog "logs/error_log"
LogLevel error

<IfModule mime_module>
TypesConfig /etc/mime.types
</IfModule>

<Directory />
DirectoryIndex index.php
AllowOverride none
Require all denied
</Directory>

<IfModule mpm_prefork_module>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxClients 30
MaxRequestsPerChild 2500
</IfModule>

<Files ".ht*">
Require all denied
</Files>


Указываем IP и порт с которых будем принимать запросы, снаружи этот сервер видно не будет:

Адрес электронной почты который отправляется клиенту в случае ошибок:

Отключаем отправку информации версии системы и сервера Apache:

Отключаем отправку клиенту в заголовке информацию о Apache:

Максимальное время приёма запроса, обработки, отправки контента серверу Nginx:

Отключаем обработку большого количества запросов в одном соединении:

Apache статику отдавать не будет, поэтому отключаем:
<IfModule mime_module>
TypesConfig /etc/mime.types
</IfModule>

Внутри блока Directory, в случае указания пути до каталога, по умолчанию отдавать index.php::

Внутри блока Directory, запретить переопределение информации доступа в .htaccess:

Внутри блока Directory, запретить доступ к файлам сервера:

Внутри блока mpm_prefork_module, после запуска Apache создать 5 процессов:

Внутри блока mpm_prefork_module, минимальное количество неиспользуемых процессов (если все процессы будут заняты, то запустятся новые свободные процессы):

Внутри блока mpm_prefork_module, максимальное количество неиспользуемых (запасных) процессов:

Внутри блока mpm_prefork_module, максимальное количество дочерних процессов которые можно запустить одновременно, остальные встают в очередь (с увеличением дочерних процессов, увеличивается потребление памяти):

Внутри блока mpm_prefork_module, после указанного числа обработанных запросов, процесс перезапускается (необходимо при переполнении — утечки памяти):

Для каждого сайта создаём виртуальный хост Apache.

Добавляем пользователя apache в группу каждого сайта:


Создаём каталог под конфигурационные файлы виртуальных хостов Apache:

<Directory "/website/name.site">
AllowOverride None
Require all granted
</Directory>

ErrorLog /website/name.site/logs/error.log
CustomLog /website/name.site/logs/requests.log combined
</VirtualHost>

Блок VirtualHost, указывается какой порт слушать:


Если путь указан до каталога, по умолчанию открывать:

Проверка Nginx и Apache.

Добавляем Apache в автозагрузку:

Настраиваем PHP.

engine = On
expose_php = Off
short_open_tag = Off
zlib.output_compression = Off
disable_functions = exec, passthru, shell_exec, system, proc_open, popen, curl_exec, curl_multi_exec, parse_ini_file, show_source, etc

display_startup_errors = Off
display_errors = Off
log_errors = On
error_log = "/usr/local/zend/var/log/php.log"
ignore_repeated_errors = Off
ignore_repeated_source = Off
html_errors = On

implicit_flush = Off
output_buffering = 4K
realpath_cache_size = 2M
realpath_cache_ttl = 1800
zend.enable_gc = On

max_input_time = 200
max_execution_time = 30
file_uploads = On

memory_limit = 256M
post_max_size = 8M
upload_max_filesize = 2M
max_file_uploads = 4

extension_dir = "/usr/local/zend/lib/php_extensions"
date.timezone = Europe/Moscow
default_mimetype = "text/html"
default_charset = "UTF-8"

variables_order = "CGPS"
register_argc_argv = Off
auto_globals_jit = On
enable_dl = Off

allow_url_fopen = On
allow_url_include = Off


Включаем интерпретатор PHP, по необходимости можно выключить на конкретном сайте:
disable_functions = exec, passthru, shell_exec, system, proc_open, popen, curl_exec, curl_multi_exec, parse_ini_file, show_source, etc

Не выводить на экран ошибки возникшии во время старта PHP:

Логируем ошибки, после выключения их вывода на экран:

Не записывать одинаковые ошибки, которые проиcходят в конкретном файле и строке (ignore_repeated_source — нужно выключить):

При включении не записывает одинаковые ошибки, которые могут происходить в разных файлах и строках, поэтому выключаем:

Используем кэш realpath, тем самым уменьшая количество вызовов stat():

Указываем максимальное время в течении которого будут приниматься данные на сервер (POST, GET, HEAD), время измеряется с запуска PHP до момента выполнения скрипта:

Указываем максимальное время выполнения скрипта (значение не больше чем в Apache — Timeout) — вместо set_time_limit:

Максимальный размер памяти, который можно использовать скрипту:

Максимальный размер данных, отправляемых методом POST (должно быть меньше — memory_limit):

Максимальный размер закачиваемого файла (должно быть меньше — post_max_size):

Количество файлов, которые можно передать за один запрос:

Порядок обработки переменных — $_COOKIE, $_GET, $_POST, $_SERVER:

Переменные SERVER и ENV будут создаваться в момент использования, что приводит к увеличению производительности:

Выключаем динамическую подгрузку, влияет на безопасность:

Устанавливаем и настраиваем MySQL.


Количество параллельных процессов, обрабатывающих конкурентные запросы к MySQL (количество ядер умноженных на два):

Устанавливаем кодировку по умолчанию для новых таблиц:

Устанавливаем размер буфера индексов таблиц в оперативной памяти (актуально для таблиц MyISAM):

Максимальный размер оперативной памяти, выделяемой для временных таблиц, создаваемых MySQL:

Максимальное количество открытых таблиц, которые будут находиться в кэше:

Буфер данных, который используется для записи информации на диск — InnoDB:

Размер буфера который используется для сортировки (ORDER BY) или группировки GROUP BY) данных в каждом потоке:

Выделяем для каждого потока память на каждую таблицу, при увеличении этого значения может пострадать скорость выполнения запроса:

Влияет на скорость сортировки, для запросов с — ORDER BY:

Размер буфера с использованием JOIN, если не используются индексы в этих запросах:

Размер стека, место для хранения списка задач (открыть или закрыть таблицу, выполнить запрос и т.п.):

Выделяем память для буфера соединения и его результатов, может быть увеличено до max_allowed_packet:

Максимальный размер данных, которые можно передать за один запрос:

Количество соединений, которые могут стоять в очереди:

Не использовать TCP/IP соединения, передавать данные через сокет:

Чтобы рассчитать примерное потребление оперативной памяти на сервере MySQL (насколько я понял) можно воспользоваться следующей формулой (не забывайте, что серверу Apache уже выделено 750 МБ и ещё нужно оставить серверу Nginx):
key_buffer_size + innodb_buffer_pool_size + tmp_table_size + ((sort_buffer_size + read_buffer_size + read_rnd_buffer_size + join_buffer_size + thread_stack) × max_connections) = ?

Немного про безопасность.

Под root заходить нежелательно, поэтому создаём нового пользователя:


Если вы подключаетесь к SSH через 22 порт, то нужно его изменить, открываем sshd_config:

Меняем порт на любой свободный (не забываем через установленный у вас firewall закрыть 22 порт и открыть новый, например 54139):

Разрешим логиниться в терминале только новому пользователю —
newuser:

P.S. Можно использовать Nginx с php-fpm, но есть такое мнение, что при правильно настроенном Apache особой разницы в производительности не наблюдается.

Особое внимание хотелось обратить на безопасность и производительность сервера, поэтому если вы нашли ошибки или недочёты, просим написать это в комментариях и в случае необходимости мы внесём изменения в статью.

Установка nginx, запуск, смена порта, обратный прокси и настройка gzip под windows

В последнее время требуется обратный прокси-сервер для запроса данных между доменами. Когда я впервые использовал nginx, Xiaobai, я просто записал все, что использовал с самого начала. Если что-то не так или неясно, пожалуйста, укажите это, и я своевременно внесу соответствующие поправки.

оглавление

  • установка nginx
  • запускать
  • Изменить порт
  • Обратный прокси
  • gzip

Установка nginx

На самом деле не нужно устанавливать, изОфициальный сайтПросто скачайте соответствующую версию. Я загрузил nginx/Windows-1.15.3 。
После завершения загрузки разархивируйте непосредственно без установки.
Обратите внимание, что китайского пути нет.

Два начала

Откройте ввод cmd в корневом каталоге nginx start nginx Запустить nginx (На данный момент нужно обратить внимание, не нажимайте напрямую nginx.exe для запуска), Черное окно будет мигать в случае успеха или неудачи, поэтому вы не сможете увидеть, было ли оно успешным. в состоянии пройти:

  1. начать nginx начать nginx
  2. nginx -s перезагрузить перезагрузить файл конфигурации
  3. nginx -s закрыть
  4. nginx -s остановить быстро выключить

Разница между выходом и остановкой:

  • quit завершает полученный запрос на соединение перед закрытием
  • Стоп закрывается быстро, независимо от соединения

Три смены порта nginx

Введите файл конфигурации conf-> nginx.conf
Примечание. После изменения файла конфигурации не забудьте nginx -s reload , Конфигурация вступит в силу

Четыре обратный прокси

Также в conf-> nginx.conf server

5 гзип

С помощью gzip я в основном хочу уменьшить проблему, связанную с тем, что ресурсы загрузки vue слишком велики, а время белого экрана на домашней странице немного больше. Я напишу пост позже, чтобы оптимизировать размер ресурсов vue.статья。

Читайте также: