NginxПеревод

задняя часть сервер Операционная система Nginx
NginxПеревод

Сегодня я изучаю большие данные, я слышал, что Nginx лучше, чем Apahce в некоторых аспектах, но я не знаю, где лучше, так что зайдите на официальный сайт, чтобы посмотреть. Автор русский, естественно у него русский язык.При таких хороших отношениях между Китаем и Россией у него должен быть еще и китайский язык! Ах, китайца нет, что делать?
Перевести его! Русского я, конечно, тоже не знаю. К счастью, у них есть английская версия. Ладно, попробуем перевести на английский. Попробуем, посмотрим, как получится, ладно?
Исходный текст:
http://nginx.org/en/docs/beginners_guide.html

####Руководство для начинающих
Когда nginx запускается, есть главный процесс и несколько рабочих процессов. Основной процесс обычно используется для чтения и обнаружения информации о конфигурации обслуживания и управления рабочими процессами. Рабочий процесс — это человек, который фактически выполняет работу и обрабатывает запрос клиента.
nginx использует модель, основанную на событиях, и механизмы, основанные на платформе операционной системы, для эффективного распределения клиентских запросов по рабочим процессам.
Количество рабочих процессов можно задать в конфигурационном файле, его также можно изменить в соответствии с установленными элементами конфигурации, или его можно адаптивно настроить в соответствии с фактическим количеством ядер ЦП.
То, как работает nginx и его модули, зависит от его конфигурационного файла nginx.conf, который обычно находится в каталоге /usr/local/nginx/conf, /etc/nginx или /usr/local/etc/nginx.

####Запустить, остановить, перечитать информацию о конфигурации
Чтобы запустить nginx, просто запустите исполняемый файл, поставляемый с установкой.

/usr/sbin/nginx

Как только nginx запущен, им можно управлять, вызвав исполняемый файл с параметрами

/usr/sbin/nginx -s signal

Параметры сигнала:

stop 快速停止
quit 优雅(从容)地停止
reload 重读配置信息(平滑重启)
reopen 重开日志文件

Например, если вы хотите завершить работу nginx после того, как текущий рабочий процесс завершил обработку текущего запроса, вы можете использовать следующую команду

/usr/sbin/nginx -s quit

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

/usr/sbin/nginx -s reload

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

Также доступно на Unix-подобных платформахkillКоманда отправляет аналогичный сигнал в nginx.В это время сигнал обычно отправляется непосредственно процессу nginx, который представлен идентификатором процесса. Идентификатор основного процесса nginx обычно записывается вnginx.pidфайл, каталог может быть /var/run/ (настраивается). Например, ID текущего основного процесса nginx 1628, тогда если я хочу спокойно остановить nginx, то мне следует сделать так:

kill -s QUIT 1628

Быстро остановить nginx:

kill -s TERM 1628

Аккуратно перезапустите nginx:

kill - HUP 1628

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

ps -ax | grep nginx

Для получения дополнительной информации см.Управление процессами NginxБар

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

Простая команда - это имя команды и значение команды, а середина используется空格отдельно, использовать分号(;)Заканчивать.

Директивы блочного уровня имеют ту же структуру, что и простые директивы, за исключением того, что вместо точки с запятой (;) в конце используется大括号({})Заканчивать. Если инструкции блочного уровня также могут содержать простые инструкции в фигурных скобках, то инструкции блочного уровня в настоящее время также имеют другое название:上下文(например, события, http, сервер и местоположение).

В конфигурационном файле среда вне директивы блочного уровня называется主上下文(main context)или позвоните по телефону根上下文. Например, события и директивы http находятся в основном контексте, директивы сервера — в контексте http, а директивы местоположения — в контексте сервера.

主(根)上下文
http{
    server{
       location {
       }
    }
}

# (я не знаю, как это называется по-китайски) все символы являются комментариями.

Обработка статического контента

Важная функция веб-сервера — обработка статических ресурсов (изображений и статического HTML-текста), что тоже очень просто: по HTTP-запросу nginx будет указывать такие ресурсы, как изображения, в каталоге /data/images и /data/ www/ Файлы html в каталоге вынимаются и передаются клиенту. Конфигурация nginx тоже очень проста, достаточно написать два блока location под блоком server блока конфигурации http.
Сначала создадим каталог /data/www, а затем создадим в этом каталоге файл index.html и напишем в нем что-нибудь, например Hello LiuShiFu.
Создайте каталог /data/images и поместите в него несколько изображений.
Затем давайте откроем файл конфигурации. По умолчанию в файле есть несколько конфигураций блоков сервера, и большинство из них закомментированы. Теперь давайте закомментируем эти серверы и перенастроим блок server под блоком http.

http{
    server{
    }
}

Вообще говоря, файл конфигурации разделен на несколько серверных блоков в соответствии с номером порта прослушивания или именем хоста, а сервер, на который nginx отправляет HTTP-запрос, обрабатывается в соответствии с соответствием запрошенного URI и значение директивы местоположения в сервер. Далее мы добавляем местоположение

http{
    server{
        location / {
            root /data/www;
            }
    }
}

Префикс «/» указанного выше местоположения используется для соответствия URI http-запроса. И он будет добавлен к указанному root пути, то есть /data/www, для формирования соответствия между запрашиваемым ресурсом (файлом) и локальной файловой системой. Если есть несколько местоположений, соответствующих URI, предпочтение отдается самому длинному совпадающему местоположению. Место, которое мы написали, предоставляет только самый короткий префикс, длина 1. Поэтому это местоположение можно использовать только в том случае, если другие местоположения не совпадают. Теперь добавим еще одно место

http{
    server{
        location /images/ {
            root /data;
            }
    }
}

Указанное выше местоположение будет соответствовать http-запросу, начинающемуся с /images (местоположение / также будет соответствовать, но оно самое короткое, игнорируйте его). После настройки это похоже на следующее

http{
    server{
        location / {
            root /data/www;
            }
        location /images/ {
            root /data;
            }
    }
}

Теперь мы успешно настроили серверный блок, прослушивающий порт 80, доступ к которому можно получить черезhttp://localhostпытаться. такие как доступhttp://localhost/images/a.png, веб-сервер ответит клиенту /data/images/a.png. Если файл не существует, он вернет ошибку 404. Если URI не является /images/, он будет сопоставлен с /data /www каталог, например доступhttp://localhost/some/example.html, веб-сервер ответит клиенту /data/www/some/example.html.
После изменения файла конфигурации nginx не забудьте позволить основному процессу перечитать файл конфигурации, чтобы он вступил в силу.

nginx -s reload

Если что-то пойдет не так, не забудьте проверить логи access.log и error.log. Каталог журнала обычно находится в /usr/local/nginx/log/ или /var/log/nginx/.

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