Nginx — это лёгкое и высокопроизводительное серверное программное обеспечение, хотя и лёгкое, но очень мощное, оно может использоваться для предоставления веб-сервисов, обратного прокси, балансировки нагрузки, кэширования и даже для создания RTMP-стриминговых сервисов путём добавления некоторых модулей. Недавно я столкнулся с спросом со стороны клиента и понадобился воспользоваться модулем замены веб-контента nginx, ниже приведена запись соответствующего эксперимента, опубликованная для связи с вами. Если есть какие-либо недостатки, пожалуйста, укажите.
ngx_http_sub_module модуль — это фильтр, который изменяет строки в содержимом ответов сайта. Этот модуль уже встроен в nginx, но по умолчанию он не установлен, и для установки нужно добавить параметры конфигурации: --with-http_sub_module Если вы уже установили nginx, достаточно добавить только этот модуль.
1. Установка:
Официальный пакет загрузки и установки на сайте nginx:Вход по гиперссылке виден.
# wgetВход по гиперссылке виден.
# tar -zxvf nginx-1.11.5.tar.gz
# CD nginx-1.11.5
# ./configure --with-http_stub_status_module --with-http_sub_module && make && make install
2. Распространённые инструкции:
2.1 sub_filter Инструкции: замена sub_filter строки (оригинальная строка) (строка для замены);
Для установки необходимости заменить строку описания на строку описания. Строка — это строка, которую нужно заменить, замена — новая строка, в которой могут быть переменные.
2.2 sub_filter_last_modified Инструкция: sub_filter_last_modified на | не так;
Он используется для настройки изменения замены на веб-странице, которая может быть настроена в трёх местах: http, server и location в nginx.conf, при этом значение по умолчанию отклонено.
2.3 sub_filter_onceДиректива: sub_filter_once на | не так;
Используется для установки количества замен струн,По умолчанию он заменяется только один раз. Если он включён, по умолчанию заменяется только первый, сопоставленный с персонажем, а если он отключён, то все соответствующие персонажи будут заменены;
2.4 sub_filter_types Инструкция: sub_filter_types *
Используется для указания типа MIME, который нужно заменить, по умолчанию — «text/html», если установлено на *, то all;
Примечание: приведённую выше команду можно настроить в http, server и location в nginx.conf.
3. Обратная динамическая замена веб-контента примера ссылки:
Вверх по течениюВход по гиперссылке виден. {
сервер 118.184.180.46:80;
}
#反向代理, если у вас несколько IP-адресов серверов, вы также можете добавить политики, такие как метод балансировки нагрузки и вес #
server {
слушать 80;
#监听端口 #
server_nameВход по гиперссылке виден.;
#设置server имя #
CHARSET UTF-8;
#设置字符编码为utf-8, которые можно скорректировать в зависимости от реальной ситуации #
Местоположение / {
proxy_passВход по гиперссылке виден.$request_uri;
#反向代理规则 #
proxy_set_header Кодировка Accept-Encoding — сдувание;
#设置反向代理头部 иногда исходный сервер реагирует на формат gzip, и возникают проблемы при его замене, которые можно решить с помощью этого элемента #
subs_filter '183.251.160.127' '123.181.128.17';
#替换指定ip замените здесь 183.251.160.127 на 123.181.128.17 #
subs_filter «Фуцзянь, городская мобильная компания», «Телеком провинции Хэбэй, город Таншань»;
#替换城市. Информация оператора: этот заменяющий модуль nginx поддерживает китайскую замену #
subs_filter_types текст/html;
#指定被替换的MIME类型 #
sub_filter_once дальше;
#指定字符串替换次数, on означает замену только первого совпадающего персонажа, а off — для замены всех соответствующих символов #
}
}
Иллюстрировать:
1. Этот модуль не чувствителен к регистру;
2. Поддержка китайской замены;
Полная конфигурация Nginx.conf:
Скриншот экспериментального эффекта:
Заключение:
Ещё один похожий модуль по замене контента nginx_substitutions_filter, если интересно, можно экспериментировать и играть.
Визуализации:
Настройте код:
|