Благодаря энергичному развитию передовых технологий и вашим собственным непрерывным усилиям многие мелкие партнеры открыли две вены Рена и Ду и добились полного охвата передних и внутренних частей. Вы боги в своем собственном процедурном мире, где вы всемогущи, творите мир, формулируете правила и логику. Когда мир, который принадлежит вам, готов, вам нужно показать его своим друзьям, опубликовать для всех и позволить тем, кто любит вас, оценить его. На данный момент нам нужен мощный сервер в качестве контейнера, и Nginx может удовлетворить все ваши фантазии.
Описание курса:
Курс подробно объясняет использование и настройку Nginx, включая текстовые и видеоуроки. Конечно, вам не нужно тратить ни копейки, это все бесплатно, просто помнитеhttp://jspang.com
Вы можете посмотреть этот урок здесь.
Потому что технический жир не профессиональный лектор, а фронтенд программист, так что я просто делюсь своим использованием.Неизбежно, что есть что-то неправильное или неточное.Пожалуйста, поправьте меня.
Видео находится в конце статьи, при необходимости вы можете сразу найти конец статьи для просмотра.
Раздел 01: Знакомство с Nginx и подготовка среды
Как интерфейс, я уверен, что вы, должно быть, слышали о Nginx. Поскольку в последние два года он был так популярен в качестве интерфейса, если вы не знаете Nginx, вы не посмеете сказать другим, что вы большой интерфейс. Так что же такое Nginx? Приведем официальное введение:
«Nginx — это легкий HTTP-сервер, использующий управляемую событиями асинхронную неблокирующую структуру обработки, которая обеспечивает превосходную производительность ввода-вывода и часто используется для обратного проксирования на стороне сервера и балансировки нагрузки».
Преимущества Nginx
- Поддержка массового параллелизма: используется epoll для мультиплексирования ввода-вывода. Официальный тестовый Nginx может поддерживать 50 000 одновременных подключений, а реальная производственная среда может поддерживать 20 000–40 000 одновременных подключений.
- Меньшее потребление памяти: в настоящее время Nginx потребляет наименьшее количество памяти среди основных серверов.Например, мы используем Nginx+PHP для открытия 10 процессов Nginx и потребляем 150 М памяти при 30 000 одновременных подключений.
- Бесплатное использование может быть коммерциализировано: Nginx — это программное обеспечение с открытым исходным кодом, использующее протокол, подобный BSD, состоящий из двух пунктов, бесплатное для использования и может использоваться в коммерческих целях.
- Простые файлы конфигурации: сетевые и программные конфигурации просты для понимания даже при непрофессиональной эксплуатации и обслуживании.
Конечно, у него есть много преимуществ, таких как функция обратного прокси и функция балансировки нагрузки, о которых мы расскажем по порядку в статье, и я не буду повторять их здесь.
Nginx сейчас очень популярен: мы можем пройтиhttps://w3techs.com/
Этот веб-сайт видит, что Nginx занимает второе место на сервере, но это самый быстрорастущий веб-сайт с долей 39,7%.
Зачем изучать эту статью
В качестве внешнего интерфейса у вас будет более или менее некоторый опыт работы с Nginx, так зачем вам это изучать? Не систематизировано: в прошлом вы могли настроить только определенную функцию (собранную онлайн), которая представляет собой фрагментарное знание и не является систематическим. В результате, когда у вашего сервиса возникают проблемы, вы не знаете, с чего начать решение этих проблем.
В этой статье я сделаю все возможное, чтобы разделить функцию и объяснить систему каждому в слоях, чтобы каждый мог бы быть компетентным за конфигурацию и эксплуатацию и обслуживание Nginx.
** среда обучения **
У вас есть три варианта среды обучения:
- Собери свой собственный компьютер: Вам нужно иметь один компьютер или сервер без работы.Преимущества - высокая стабильность, сильная управляемость и простота обучения.
- Купить Alibaba Cloud ECS: Денег немного, я выбираю Alibaba Cloud Student ECS, который стоит 9,5 юаней в месяц.
- Используйте виртуальное программное обеспечение: Если конфигурация компьютера высока, вы можете установить виртуальное программное обеспечение.Недостаток в том, что это хлопотно, влияет на производительность компьютера и имеет много конфигураций.
Я выбираю ECS от Alibaba Cloud, который является сугубо личным и простым, но я думаю, что он наиболее эффективен.
Ниже приведена льготная цена Alibaba Cloud, предоставленная небольшим партнером группы.
Играйте в экологию кампуса, пока 9,5 юаня в месяц вы можете купить по своему усмотрению.Promotion.aliyun.com/ваш ТМ is/act/wipe…
(Я не буду приводить здесь слишком много знаний о Linux, если вы не знакомы с этим, идите и наверстайте это сами)
Я использую операционную систему CentOS 7.4 64-битную версию.
Установите необходимые программы с помощью yum
Если вы используете Linux очень опытно, я думаю, вы должны были использовать эти программыyum
Он был установлен, но если вы не знакомы с Linux, вы можете установить его непосредственно с помощью yum. (А затем Baidu, чтобы узнать полезность этих вещей, я не буду делать здесь слишком много вводных, просто следуйте инструкциям)
yum -y install gcc gcc-c++ autoconf pcre-devel make automake
yum -y install wget httpd-tools vim
создать каталог
На самом деле вы можете не создавать этот каталог, но тогда ваша система будет очень хаотичной, что не способствует дальнейшей эксплуатации и обслуживанию. Поэтому я создаю следующий каталог в соответствии со своими предпочтениями.
Шаги следующие (этот шаг устанавливается в соответствии с вашими предпочтениями):
- После входа в систему создайте
jspang
папка. - Войдите в папку jspang, команда
cd jspang
. - Используйте mkdir для сборки отдельно
app
,backup
,download
,logs
,work
папка.
В этом уроке мы сделаем это в первую очередь, на следующем уроке мы начнем устанавливать наш Nginx.
Раздел 02: Быстрая сборка Nginx
Большинство моих статей сосредоточено на практической работе, но мало на теории, потому что нерешительный человек, технически тучный, не смог объяснить теоретические знания лучше, чем книги, поэтому вы можете обратиться к теоретической части самостоятельно или прочитать книги, чтобы узнать (это нужно объяснить, что технически тучные Не то, чтобы теория не важна).
Выходные данные Nginx
- Основная версия: версия для разработки, в основном для поклонников Nginx, для тестирования, исследований и обучения, но не рекомендуется для производственных сред.
- Стабильная версия: стабильная версия, которую мы называем версией с долгосрочным обновлением. Эта версия, как правило, более зрелая, она обновлялась и тестировалась в течение длительного времени, поэтому эта версия также является основной версией.
- устаревшая версия: историческая версия, если вам нужна предыдущая версия, Nginx также предоставляет ее.
Поняв разницу между этими тремя версиями, вы сможете ясно их использовать.
Установите Nginx на основе Yum
Мы можем сначала проверить, существует ли уже yum, команда выглядит следующим образом:
yum list | grep nginx
Если появится что-то вроде следующего, источник yum существует.
(Осторожные друзья могут обнаружить, что исходный код системы поддерживает только версию 1.1.12, что немного ниже)
Если его нет или это не та версия, которая вам нужна, то мы можем настроить источник yum самостоятельно.Ниже приведен источник, предоставленный официальным сайтом, мы можем использовать его с уверенностью.
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/OS/OSRELEASE/$basearch/
gpgcheck=0
enabled=1
Скопируйте код выше и введите в терминале:
vim /etc/yum.repos.d/nginx.repo
Затем скопируйте код. Здесь вам могут понадобиться некоторые знания работы с Vim. Если вы не знакомы с ним, вы можете изучить его самостоятельно. Конечно, в моем видео также есть пояснения.
После того, как задание выполнено, нужно изменить соответствующую операционную систему и номер версии, потому что у меня версия centos и 7, поэтому измените ее на эту.
baseurl=http://nginx.org/packages/centos/7/$basearch/
Вы можете изменить его в соответствии с вашей системой или версией, которая вам нужна.
Если вы уже готовы, можете приступать к установке, устанавливаемые команды очень просты:
yum install nginx
После завершения установки вы можете использовать команду для определения версии Nginx.
nginx -v
Если появится содержимое следующей картинки, это означает, что Nginx был успешно установлен.
На данный момент вы установили последнюю версию Nginx в свою систему Linux, что является очень хорошим началом. Маленькие друзья, вы должны это сделать, вы не можете это слушать, вам нужно это сделать.
Раздел 03: Подробное описание базовых файлов конфигурации Nginx
Теперь, когда Nginx успешно установлен, следующая задача — научиться его настраивать и использовать. Лично я получаю удовольствие от этого процесса, это как иметь дикий, потный BMW, и все, что вам нужно сделать, это приручить его. И результат, и процесс прекрасны.
Проверьте каталог установки Nginx
В использованииyum
После установки Nginx нужно знать, какие файлы есть в системе, все они там установлены. Вы можете просмотреть его с помощью следующей команды:
rpm -ql nginx
rpm — это инструмент управления пакетами rpm в Linux, -q обозначает режим запроса, -l обозначает список возврата, чтобы мы могли найти все места установки nginx.
В списке по-прежнему много содержимого, и мы постараемся вам его объяснить. Давайте взглянем на важные файлы в этом разделе.
Интерпретация файла nginx.conf
Файл nginx.conf — это общий файл конфигурации Nginx, который часто корректируется при сборке сервера.
Войдите в каталог etc/nginx и откройте его с помощью vim.
cd /etc/nginx
vim nginx.conf
Ниже приводится подробный комментарий к файлу, я прокомментировал почти каждое предложение, вы можете настроить его в соответствии с вашими потребностями.
#运行用户,默认即是nginx,可以不进行设置
user nginx;
#Nginx进程,一般设置为和CPU核数一样
worker_processes 1;
#错误日志存放目录
error_log /var/log/nginx/error.log warn;
#进程pid存放位置
pid /var/run/nginx.pid;
events {
worker_connections 1024; # 单个后台进程的最大并发数
}
http {
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; #nginx访问日志存放位置
sendfile on; #开启高效传输模式
#tcp_nopush on; #减少网络报文段的数量
keepalive_timeout 65; #保持连接的时间,也叫超时时间
#gzip on; #开启gzip压缩
include /etc/nginx/conf.d/*.conf; #包含的子配置项位置和文件
Объяснение элементов конфигурации default.confМы видим, что в конце есть элемент конфигурации подфайла, затем мы открываем элемент конфигурации включаемого подфайла, чтобы посмотреть, что в нем.
Перейдите в каталог conf.d и используйтеvim default.conf
смотреть.
server {
listen 80; #配置监听端口
server_name localhost; //配置域名
#charset koi8-r;
#access_log /var/log/nginx/host.access.log main;
location / {
root /usr/share/nginx/html; #服务默认启动目录
index index.html index.htm; #默认访问文件
}
#error_page 404 /404.html; # 配置404页面
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html; #错误状态码的显示页面,配置后需要重启
location = /50x.html {
root /usr/share/nginx/html;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# include fastcgi_params;
#}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
Разобравшись с этими элементами конфигурации, мы знаем, что наша служебная директория находится в/usr/share/nginx/html
, вы можете использовать команду для входа и просмотра файлов в каталоге.
cd /usr/share/nginx/html
ls
Вы можете видеть, что в каталоге есть два файла: 50x.html и index.html. Мы можем использовать vim для редактирования.
Узнав об этом, можно ожидать, что наш сервер nginx уже может предоставить сервер для html. Мы можем открыть браузер и посетить IP-адрес, чтобы попробовать.
Конфигурация группы облачной безопасности Alibaba
Если вы используете Alibaba Cloud, не забудьте открыть порт на экземпляре ECS.
Действуйте следующим образом:
- Перейдите в консоль Alibaba Cloud и найдите экземпляр ECS.
- Нажмите «Еще» за экземпляром
- Нажмите «Сеть и группы безопасности», а затем нажмите «Конфигурация группы безопасности».
- Добавьте «Конфигурация группы безопасности» в правом верхнем углу.
- Настройте порт 80 и конкретные настройки, как показано на рисунке.
Здесь мы можем перейти на страницу программы. Этот раздел находится здесь, см. следующую страницу с изображением, указывающую на то, что вы успешно настроили.
Раздел 04: запуск, остановка, перезапуск службы Nginx
После изучения первых 3-х разделов был установлен nginx.Во время обслуживания большинство операций, которые мы делаем, это запуск, перезапуск и остановка Nginx. В этом уроке мы поговорим о самых распространенных операциях Nginx.
Запустите службу Nginx
По умолчанию Nginx не запустится автоматически, и нам нужно запустить его вручную.Конечно, единого способа запуска Nginx не существует.
nginx запускается напрямую
В версии CentOS7.4 (более низкая версия неприемлема) его можно использовать напрямуюnginx
Запустите службу.
nginx
Начните с команды systemctl
Вы также можете использовать команду Linux для запуска, я обычно использую этот метод. Поскольку этот метод один и тот же, независимо от того, какая служба запущена, просто измените имя службы (без добавления дополнительных точек памяти).
systemctl start nginx.service
После ввода команды приглашения нет, так как же узнать, где запущена служба Nginx? Вы можете использовать комбинацию команд Linux для запроса текущего состояния службы.
ps aux | grep nginx
Если запуск прошел успешно, появится результат, аналогичный показанному на картинке ниже.
Вот эти три записи, говорящие о том, что наш Nginx открылся нормально.
Четыре способа остановить службу Nginx
Есть много способов остановить Nginx, вы можете использовать разные методы в зависимости от ваших потребностей, мы объясним их один за другим.
- немедленно прекратить обслуживание
nginx -s stop
Этот метод является жестким и останавливает процесс напрямую, независимо от того, работает процесс или нет.
- Остановить службу изящно
nginx -s quit
Этот метод мягче, чем остановка, и требует, чтобы процесс завершил текущую работу перед остановкой.
- метод killall убивает процесс
Этот метод также является относительно диким, мы убиваем процесс напрямую, но когда вышеописанное использование не дает эффекта, нам лучше использовать этот метод.
killall nginx
- системная остановка
systemctl stop nginx.service
Перезапустите службу Nginx.
Иногда нам нужно перезапустить службу Nginx, в этом случае мы можем использовать следующую команду.
systemctl restart nginx.service
Перезагрузить файл конфигурации
После перезаписи или модификации файла конфигурации Nginx вам нужно перезагрузить его. В это время вы можете использовать команду, заданную nginx.
nginx -s reload
Посмотреть номер порта
По умолчанию Nginx после запуска будет прослушивать порт 80 для предоставления HTTP-доступа.Если порт 80 уже занят, он не запустится. могу ли я использоватьnetstat -tlnp
Команда для проверки занятости номера порта.
**Резюме:** Хотя содержание этого курса простое, это то, что мы часто используем в своей работе. Надеюсь, вы сможете с нами связаться. Я так подробно разбил курсы. Одна из основных причин в том, что Я надеюсь, что это может быть удобно для работы.
Раздел 05: Пользовательские страницы ошибок и настройки доступа
Хороший веб-сайт будет вооружен до зубов, с удобными подсказками для любых ошибок. Например, когда веб-сайт обнаруживает, что страница не найдена, мы должны сообщить, что страница не найдена, и дать пользователю возможность вернуться. Существует множество видов ошибок, поэтому действительно хороший продукт принесет покупателю разные результаты.
Несколько ошибок указывают на страницу
Вы можете увидеть следующее предложение в /etc/nginx/conf.d/default.conf.
error_page 500 502 503 504 /50x.html;
Директива error_page используется для настройки страниц ошибок. Коды 500, 502, 503 и 504 являются наиболее распространенными кодами ошибок в HTTP. /50.html используется для указания того, что при возникновении любой из указанных выше ошибок корневой каталог веб-сайта файл used./50.html ниже для обработки.
Отдельный метод обработки ошибок
Иногда необходимо показывать эти страницы ошибок отдельно, чтобы пользователям было удобнее работать с ними. Поэтому необходимо настроить разные страницы для каждого кода ошибки. Способ настройки следующий:
error_page 404 /404_error.html;
Затем создайте новый файл 404_error.html в каталоге веб-сайта и напишите некоторую информацию.
<html>
<meta charset="UTF-8">
<body>
<h1>404页面没有找到!</h1>
</body>
</html>
Затем перезапустите наш сервис и зайдите снова, вы обнаружите, что страница 404 изменилась.
Замените код ошибки адресом
При обработке ошибок могут использоваться ресурсы не только этого сервера, но и внешние ресурсы. Например, мы устанавливаем файл конфигурации следующим образом.
error_page 404 http://jspang.com;
Мы использовали технически толстый адрес блога в качестве подсказки о том, что страница 404 не найдена, поэтому она была сформирована.Если файл не был найден, мы сразу переходили к технически толстому блогу.
Простая реализация контроля доступа
Иногда наш сервер разрешает доступ только к определенным хостам, таким как внутренняя система OA, или фоновая система управления приложением, или некоторые интерфейсы приложений.В это время нам нужно контролировать некоторый IP-доступ.location
настроить в.
Его можно настроить прямо в default.conf.
location / {
deny 123.9.51.42;
allow 45.76.202.231;
}
После завершения настройки перезапустите сервер, чтобы ограничить и разрешить доступ. Это очень распространено на работе, поэтому обязательно имейте это в виду.
Раздел 06: Права доступа Nginx в деталях
В прошлом уроке мы вкратце коснулись простого использования доступа Nginx.Несложно понять, что запрещать — значит запрещать доступ, а разрешать — разрешать доступ. Однако управление доступом в Nginx все еще относительно сложно, и мы подробно рассмотрим его в этом уроке.
приоритет команды
Давайте сначала посмотрим на код:
location / {
allow 45.76.202.231;
deny all;
}
Приведенная выше конфигурация означает, что разрешено только45.76.202.231
Доступ, другие IP запрещены. Но если мы положимdeny all
команда, перейти кallow 45.76.202.231
Что будет до этого? Вы обнаружите, что доступ ко всем IP-адресам запрещен.Это показывает проблему: для двух команд разрешений в одном и том же блоке настройки, которые появляются первыми, будут перезаписывать настройки, которые появляются позже (то есть тот, кто сработает первым, тот и вступит в силу)..
Согласование привилегий сложного контроля доступа
На работе требования к контролю прав доступа более сложные, например, к img (каталогу изображений) под сайтом доступ разрешен всем пользователям, а к каталогу admin под сайтом доступ только по фиксированному IP внутри компании разрешено. В настоящее время невозможно полагаться только на команды Deny и Allow. Нам нужен блок местоположения для завершения соответствующего сопоставления требований.
Вышеуказанные требования, код конфигурации выглядит следующим образом:
location =/img{
allow all;
}
location =/admin{
deny all;
}
=
Число представляет собой точное совпадение, используя=
за которым следует точное совпадение на основе следующего за ним шаблона. Это напрямую связано с безопасностью нашего веб-сайта и должно быть изучено.
Используйте регулярные выражения для установки прав доступа
Только точное совпадение иногда может не решить наши рабочие задачи.Например сейчас мы хотим запретить доступ ко всем php страницам.Большинство php страниц это фоновое управление или код интерфейса,поэтому в целях безопасности мы часто запрещаем доступ всем пользователям,а только открытый доступ внутри компании.
код показывает, как показано ниже:
location ~\.php$ {
deny all;
}
Таким образом, при повторном посещении мы не сможем получить доступ к файлам, оканчивающимся на php. Делает ли это веб-сайт намного безопаснее?
Раздел 07: Настройка виртуального хоста Nginx
Виртуальный хостинг означает разделение нескольких дисковых пространств на физическом хост-сервере, каждое дисковое пространство является виртуальным хостом, и каждый виртуальный хост может предоставлять внешние веб-службы, не мешая друг другу. С точки зрения внешнего мира, виртуальный хост — это независимый серверный хост, что означает, что пользователи могут использовать виртуальные хосты для развертывания нескольких веб-сайтов с разными доменными именами на одном сервере без необходимости покупать отдельный сервер для веб-сайта. проблема обслуживания серверной техники, но также значительно экономит затраты на серверное оборудование и связанные с этим расходы на обслуживание.
Настройка виртуальных хостов может основываться на номерах портов, IP-адресах и доменных именах.В этом уроке мы сначала научимся настраивать виртуальные хосты на основе номеров портов.
Настройка виртуальных хостов на основе номеров портов
Настроить виртуальный хост на основе номера порта проще всего в Nginx. Принцип заключается в том, что Nginx отслеживает несколько портов, что позволяет различать разные сайты по разным номерам портов.
Мы можем настроить его прямо в основном файлеetc/nginx/nginx.conf
файл, также может быть настроен в файлах подконфигурацииetc/nginx/conf.d/default.conf
. Для удобства настройки я настроил его в подфайле. Конечно, вы также можете создать новый файл, если он находится в папке conf.d.
Измените параметр сервера в файле конфигурации, тогда серверов будет два.
server{
listen 8001;
server_name localhost;
root /usr/share/nginx/html/html8001;
index index.html;
}
составлено вusr/share/nginx/html/html8001/
Файл index.html в каталоге и просмотр результатов.
<h1>welcome port 8001</h1>
Наконец, получите доступ к адресу и адресу с портом соответственно в браузере. Видимые результаты разные.
Затем мы можем получить к нему доступ в браузереhttp://112.74.164.244:8001
Конечно, ваш IP определенно отличается от этого, и срок действия этого IP истекает через несколько дней.
Виртуальный хостинг на базе IP
Конфигурации на основе IP и на основе портов почти одинаковы, просто поставьтеserver_name
вариант, настройте его как IP.
Например, вышеуказанная конфигурация, мы можем изменить его до:
server{
listen 80;
server_name 112.74.164.244;
root /usr/share/nginx/html/html8001;
index index.html;
}
Эта демонстрация требует поддержки нескольких IP-адресов.Так как наша Alibaba ECS предоставляет только один IP, мы не будем его здесь демонстрировать.Если он используется в работе, просто установите этот метод и настройте его.
Раздел 08: Nginx Настройка виртуальных хостов с доменными именами
В реальной онлайн-среде для доступа к веб-сайту требуется доменное имя и общедоступный IP-адрес. Это тоже относительно реальный класс, большая часть конфигурации, которую мы настраиваем в реальной работе, — это настройка такого виртуального хоста.
Если у вас еще нет доменного имени, я надеюсь, что вы тоже можете его зарегистрировать. Вы можете зарегистрировать доменное имя, состоящее из вашего имени. Ресурсов, посвященных таким доменным именам, предостаточно. Это всего несколько десятков юаней в год.Это не только для изучения этого курса, но, что более важно, наличие доменного имени будет иметь много преимуществ для вашего профессионального развития. Например, вы хотите показать свою собственную программу другим, вы хотите создать блог или хотите протестировать программу, и все это требует поддержки доменного имени. Поэтому, если вы программист, я настоятельно рекомендую вам подать заявку на собственное доменное имя.
Здесь я использую доменное имя своего собственного блога в качестве примера.
Сначала необходимо проанализировать доменное имя, чтобы доменное имя можно было правильно расположить на нужном вам IP-адресе. Я создал здесь два новых разбора, а именно:
- nginx.jspang.com: это доменное имя сопоставляется с домашней страницей Nginx по умолчанию.
- nginx2.jspang.com: это доменное имя сопоставлено с исходным портом 8001.
Настройте виртуальные хосты, разделенные по имени домена
мы модифицируемetc/nginx/conf.d
Файл default.conf в каталоге изменяет исходный виртуальный хост с 80 портами на виртуальный хост, разделенный доменными именами. код показывает, как показано ниже:
server {
listen 80;
server_name nginx.jspang.com;
Давайте поместим тот же каталог8001.conf
Измените файл следующим образом:
server{
listen 80;
server_name nginx2.jspang.com;
location / {
root /usr/share/nginx/html/html8001;
index index.html index.htm;
}
}
Затем мы перезагружаемся изящным перезапуском, а в это время посещаем эти две веб-страницы в браузере.
На самом деле, виртуальные хосты с доменным именем очень просты, основная операция - это записи server_name в файле конфигурации, а также разрешение доменного имени. Маленькие партнеры должны это практиковать. Следующие уроки могут оказаться не такими простыми.
Раздел 09: Настройка обратного прокси Nginx
Обучение виртуальному хосту завершено, так как обязательным навыком переднего плана является обратный прокси. Мы все знаем, что наша текущая веб-модель в основном представляет собой стандартную структуру CS, то есть клиентскую часть к серверной. Прокси — это добавление сервера, который обеспечивает определенные функции между клиентом и сервером.Этот сервер — это то, что мы называем прокси-сервером.
**Прямой прокси-сервер:** Если вы считаете, что обратный прокси-сервер сложен для понимания, давайте сначала разберемся с прямым прокси-сервером. Я считаю, что как программист, чья скорость рук намного выше обычной, вы должны были использовать инструмент для лазания по стенам (я не говорю здесь о физической лестнице), который является типичным инструментом прямого прокси. Он будет проксировать запрос веб-страницы сервера, которому мы не разрешаем доступ к прокси-серверу, который может получить доступ к веб-сайту, обычно называемому прокси-сервером, а затем пересылать его клиенту. Позвольте мне нарисовать картинку, чтобы помочь вам понять.
Проще говоря, вы хотите получить доступ к разрешениям целевого сервера, но не имеете разрешений. В это время у прокси-сервера есть разрешение на доступ к серверу, и у вас есть разрешение на доступ к прокси-серверу.В это время вы можете получить доступ к реальному серверу, обратившись к прокси-серверу, а прокси-сервер может получить доступ к реальному серверу и представить вам содержимое.
**Обратный прокси: **Обратный прокси - это полная противоположность прокси (следует отметить, что в основном все страницы крупных веб-сайтов теперь используют обратный прокси), запрос, отправленный клиентом, хочет получить доступ к содержимому сервера сервера. Отправляемый контент отправляется на прокси-сервер, а прокси-сервер отправляет запрос на внутренний сервер, заданный им самим, и контент, который пользователь действительно хочет получить, находится на этих установленных серверах.
Через сравнение картинок вы должны увидеть некоторые отличия.Здесь прокси-сервер это не клиент, а сервер, то есть он предоставляет единую запись прокси внешнему клиенту, и запрос клиента должен проходить через прокси сервер первый. Конкретный доступ к серверу server контролируется Nginx. Проще говоря, общий прокси относится к клиенту прокси, а обратный прокси — к серверу прокси.
Использование и преимущества обратного прокси
- Безопасность: клиент прямого прокси-сервера может получить доступ к любому веб-сайту, скрывая при этом свою собственную информацию, что представляет серьезную угрозу для прокси-сервера сетевой безопасности. Следовательно, мы должны защитить сервер.Используя обратный прокси-клиент, пользователь может получить доступ к прокси-серверу только через экстранет, и пользователь не знает, к какому реальному серверу он обращается, что может обеспечить хорошую защиту безопасности.
- Функциональность: Основная цель обратного прокси-сервера — обеспечить такие функции, как балансировка долга и кэширование для нескольких серверов. Балансировка нагрузки заключается в том, что содержимое веб-сайта размещается на нескольких серверах, эти машины можно рассматривать как кластер, тогда Nginx может «равномерно» распределять полученные клиентские запросы на все серверы в кластере, чтобы реализовать сервер. среднее распределение давления также называют балансировкой нагрузки.
Самый простой обратный прокси
Сейчас мы собираемся посетитьhttp://nginx2.jspang.com
затем обратный прокси наjspang.com
этот сайт. мы идем прямо кetc/nginx/con.d/8001.conf
модифицировать.
Измененный файл конфигурации выглядит следующим образом:
server{
listen 80;
server_name nginx2.jspang.com;
location / {
proxy_pass http://jspang.com;
}
}
Как правило, наш обратный прокси — это IP-адрес, но я также могу проксировать здесь доменное имя. На самом деле, даже если наш обратный прокси на данный момент работает успешно, мы можем открыть его в браузере.http://nginx2.jspang.com
Приходите проверить это. (подробная демонстрация в видео)
Другие инструкции обратного прокси
Есть также несколько часто используемых инструкций для обратного прокси, я перечислю их здесь:
-
proxy_set_header : измените информацию заголовка запроса от клиента перед отправкой клиентского запроса на внутренний сервер.
-
proxy_connect_timeout: конфигурация Nginx и внутренний прокси-сервер пытаются установить тайм-аут соединения.
-
proxy_read_timeout : настроить Nginx на ожидание соответствующего тайм-аута после отправки запроса на чтение в группу внутренних серверов.
-
proxy_send_timeout: настроить Nginx на ожидание соответствующего тайм-аута после отправки запроса на запись в группу внутренних серверов.
-
proxy_redirect : используется для изменения местоположения и обновления в заголовке ответа, возвращаемом внутренним сервером.
Раздел 10: Адаптация Nginx к ПК или мобильным устройствам
Многие веб-сайты теперь имеют сайты для ПК и H5, потому что таким образом разные страницы с лучшим интерфейсом могут отображаться в зависимости от разных устройств клиентов.
Некоторые люди говорят, что этот вид спроса может быть решен с помощью самоадаптации, такой как начальная загрузка и метод макета с 24 сетками, которые мы часто говорим, это действительно очень хорошие решения, но с точки зрения сложности и простоты использования они не а также отдельное написание, такое как Наш общий Taobao, Jingdong... Эти крупномасштабные веб-сайты не используют самоадаптацию, а используют отдельные методы производства.
Как определить, какая страница должна отображаться, настроив Nginx? Давайте усвоим этот урок.
Использование $http_user_agent:
Nginx через встроенные переменные$http_user_agent
, userAgent запрашивающего клиента может быть получен, так что пользователь в данный момент находится на мобильном терминале или на ПК-терминале, а затем пользователю могут отображаться разные страницы.
Этапы операции следующие:
- Создайте две новые папки в каталоге /usr/share/nginx/, а именно: каталоги pc и mobile.
cd /usr/share/nginx
mkdir pc
mkdir mobile
- В каталогах pc и miblic создайте два новых файла index.html со следующим содержимым
<h1>I am pc!</h1>
<h1>I am mobile!</h1>
- Войти
etc/nginx/conf.d
В каталоге измените файл 8001.conf в следующем виде:
server{
listen 80;
server_name nginx2.jspang.com;
location / {
root /usr/share/nginx/pc;
if ($http_user_agent ~* '(Android|webOS|iPhone|iPod|BlackBerry)') {
root /usr/share/nginx/mobile;
}
index index.html;
}
}
Я объясню этот код подробно в видео.Если вам интересно, просто посмотрите видео.Видео все бесплатно.
Раздел 11: Конфигурация сжатия Gzip для Nginx
Gzip — это технология сжатия веб-страниц.После сжатия gzip размер страницы может быть уменьшен до 30% от исходного или даже меньше. Меньшие веб-страницы делают просмотр более удобным и быстрым для пользователей. Реализация веб-сжатия gzip требует поддержки браузера и сервера.
Из таблицы можно четко понимать, GZIP требуются серверы и браузеры, поддерживаемые коллегами. Когда браузер поддерживает сжатие gzip, он будет включать Accept-Encoding: gzip в сообщение запроса, чтобы Nginx отправлял содержимое после прослушивания gzip в браузер, и добавлял Content-Encoding: gzip в соответствующий заголовок, чтобы объявить об этом. это содержимое после gzip, говорящее браузеру распаковать его перед анализом вывода.
Элемент конфигурации Gzip
Nginx предоставляет специальный модуль gzip, и инструкции в модуле очень богаты.
- gzip : эта директива используется для включения или отключения модуля gzip.
- gzip_buffers : настроить систему на получение нескольких единиц буферов для хранения потоков данных, сжатых с помощью gzip.
- gzip_comp_level : коэффициент сжатия gzip, уровень сжатия 1-9, 1 — самый низкий уровень сжатия, 9 — самый высокий уровень сжатия. Чем выше уровень сжатия, тем больше степень сжатия и больше время сжатия.
- gzip_disable : эту команду можно использовать для отключения функции сжатия для некоторых определенных пользовательских агентов.
- gzip_min_length: устанавливает минимальное количество байтов страницы, которое можно сжать, а количество байтов страницы получается из Content-length соответствующего заголовка сообщения.
- gzip_http_version: определяет версию протокола HTTP, его значение может быть 1.1 или 1.0.
- gzip_proxied : используется для включения или отключения сжатия gzip содержимого, полученного с прокси-сервера.
- gzip_vary : используется для добавления Vary: Accept-Encoding в заголовок ответа, чтобы прокси-сервер мог определить, следует ли включать сжатие gzip в соответствии с Accept-Encoding в заголовке запроса.
Простейшая конфигурация для gzip
http {
.....
gzip on;
gzip_types text/plain application/javascript text/css;
.....
}
gzip on
Является ли для включения модуля gizp, следующая строка используется для доступа к веб-странице на клиенте, текст, JavaScript
и файлы CSS для сжатого вывода.
После настройки мы можем перезапустить службу Nginx, чтобы наш gizp вступил в силу.
Если вы используете операционную систему Windows, вы можете нажать F12, чтобы открыть инструмент разработчика, автономный текущий запрос и выбрать «Заголовки» на вкладке, чтобы просмотреть информацию заголовка ответа HTTP. ты можешь ясно видетьContent-Encoding
для типа gzip.
Это означает, что мы успешно включили gzip.
Пока что наше обновление временно закончилось. Это всего лишь вводный урок. Вы можете продолжить обучение. У Nginx много сторонних модулей. Я продолжу делиться им, когда у меня будет возможность в будущем.
Список видео:
- Раздел 01: Знакомство с Nginx и подготовка среды:V.QQ.com/small/afraid/no 073…
- Раздел 02: Быстрая сборка Nginx:V.qq.com/small/afraid/oh 073 ...
- Раздел 03: Подробная информация о файле базовой конфигурации Nginx:V.QQ.com/small/afraid/just 074…
- Раздел 04: Запуск, остановка, перезапуск службы Nginx:V.QQ.com/small/afraid/can 074…
- Раздел 05: Пользовательские страницы ошибок и настройки доступа:V.QQ.com/small/afraid/afraid 075…
- Раздел 06: Права доступа Nginx в деталях:V.QQ.com/small/afraid/от 076…
- Раздел 07: Настройка виртуального хоста Nginx:V.QQ.com/small/afraid/076…
- Раздел 08: Nginx использует доменное имя для настройки виртуального хоста:V.QQ.com/small/afraid/i076…
- Раздел 09: Настройки Reverse Proxy Proxy NGINX:V.QQ.com/small/afraid/no 076…
- Раздел 10: Nginx адаптируется к ПК или мобильному устройству:V.QQ.com/small/afraid/com 076…
- V.QQ.com/small/afraid/U077…