Адрес фактического центра электронной коммерции SpringBoot (25k+star):GitHub.com/macro-positive/…
Резюме
В этой статье мы объясним использование Nginx в среде Docker с трех точек зрения: обратный прокси-сервер, сжатие файлов и перезапись адресов!
Установка в среде Docker
Скачайте докер-образ nginx
docker pull nginx:1.10
Скопируйте конфигурацию nginx из контейнера
- Сначала запустите контейнер один раз (чтобы скопировать файл конфигурации):
docker run -p 80:80 --name nginx \
-v /mydata/nginx/html:/usr/share/nginx/html \
-v /mydata/nginx/logs:/var/log/nginx \
-d nginx:1.10
- Скопируйте файл конфигурации в контейнере в указанную директорию:
docker container cp nginx:/etc/nginx /mydata/nginx/
- Измените имя файла:
mv nginx conf
- Завершите работу и удалите контейнер:
docker stop nginx
docker rm nginx
Начните с команды docker
docker run -p 80:80 --name nginx \
-v /mydata/nginx/html:/usr/share/nginx/html \
-v /mydata/nginx/logs:/var/log/nginx \
-v /mydata/nginx/conf:/etc/nginx \
-d nginx:1.10
обратный прокси
Обратный прокси-сервер означает, что при доступе к вашему прокси-серверу прокси-сервер перенаправит ваш запрос, который может быть перенаправлен на статический путь к ресурсу или на динамический интерфейс службы. Давайте возьмем проксирование доменных имен в качестве примера, чтобы поговорить о том, как выполнять статическое проксирование и динамическое проксирование.
статический прокси
Статический прокси предназначен для проксирования запросов к разным путям статических ресурсов, здесь мы
docs.macrozheng.com
Запрос, переданный в мой проект документации, дляmall.macrozheng.com
Запрос проксируется во внешний проект торгового центра.
- Во-первых, мы модифицируем хост-файл этой машины:
192.168.6.132 docs.macrozheng.com
192.168.6.132 mall.macrozheng.com
- Затем загрузите наш проект документа и интерфейсный проект торгового центра в каталог html nginx и распакуйте его:
- существует
/mydata/nginx/conf/conf.d
Добавьте файл конфигурации docs.conf в папку для обратного проксирования проекта документации:
server {
listen 80;
server_name docs.macrozheng.com; #修改域名
location / {
root /usr/share/nginx/html/docs; #代理到docs文件夹中
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
- существует
/mydata/nginx/conf/conf.d
Добавьте файл конфигурации mall.conf в папку для реверсивного проксирования фронтенд-проекта mall:
server {
listen 80;
server_name mall.macrozheng.com; #修改域名
location / {
root /usr/share/nginx/html/mall; #代理到mall文件夹中
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
- Перезапустите службу nginx:
docker restart nginx
- пройти через
docs.macrozheng.com
Теперь у нас есть доступ к нашему проекту документации:
- пройти через
mall.macrozheng.com
Вы можете получить доступ к внешнему проекту торгового центра:
Динамический прокси
Динамический прокси — перенаправить запрос прокси-сервера на другой сервис, здесь мы
api.macrozheng.com
Прокси запроса к фоновой службе mall-admin.
- Во-первых, мы модифицируем файл хоста этой машины и добавим следующие правила:
192.168.6.132 api.macrozheng.com
- существует
/mydata/nginx/conf/conf.d
Добавьте файл конфигурации api.conf в папку, чтобы проксировать запрос к удаленному сервису mall-admin:
server {
listen 80;
server_name api.macrozheng.com; #修改域名
location / {
proxy_pass http://120.27.63.9:8080; #修改为代理服务地址
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
- После перезапуска службы nginx пройдите
api.macrozheng.com/swagger-ui.html
Вы можете получить доступ к странице документации по API в mall-admin:
сжатие файлов
Если мы арендуем сервер с очень низкой пропускной способностью, скорость доступа к веб-сайту будет очень низкой.В настоящее время мы можем улучшить скорость доступа к веб-сайту, включив nginx для открытия GZIP-сжатия. В качестве примера мы возьмем интерфейсный проект торгового центра, чтобы продемонстрировать эффект ускорения.
-
Во-первых, мы ограничиваем скорость nginx и ограничиваем скорость доступа каждого соединения до 128 КБ, чтобы создать сценарий относительно медленного доступа;
-
Измените файл конфигурации mall.conf для выполнения операций ограничения скорости:
server {
listen 80;
server_name mall.macrozheng.com;
limit_rate 128k; #限制网速为128K
location / {
root /usr/share/nginx/html/mall;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
- Фронтенд проект для торгового центра
mall.macrozheng.com
Для доступа мы можем обнаружить, что на веб-сайте есть относительно большой файл js, который необходимо загрузить в течение 12 секунд:
- nginx возвращает информацию заголовка запроса следующим образом:
- Исправлять
/mydata/nginx/conf
в каталогеnginx.conf
Файл конфигурации, включите сжатие GZIP;
http {
gzip on; #开启gzip
gzip_disable "msie6"; #IE6不使用gzip
gzip_vary on; #设置为on会在Header里增加 "Vary: Accept-Encoding"
gzip_proxied any; #代理结果数据的压缩
gzip_comp_level 6; #gzip压缩比(1~9),越小压缩效果越差,但是越大处理越慢,所以一般取中间值
gzip_buffers 16 8k; #获取多少内存用于缓存压缩结果
gzip_http_version 1.1; #识别http协议的版本
gzip_min_length 1k; #设置允许压缩的页面最小字节数,超过1k的文件会被压缩
gzip_types application/javascript text/css; #对特定的MIME类型生效,js和css文件会被压缩
include /etc/nginx/conf.d/*.conf;
}
- Снова о фронтенд-проекте торгового центра
mall.macrozheng.com
После посещения мы можем обнаружить, что файл js был сжат, а время загрузки сократилось до 3,88 с, что примерно в 3 раза быстрее:
- nginx возвращает добавленный заголовок запроса
Content-Encoding: gzip
Информация:
перезапись адреса
Иногда наш веб-сайт менял доменное имя, но все еще есть пользователи, использующие для доступа старое доменное имя.В настоящее время адрес nginx можно переписать, чтобы пользователи могли перейти на новое доменное имя для доступа.
-
Например, мы использовали
docs.macrozheng.com
Это доменное имя больше не нужно, и теперь оно изменено наwww.macrozheng.com
Приходите посетить проект документации; -
Измените файл конфигурации docs.conf и перепишите адрес с параметрами на новый адрес:
server {
listen 80;
server_name docs.macrozheng.com;
rewrite "^/(.*)$" http://www.macrozheng.com/$1; #地址重写到新地址
location / {
root /usr/share/nginx/html/docs;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
- Посетите старое доменное имя в это время
docs.macrozheng.com
перейдет прямо кwww.macrozheng.com
идти с.
публика
проект торгового центраПолный набор учебных пособий сериализуется,Обратите внимание на публичный аккаунтПолучите это прямо сейчас.