Автор оригинала: Alex Polymath.
Предисловие
Несколько месяцев назад я создал Nginx Настроен, который перенаправлен Каждый запрос Для случайного прокси из списка. Эта функция была реализована чисто внутри Nginx Config с плагином JavaScript. Позвольте мне показать вам, как начать с самого nginxscript и внедрять простую функцию, такую как Randomizer внутри конфигурации. Эта настройка была установлена на Ubuntu 16.04.
Установка Nginx & NgInscript
Шаг 1
sudo apt-get update wget http://nginx.org/keys/nginx_signing.key sudo apt-key add nginx_signing.key
Шаг 2
Добавить в конец файла/etc/apt/sources.list
deb http://nginx.org/packages/ubuntu/ xenial nginx deb-src http://nginx.org/packages/ubuntu/ xenial nginx
Шаг 3
sudo apt-get update sudo apt-get install nginx sudo apt-get install nginx-module-njs
Процесс установки завершен.
Настройка конфигурации
Шаг 1
Создать Script.js Файл внутри /etc/nginx/ Папка И поместите этот код внутри него.
var list = [
"201.140.132.34:8080",
"50.233.137.34:80",
"204.52.206.65:8080",
"75.114.77.38:8080",
"50.233.137.33:80",
"52.8.41.246:3128",
"198.50.168.210:80",
"173.192.21.89:80",
"75.114.77.35:8080",
"206.81.5.117:8080"
]
function random(){
var index = Math.floor(list.length * Math.random());
return list[index];
}
Шаг 2 Теперь дайте модифицируйте /etc/nginx/nginx.conf Поместите следующий код там.
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
load_module modules/ngx_http_js_module.so;
load_module modules/ngx_stream_js_module.so;
events {
worker_connections 1024;
}
stream {
js_include script.js;
js_set $proxy random;
server {
listen 53;
proxy_responses 1;
proxy_timeout 20s;
proxy_pass $proxy;
}
}
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;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
#
#include /etc/nginx/conf.d/*.conf;
}
В основном это это. Все сделано. Просто запустите это команда :
sudo service nginx restart
И последние изменения будут применены.
ПРИМЕЧАНИЕ!
Я взял список публичных прокси. Но они не являются супер стабильными. Вот почему мне нужно было часто следить за каждым из них и обновлять список доступных. Это было реализовано с Python и Bash Сценарий Отказ
Если кто-то нужен такой, как это, просто пинг меня в личном сообщении.
Алекс Полимат