Рубрики
Без рубрики

NGInscript: вверх по течению рандомер

Быстрое введение в том, как начать работу с nginxscript и создать простую функцию.

Автор оригинала: 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 Сценарий Отказ

Если кто-то нужен такой, как это, просто пинг меня в личном сообщении.

Алекс Полимат