Обзор
Nginx — это высокопроизводительный легкий веб-сервер. Поскольку он предоставляет ряд важных функций, таких как HTTP-прокси и обратный прокси-сервер, балансировка нагрузки и кэширование, он широко используется в современных веб-сервисах. Его необходимо изучить. Автор тоже начал учиться и записывать с нуля, и надеюсь, что продолжение будет постепенно углубляться.
Кстати, почему бы не запустить Nginx с Docker? Потому что я не хочу!
Примечание:Эта статья была впервые опубликована на моем официальном аккаунтеCodeSheep,МожетНажмитеилисканированиеследующеебудь остороженЗаходи подписывайся ↓ ↓ ↓
лабораторная среда
- CentOS 7.4 64Bit
- Стабильная версия Nginx 1.14.0
Скачать Nginx
wget http://nginx.org/download/nginx-1.14.0.tar.gz
Установите Nginx
- Установите сторонние библиотеки
yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
yum -y install pcre-devel
После успешной установки вы можете проверить версию pcre:pcre-config —version
- Разархивируйте установочный пакет
tar zxvf nginx-1.14.0.tar.gz
- Автоматически генерировать Makefile из скрипта configure
cd /root/nginx-1.14.0
./configure --prefix=/usr/local/webserver/nginx
здесь—prefix
Вариант указать путь установки Nginx, здесь я указываю путь установки:/usr/local/webserver/nginx
- Скомпилируйте и установите
cd /root/nginx-1.14.0
make && make install
Процесс компиляции и установки выглядит следующим образом, до завершения
- Проверить версию Nginx
/usr/local/webserver/nginx/sbin/nginx -v
- Просмотр установленного каталога
Всего существует четыре каталога:conf
,html
,logs
,sbin
Запустить Nginx
/usr/local/webserver/nginx/sbin/nginx
Браузер успешно обращается к Nginx (Примечание: поскольку на моей машине занят порт 80, я запускаю Nginx на порту 81):
Общие команды
- Проверьте правильность тестового файла nginx.
/usr/local/webserver/nginx/sbin/nginx -t
- Запустить указанный файл конфигурации
/usr/local/webserver/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
- перезапустить nginx
/usr/local/webserver/nginx/sbin/nginx -s reload # 重新载入配置文件
/usr/local/webserver/nginx/sbin/nginx -s reopen #重启 Nginx
- остановить nginx
/usr/local/webserver/nginx/sbin/nginx -s stop # 停止 Nginx
Пример конфигурации сервера Nginx и эксперимент
Подготовить файл конфигурацииnginx.conf
следующее:
// 全局配置
user nobody nobody;
worker_processes 3;
error_log logs/error.log;
pid logs/nginx.pid;
// events块配置
events {
use epoll;
worker_connections 1024;
}
// http块配置
http {
include 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 logs/access.log main;
sendfile on;
keepalive_timeout 65;
// 虚拟主机1:基于域名codesheep.com
server {
listen 8088;
server_name codesheep;
access_log /codesheep/webserver/server1/log/access.log;
error_page 404 /404.html;
location /server1/location1 {
root /codesheep/webserver;
index index.server1-location1.htm;
}
location /server1/location2 {
root /codesheep/webserver;
index index.server1-location2.htm;
}
}
// 虚拟主机2:基于IP地址:192.168.31.177
server {
listen 8089;
server_name 192.168.31.177;
access_log /codesheep/webserver/server2/log/access.log;
error_page 404 /404.html;
location /server2/location1 {
root /codesheep/webserver;
index index.server2-location1.htm;
}
location /srv2/loc2 {
alias /codesheep/webserver/server2/location2/;
index index.server2-location2.htm;
}
location = /404.html {
root /codesheep/webserver/;
index 404.html;
}
}
}
Очевидно, что в приведенном выше конфигурационном файле настроено два виртуальных хоста: одинна основе домена,IP-адрес на основе
Чтобы проверить правильность этой конфигурации, мы создаем соответствующий статический сайт для этой конфигурации, и его структура каталогов выглядит следующим образом:
Теперь сервер Nginx можно запускать и тестировать в браузере.
- Доступ к тестовому сайту server1
Это означает, что конфигурация виртуального хоста 1 в файле конфигурации вступает в силу!
Примечание. Причина, по которой доменное имя www.codesheep.com может быть проанализировано и распознано, заключается в том, что DNS-сервер настроен локально!
- Доступ к тестовому сайту server2
Это означает, что конфигурация виртуального хоста 2 в конфигурационном файле вступает в силу!
постскриптум
Дополнительные статьи автора о SpringBt находятся здесь:
- Мониторинг приложений Spring Boot на практике
- Приложения SpringBoot развертываются во внешнем контейнере Tomcat.
- Практика поисковой системы ElasticSearch в SpringBt
- Предварительное изучение совместного программирования Kotlin+SpringBoot
- Практика ведения журнала Spring Boot
- Элегантное кодирование SpringBoot: благословение Ломбока
Если вам интересно, вы также можете уделить время прочтению некоторых статей автора о контейнеризации и микросервисах:
- Используйте стек технологий K8S для создания личного частного облака Серийная статья
- Подробная конфигурация сервера Nginx из списка конфигураций
- Строительство центра мониторинга визуализации контейнеров Docker
- Использование ELK для создания контейнерного центра журналов приложений Docker
- Практика фреймворка RPC: Apache Thrift
- Практика фреймворка RPC: Google gRPC
- Построение микросервисного центра отслеживания цепочки вызовов
- Контейнеры Docker обмениваются данными между хостами
- Предварительное исследование кластера Docker Swarm
- Несколько рекомендаций по эффективному написанию Dockerfile