На волне современной веб-разработки внешний вид интерфейс Инженеры должны не только владеть
HTML
、CSS
、JavaScript
и другие базовые технологии,Понимание серверных служб и сетевой архитектуры также становится все более важным.。Nginx
,Известен своей высокой производительностьюWeb
сервер иобратный прокси-сервер, то есть все внешне Интерфейс Разработчик Очко навыков, которое нельзя упустить. Эта статья предназначена для внешнего интерфейс Разработчикпредоставить подробныйNginx
учебное пособие,От теории к практике,Новое дерево навыков, которое поможет вам разблокировать возможности оптимизации. ✨
Nginx,Правильное произношение — «двигатель-х».,Родился в 2004 году,Российский программист Игорь. Автор Сысоев. Он быстро стал ключевым технологическим компонентом инфраструктуры Интернета.
📊 Обзор основных функций:
⚙️ Технологическое ядро - модель, управляемая событиями,Этот механизм позволяет Nginx реализовывать неблокирующие операции ввода-вывода при обработке запросов.,Даже в условиях внезапного сильного дорожного движения,Система также остается отзывчивой и в целом надежной. Это делает Nginx:
🔒 Безопасность и современные протоколы - Поддерживает шифрование SSL/TLS для повышения безопасности передачи данных. Совместим с HTTP/2 и WebSocket для обеспечения интерактивной производительности современных веб-приложений.
📝 Гибкость конфигурации - От базовых перенаправлений до сложного контроля доступа — профили предоставляют разработчикам детальный контроль над управлением трафиком.
Создают ли стартапы масштабируемые веб-сервисы,Или это существующая структура крупного предприятия?,
Nginx
являются незаменимыми партнерами。Благодаря высокой эффективности、стабильностьи легко настраиваемый,Nginx
Это продвижениеWebЗолотой ключ к производительности приложений и качеству обслуживания。
В контексте современных интернет-приложений архитектура веб-серверов имеет тенденцию использовать дизайн распределенной системы для повышения производительности, масштабируемости и надежности. Ниже приведена стандартная модель архитектуры веб-сервера:
Nginx Играя центральную роль в вышеупомянутой архитектуре, его гибкость и высокая производительность делают его лучшим выбором для многих архитектур веб-сайтов. Помимо функций обратного прокси-сервера и балансировщика нагрузки, Nginx также имеет следующие функции:
Подводя итог, такой архитектурный проект не только обеспечивает эффективную работу системы, но также обеспечивает мощные механизмы масштабируемости и восстановления после сбоев, что делает его идеальным выбором для создания высокопроизводительных веб-сервисов. Интеграция Nginx повысила стабильность и эффективность реагирования всей архитектуры.
На этой диаграмме подробно описаны основные концепции прямых и обратных прокси-серверов и их практическое применение в сетевых коммуникациях.
В левой части рисунка механизм работы прямого прокси показан следующим образом: пользователь обращается к целевому серверу в Интернете через промежуточный прокси-сервер. Запрос пользователя сначала достигает прокси-сервера, а затем пересылается прокси-сервером по назначению. Этот процесс помогает замаскировать фактический IP-адрес пользователя, обеспечивая конфиденциальность и безопасность, а также потенциально улучшая скорость доступа и стабильность соединения.
В правой части изображен сценарий обратного прокси-сервера: пользователь обращается к обратному прокси-серверу напрямую через Интернет, а затем прокси-сервер распределяет запрос на ряд веб-серверов на внутренней стороне. Использование обратного прокси-сервера позволяет добиться балансировки нагрузки запросов, повысить доступность системы и устойчивость к ошибкам, а также облегчить реализацию расширенных функций, таких как политики кэширования и проверки безопасности.
Nginx Сносно stream
Модуль настроен для реализации функции перенаправления прокси на уровне TCP/IP. Примеры следующие:
stream {
server {
listen 8080;
proxy_pass <target_server_ip>:<target_port>;
proxy_protocol on;
}
}
Эта конфигурация заставляет Nginx прослушивать порт 8080 и пересылать полученные запросы на указанный целевой сервер.
В качестве обратного прокси-сервера HTTP Nginx часто используется для получения клиентских запросов и пересылки их на внутренний сервер в соответствии с конфигурацией. Базовая конфигурация следующая:
http {
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://backend_servers;
proxy_set_header Host $host;
}
}
}
существоватьэтот Конфигурациясередина,Nginxсуществовать80Порт принимает все прямыеexample.com
запрос,и переслать его в каталог с именемbackend_servers
иззадняя часть Служитьустройствогруппа。
Стоит отметить, что приведенная выше конфигурация является лишь базовым примером использования Nginx в качестве прокси-сервера. При фактическом развертывании необходимо учитывать более сложные настройки, такие как алгоритмы балансировки нагрузки, механизмы обработки ошибок и политики безопасности.
Стратегия балансировки нагрузки является ключевой технологией в распределенных системах. Она направлена на интеллектуальное распределение сетевых запросов на несколько серверных узлов для оптимизации использования ресурсов, повышения скорости ответа системы и обеспечения непрерывности обслуживания. В этой архитектуре стратегия балансировки нагрузки сначала реализует предварительное распределение трафика через LVS (виртуальный сервер Linux), чтобы гарантировать, что каждый запрос службы может быть разумно распределен между доступными экземплярами службы для обработки, тем самым улучшая общие возможности обработки и удобство использования системы.
После LVS Nginx играет решающую роль в качестве обратного прокси-сервера. Он не только получает трафик от LVS, но и дополнительно оптимизирует логику распределения трафика, чтобы гарантировать точное направление запросов на разные веб-серверы (например, Apache, Tomcat и т. д.). Этот уровень обработки Nginx может не только предоставлять дополнительные услуги, такие как завершение SSL и кэширование статического контента, но также выполнять более точную балансировку нагрузки на основе настроенных политик (таких как опрос, минимальное количество подключений и т. д.), тем самым максимизируя производительность. использование сервисных ресурсов. Воспользуйтесь преимуществами эффективности и оперативности.
В рамках микросервисной архитектуры Nginx является не только порталом для трафика, но и важным мостом для связи между сервисами. Архитектура веб-сервера соответствует принципу SOA (сервисно-ориентированная архитектура) и реализует развязку сервисов и микросервисы через сервисные платформы, такие как Dubbo. Nginx можно использовать в качестве шлюза API для обеспечения унифицированного доступа, маршрутизации, балансировки нагрузки и контроля безопасности внешних сервисов, повышая гибкость и удобство обслуживания микросервисной архитектуры.
Чтобы обеспечить высокую доступность и согласованность данных, архитектура интегрирует Zookeeper в качестве службы распределенной координации и MQ для асинхронного обмена сообщениями, обеспечивая надежность связи между службами и возможности асинхронной обработки. Сочетание MySQL и Redis, выступающих в качестве реляционной базы данных и службы кэширования соответственно, не только обеспечивает постоянное хранение данных, но и ускоряет чтение данных, улучшая скорость отклика и удобство работы всей системы.
Таким образом, в этом архитектурном проекте используется стратегия двойной балансировки нагрузки LVS и Nginx в сочетании с интеграцией микросервисной архитектуры и ряда промежуточного программного обеспечения для достижения эффективной обработки крупномасштабного одновременного доступа, сохраняя при этом высокую доступность сервисов и данных. Последовательность и быстрое время отклика. Являясь ключевым связующим компонентом, Nginx не только оптимизирует управление трафиком, но и способствует гибкости и масштабируемости системной архитектуры. Это незаменимая часть современных высокопроизводительных веб-сервисов.
Nginxосновной Конфигурация Файлы обычно располагаются в/etc/nginx/nginx.conf
,Это основной файл конфигурации, который загружается при запуске Nginx. Этот файл имеет иерархическую структуру,Умело организованные инструкции по настройке на разных уровнях.,Направлена на комплексный контроль над поведением веб-сервера. Его ключевые компоненты следующие:
📁 Анализ ключевых частей
access_log
иerror_log
инструкцияопределениежурнал доступаиошибкабревноиз Путь и формат хранения。include mime.types
Ввести предопределенныеMIME-типдокумент,Убедитесь, что браузер может правильно проанализировать возвращаемый тип контента.log_format
Директива для настройки формата записи журнала,Для облегчения анализа журналов.sendfile
и т. д. производительностьоптимизация Параметры,Повысьте эффективность передачи файлов и возможности повторного использования соединений.proxy_pass
、upstream
Жду инструкцийвыполнить。epoll
(Применимо кLinux),коптимизация Высокие возможности одновременной обработки。server
блок представляет виртуальный хост Конфигурация,позволятьNginxНа основе разных доменных имен、IPАдрес или номер порта для предоставления услуг。основной Конфигурациявключать:
listen 80;
мониторHTTPПорт по умолчанию。server_name example.com www.example.com;
。server
кусоквнутренний,Запросы на сопоставление на основе URL-пути или регулярного выражения,Решите, как будет обрабатываться запрос。Типичное использованиевключать:
root
илиalias
инструкцияобозначениедокументсистемаизпуть,нравитьсяroot /var/www/html;
。proxy_pass
инструкция将просить转发给задняя часть Служитьустройство。return
илиrewrite
инструкциявыполнитьпроситьизвнутреннийиливнешний Перенаправление。Благодаря этим иерархическим блокам конфигурации Nginx обеспечивает точный контроль от глобальных до конкретных запросов, обеспечивая высокую гибкость и масштабируемость веб-сервисов.
Nginxизhttp
кусокэто весьHTTPСлужитьустройство Конфигурацияизотправная точка,Определяет глобальные параметры и поведение по умолчанию.,влияет на все последующиеизserver
Конфигурация。
keepalive_timeout:настраиватьклиентсвязь сохраняетсяиздогонятьчасчасмежду,Помогает повысить производительность и снизить затраты на установление соединения.
keepalive_timeout 65;
client_max_body_size:пределклиентпросить体изразмер,Избегайте проблем, вызванных загрузкой больших файлов.
client_max_body_size 100M;
include:представить других Конфигурациядокумент,Например, mime.types,MIME-тип, используемый для определения различных типов файлов.
include /etc/nginx/mime.types;
log_format:Настроить Формат журнала,легко Анализ журналов。
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent"';
events
формакусокрешенныйNginxнравиться Как работать с соединениямиипросить,Оказывают прямое влияние на производительность.
worker_connections:каждый Рабочий процесс можетктакой жечасиметь дело сиз Максимальное количество подключений。
events {
worker_connections 1024;
}
use:обозначение事件иметь дело сформа型,нравитьсяepoll
существоватьLinuxВыдающаяся производительность。
events {
use epoll;
}
каждыйserver
кусокопределениеполучил одинвиртуальный Хозяин,Могут быть разные доменные имена, порты и Конфигурация.
listen:обозначениемониторизпортипротокол(нравитьсяHTTP、HTTPS)。
server {
listen 80;
server_name:обозначение Долженвиртуальный Хозяин Служитьиздоменное имя。
server_name example.com www.example.com;
location:в соответствии сURLпуть来обозначение不такой жезапросиметь дело с方式。
location / {
root /var/www/html;
index index.html index.htm;
}
location
кусокдаNginxКонфигурациясерединасамый гибкийизчасть,Настройте логику обработки запросов на основе URL-пути.
Служба статического контента:
location /static/ {
alias /data/static/;
}
обратный прокси:
location /api/ {
proxy_pass http://localhost:8000;
}
Переписать правила:
location /old-url {
return 301 /new-url;
}
Обработка динамического контента FastCGI(кPHPНапример):
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
}
Благодаря сочетанию и настройке вышеупомянутых частей Nginx может гибко обрабатывать различные требования к веб-сервисам, от простых статических файловых служб до сложной балансировки нагрузки и обработки динамического контента, и им можно легко управлять.
Система журналирования Nginx является ключевым компонентом обслуживания и обслуживания. Она помогает администраторам отслеживать состояние системы, отслеживать проблемы и проводить настройку. производительности。Разумныйизбревно Конфигурацияне тольковключатьнастраиватьaccess_log
иerror_log
изпутьиуровень,возвращатьсявключать Формат настройка журнала и использование современного Анализа журналов инструмент для эффективного интеллектуального анализа данных.
debug
、info
、notice
、warn
、error
、crit
、alert
、emerg
。в соответствии с Выберите правильный вариант в соответствии с фактическими потребностямиизбревноуровень Можетк避免бревнодокумент Растет слишком быстро。error_log /var/log/nginx/error.log warn; # Регистрировать только сообщения об ошибках уровня предупреждения и выше.
access_log /var/log/nginx/access.log combined; # Используйте комбинированный формат для записи журналов доступа.
Примечание:combined
да预определениеиз Формат журнала,Включатьклиентинформация、Запросить время、строка запроса、код состояния、Байты ответа、Referer、Пользовательский агент и т. д.
log_format custom_format '$remote_addr - $remote_user [$time_local] '
'"$request" $status $body_bytes_sent '
'"$http_referer" "$http_user_agent"';
access_log /var/log/nginx/access_custom.log custom_format; # Ведение журнала в пользовательском формате
Чтобы файлы журналов не становились слишком большими, файлы журналов обычно необходимо регулярно обрезать. Это можно сделать с помощью запланированных задач операционной системы (например, cron job)Сотрудничатьlogrotate
инструментвыполнить。
input {
file {
path => "/var/log/nginx/*.log"
start_position => "beginning"
}
}
filter {
grok {
match => { "message" => "%{NGINXACCESS}" } # Анализ журналов доступа с использованием режима NGINXACCESS
}
}
output {
elasticsearch { hosts => ["localhost:9200"] }
stdout { codec => rubydebug }
}
location /nginx_status {
stub_status on;
access_log off;
allow 127.0.0.0.1;
deny all;
}
КонфигурацияNginxиз状态формакусок(ngx_http_stub_status_module
),ЗатемиспользоватьPrometheusизNginx Экспортер фиксирует эти показатели и отображает их в Grafana.
Благодаря комплексному использованию вышеуказанных конфигураций и инструментов вы можете не только отслеживать рабочее состояние Nginx в режиме реального времени, но также быстро находить и решать проблемы при их возникновении, что еще больше повышает стабильность и эффективность сервиса.
Настройка производительности — ключевой шаг, гарантирующий, что Nginx сможет эффективно обрабатывать большое количество одновременных запросов, уменьшать задержки и полностью использовать аппаратные ресурсы. Вот некоторые важные стратегии и методы настройки производительности:
Чтобы гарантировать, что Nginx сможет полностью использовать ресурсы сервера, в основе лежит разумная настройка worker_processes и worker_connections.
worker_processes auto; # Автоматически определять количество ядер ЦП и устанавливать количество процессов
worker_rlimit_nofile 65535; # Максимальное количество файловых дескрипторов, которые можно открыть для одного рабочего процесса.
events {
worker_connections 1024; # Максимальное количество соединений, которые может обработать каждый рабочий процесс.
use epoll; # Используйте модель событий epoll в среде Linux для повышения эффективности.
multi_accept on; # Разрешить одновременное принятие нескольких подключений, улучшая скорость ответа
}
Настраивая метод обработки статических ресурсов и устанавливая стратегии кэширования, можно повысить скорость доступа к статическим ресурсам и снизить нагрузку на сервер.
location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
expires 365d; # Установите время кэширования браузера для статических ресурсов на один год.
add_header Cache-Control public; # Сообщите браузерам и прокси-серверам, что они могут кэшировать
access_log off; # Отключите ведение журнала доступа для этой части запроса, чтобы уменьшить количество дисковых операций ввода-вывода.
try_files $uri $uri/ =404; # Попробуйте получить доступ к файлу напрямую, если не найден, верните 404.
}
Используйте новейшие протоколы SSL/TLS и соответствующие наборы шифров, чтобы обеспечить безопасность и сбалансировать производительность.
ssl_certificate /etc/nginx/ssl/server.crt; # Путь SSL-сертификата
ssl_certificate_key /etc/nginx/ssl/server.key; # путь к секретному ключу
ssl_protocols TLSv1.2 TLSv1.3; # Включите безопасные и эффективные протоколы SSL/TLS
ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH'; # Комплекты шифров, ориентированные на безопасность
ssl_prefer_server_ciphers on; # Предпочтение сервера для наборов шифров
Протокол HTTP/2 может значительно повысить скорость загрузки веб-страницы, особенно в сценариях с несколькими запросами статических ресурсов.
listen 443 ssl http2; # Прослушивайте порт 443, включите SSL и используйте HTTP/2.
В приведенных выше примерах конфигурации показано, как выполнить настройку производительности нескольких ключевых аспектов Nginx, включая управление рабочими процессами, обработку статических ресурсов, безопасность SSL/TLS и обновления протоколов, чтобы улучшить скорость ответа сервера и эффективность использования ресурсов.
Убедитесь, что ваш Nginx загружает только те модули, которые вам действительно нужны. Каждый загруженный модуль будет занимать определенный объем памяти,И может немного увеличить время запуска Nginx и потребление памяти во время выполнения. При компиляции Nginx,проходитьобозначение--without-module_name
Параметры移除不нуждатьсяизформакусок,илисуществовать Конфигурациядокументсерединаизбегать ненужныхизload_module
инструкция。Это помогает сохранитьNginxлегкий,Повысьте его эффективность.
Для контента, который генерируется динамически, но меняется нечасто.,Реализация стратегии микрокэширования может уменьшить количество запросов к внутреннему серверу. Установив кеш в Nginx на более короткий период времени (например, от секунд до минут).,Можетк Значительно улучшить скорость ответа。настраиватьподходящийизкэшчасмеждуисуществоватьNginxКонфигурациясерединаиспользоватьproxy_cache
инструкциявыполнитьэта стратегия。примернравиться:
location /dynamic-content {
proxy_cache my_microcache;
proxy_cache_valid 200 302 1m;
proxy_pass http://backend;
}
здесь,proxy_cache_valid
инструкцияопределение Какие именнокод состоянияиз响应进行кэшкикэшмного长часмежду。
Благодаря постоянному мониторингу, анализу журналов, тестированию производительности и своевременному обновлению технологий мы можем гарантировать, что конфигурация Nginx всегда адаптируется к меняющимся потребностям бизнеса и моделям трафика и поддерживает оптимальную производительность.
В производственной среде крайне важно обеспечить высокую доступность Nginx, что обычно включает активную и резервную настройку, балансировку нагрузки и автоматическое переключение при сбое. Ниже приводится введение в несколько стратегий и инструментов для достижения развертывания высокой доступности, сочетающих проверки работоспособности и механизмы автоматического переключения при сбое для обеспечения непрерывности и стабильности обслуживания.
Keepalived — это программное обеспечение, которое использует протокол VRRP (протокол резервирования виртуального маршрутизатора) для достижения высокой доступности. Развернув Keepalived на нескольких серверах Nginx, можно обеспечить переключение между активным и резервным режимами.
/etc/keepalived/keepalived.conf
)середина,определениеVIP(виртуальныйIPадрес)кипроверка здоровья или напрямую воспользуйтесь страницей состояния Nginx для проверки.vrrp_instance VI_1 {
state MASTER # или BACKUP
interface eth0
virtual_router_id 51
priority 100 # Для основного сервера установлено более высокое значение, например 100, для резервного сервера установлено более низкое значение, например 90;
advert_int 1
authentication {
auth_type PASS
auth_pass password
}
virtual_ipaddress {
192.168.1.100
}
track_script {
chk_nginx
}
}
chk_nginx
Скрипт,Можеткиспользовать来обычныйисследоватьNginxстраница статуса(нравиться/nginx_status
),Убедитесь, что Nginx работает правильно.Хотя он не так прост, как Keepalived, для обеспечения функции аварийного переключения.,ноnginx-upsync-module
Можетк Обеспечьте несколькоNginxбалансировка Синхронизация конфигурации на сервере нагрузки особенно подходит для сценариев с высокими требованиями к согласованности конфигурации в распределенных средах.
Независимо от того, какое решение высокой доступности будет принято, интеграция Zabbix или других систем мониторинга необходима для мониторинга состояния Nginx и связанных с ним компонентов в режиме реального времени.
Подводя итог, можно сказать, что достижение высокой доступности развертывания Nginx включает в себя выбор правильных инструментов (таких как Keepalived), настройку механизмов проверки работоспособности, обеспечение синхронизации конфигурации и интеграцию систем мониторинга для обеспечения плавного развертывания даже в случае единой точки сбоя. . Переключитесь, чтобы обеспечить среду, в которой службы продолжают работать.
Чтобы установить Nginx в системе CentOS, вы можете выполнить следующие шаги:
Обновить системные пакеты: Сначала убедитесь, что ваша система обновлена, выполнив следующую команду «Обновить». системные пакеты:
sudo yum update -y
Установить репозиторий EPEL: EPEL(Extra Packages for Enterprise Linux) предоставляет множество пакетов программного обеспечения, которых нет в CentOS, включая Nginx. Используйте следующую команду Установить репозиторий EPEL:
sudo yum install epel-release -y
Установить nginx:
ПонятноEPELсклад Библиотеканазад,你就Можеткпрямойиспользоватьyum
Заказ Установить Нгинкс:
sudo yum install nginx -y
Запустите и настройте Nginx для запуска при загрузке.: После завершения установки запустите службу Nginx и настройте ее автоматический запуск при запуске системы:
sudo systemctl start nginx
sudo systemctl enable nginx
На данный момент Nginx установлен и работает.
nginx -t
Заказисследовать Конфигурациядокументда否有语法ошибка,Этот шаг следует выполнять после каждого изменения конфигурации.sudo systemctl restart nginx
Заказ ПерезапускNginxСлужить,Сделайте новую Конфигурацию эффективной.Имейте в виду, что конкретные шаги установки могут различаться в зависимости от вашей версии CentOS и системной среды. При необходимости обратитесь к последней официальной документации или руководствам сообщества.
Этот пример конфигурации включает базовую конфигурацию Nginx, обратный прокси-сервер для внутреннего сервера приложений, простые настройки балансировки нагрузки, а также включение сжатия Gzip и междоменную поддержку. Пожалуйста, измените имя домена, путь и адрес сервера в соответствии с реальной ситуацией.
# В разделе «Глобальная конфигурация» задаются пользователь, режим работы, журнал ошибок и т. д., под которым работает Nginx.
user nginx; # Рабочий процесс Nginx, выполняющий пользователя
worker_processes auto; # Автоматически устанавливать количество рабочих процессов в зависимости от количества ядер процессора системы.
# ошибка Настройки журнала
error_log /var/log/nginx/error.log warn; # Путь и уровень файла журнала ошибок
# Процесс PID-файла
pid /var/run/nginx.pid;
# Режим работы и максимальное количество подключений
events {
worker_connections 1024; # Максимальное количество подключений для одного рабочего процесса
use epoll; # Используйте модель epoll для повышения эффективности ввода-вывода (система Linux)
# multi_accept on; # Необязательно: разрешите каждому процессу принимать несколько соединений одновременно.
}
# Конфигурация HTTP-модуля
http {
# Настройки MIME-типа
include /etc/nginx/mime.types;
default_type application/octet-stream;
# Формат журналаопределение log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
# доступ Настройки журнала
access_log /var/log/nginx/access.log main;
# Отправляйте файлы без использования системного кеша
sendfile on;
# Запретить включение файла отправки на неподдерживаемых платформах.
tcp_nopush on;
# Настройки таймаута соединения
keepalive_timeout 65;
# Включите сжатие gzip, чтобы повысить эффективность передачи.
gzip on;
gzip_disable "msie6";
gzip_vary on;
gzip_proxied expired no-cache no-store private auth;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
# Междоменная конфигурация, позволяющая выполнять междоменные запросы из всех источников.
add_header Access-Control-Allow-Origin *;
# балансировка нагрузки Конфигурация实пример
upstream backend_servers {
server backend1.example.com; # Первый адрес внутреннего сервера
server backend2.example.com; # Адрес второго внутреннего сервера
# Вы можете продолжать добавлять больше серверов и устанавливать вес, максимальное количество сбоев (max_fails) и т. д.
}
# Базовая конфигурация сайта
server {
listen 80; # Слушайте порт 80
server_name example.com www.example.com; # Доменное имя сервера
# Настройки корневого каталога статических файлов
root /var/www/html;
index index.html index.htm;
# обрабатывать все запросы
location / {
# При необходимости сюда можно добавить дополнительные элементы управления доступом, журналы и т. д.
}
# обратный прокси для примеров приложений Node.js
location /api/ {
proxy_pass http://localhost:3000; # Адрес внутреннего сервера
proxy_set_header Host $host; # Передайте поле Host в заголовке запроса.
proxy_set_header X-Real-IP $remote_addr; # Предоставляйте реальный клиентский IP
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # Передать заголовок X-Forwarded-For
}
# 示примербалансировка нагрузки Конфигурация
location /balance/ {
proxy_pass http://backend_servers; # Используйте балансировку, определенную выше нагрузкиустройство proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
}
пожалуйста, изменитеначальствоописывать Конфигурациядокументсохранить как/etc/nginx/nginx.conf
,исуществовать进行任何更改назадиспользоватьnginx -t
Заказисследовать Конфигурацияизправильность,Затемпроходитьsystemctl restart nginx
Заказ ПерезапускNginxСлужитьк应использовать更改。记得替换示примерсерединаиздоменное имя、Пути и адреса серверов являются фактическими значениями.
Подводя итог, можно сказать, что Nginx — это высокопроизводительный веб-сервер и обратный прокси-сервер. Для фронтенд-инженеров его важность и практичность отражаются во многих аспектах:
Из примеров установки и настройки CentOS, приведенных в этой статье, вы узнали, как установить Nginx с нуля и настроить базовые веб-службы, обратный прокси-сервер, балансировку нагрузки, сжатие Gzip и междоменные политики. Это незаменимые знания для создания современного Интернета. приложения. Овладение этими навыками означает, что вы сможете более независимо оптимизировать среду развертывания интерфейсных приложений, справляться с высокой степенью одновременного доступа и внедрять более безопасные и эффективные решения по развертыванию сервисов.
Продолжайте глубоко изучать другие расширенные функции и лучшие практики Nginx, такие как шлюз микросервисов, поддержка HTTP/2, усиление безопасности и т. д., которые еще больше расширят ваши возможности полного стека и сделают вашу работу более комфортной в области веб-разработки. Желаю вам идти дальше и дальше по пути изучения и применения Nginx и продолжать создавать высокопроизводительные веб-сервисы с высокой доступностью! 🏁