Nginx — це легке та високопродуктивне серверне програмне забезпечення, хоча й легке, але дуже потужне, його можна використовувати для надання WEB-сервісів, зворотного проксі, балансування навантаження, кешування, а також для створення 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 — якщо цікаво, можна експериментувати і грати.
Візуалізації:
Налаштуйте код:
|