Инструменты пользователя

Инструменты сайта


setup_proxy

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
setup_proxy [13.07.2017 17:19]
phantom [Настройка proxy сервера]
setup_proxy [13.07.2017 17:26] (текущий)
phantom [Настройка proxy сервера]
Строка 3: Строка 3:
 **Настройка proxy сервера необходима только если используется вариант "proxy у оператора"​.** **Настройка proxy сервера необходима только если используется вариант "proxy у оператора"​.**
  
-**Настройку и тестирование работы proxy сервера ​(как правилоосуществляют наши специалисты.**+**Начальную настройку и тестирование работы proxy серверакак правилоосуществляют наши специалисты.**
  
 **Примеры конфигурации,​ приведенные ниже, являются лишь примерами. Конфигурация proxy сервера может отличаться в ту или иную сторону в зависимости от специфики клиента.** **Примеры конфигурации,​ приведенные ниже, являются лишь примерами. Конфигурация proxy сервера может отличаться в ту или иную сторону в зависимости от специфики клиента.**
Строка 59: Строка 59:
 Мы рекомендуем использовать nginx с поддержкой lua и headers_more. Ссылки на готовые пакеты находятся в конце текущего раздела. Мы рекомендуем использовать nginx с поддержкой lua и headers_more. Ссылки на готовые пакеты находятся в конце текущего раздела.
  
-Настройки ​DNS резолвера (необходимо использовать DNS сервера без RPZ)+DNS резолвер должен ​использовать DNS сервера без RPZ.
  
-<​code>​ +В каталоге /​var/​www/​cyberfilter/​pages/​ необходимо разместить страницы с сообщениями для пользователей:​
-resolver ​         8.8.8.8 8.8.4.4; +
-resolver_timeout ​ 5s; +
-</​code>​ +
- +
-Конфигурация основного виртуального сервера:​ +
- +
-<​code>​ +
-server { +
-        listen 0.0.0.0; +
-        server_name ~^.*$; +
- +
-        access_log /​var/​log/​nginx/​proxy_access_log main; +
-        error_log /​var/​log/​nginx/​proxy_error_log debug; +
- +
-        root /​var/​www/​cyberfilter+
- +
-        error_page 404 = @check; +
- +
- location / { +
- internal;​ +
- recursive_error_pages on; +
-+
-  +
- location /​redirects/​block/​ { +
-     internal; +
-     set $action "​block";​ +
-                    set $check_type $upstream_http_x_check_type;​ +
-                    set $unique_id $upstream_http_x_unique_id;​ +
-                    set $target_ip $upstream_http_x_target_ip;​ +
-     recursive_error_pages on; +
-     error_page 503 =503 /pages/block.html;​ +
-     return 503; +
-+
- +
- location /​redirects/​unknown/​ { +
-     internal; +
-     set $action "​unknown";​ +
-                    set $check_type $upstream_http_x_check_type;​ +
-                    set $unique_id $upstream_http_x_unique_id;​ +
-                    set $target_ip $upstream_http_x_target_ip;​ +
-     recursive_error_pages on; +
-     error_page 503 =503 /​pages/​block.html;​ +
-     return 503; +
-+
- +
- location /​redirects/​denied/​ { +
-     internal; +
-     set $action "​denied";​ +
-                    set $check_type $upstream_http_x_check_type;​ +
-                    set $unique_id $upstream_http_x_unique_id;​ +
-                    set $target_ip $upstream_http_x_target_ip;​ +
-     recursive_error_pages on; +
-     error_page 403 =403 /​pages/​denied.html;​ +
-     return 403; +
-+
- +
- location /​redirects/​error/​ { +
-     internal; +
-     set $action "​error";​ +
-                    set $check_type $upstream_http_x_check_type;​ +
-                    set $unique_id $upstream_http_x_unique_id;​ +
-                    set $target_ip $upstream_http_x_target_ip;​ +
-     recursive_error_pages on; +
-     error_page 500 =500 /​pages/​error.html;​ +
-     return 500; +
-+
- +
- location /​redirects/​notfound/​ { +
-     internal; +
-     set $action "​notfound";​ +
-                    set $check_type $upstream_http_x_check_type;​ +
-                    set $unique_id $upstream_http_x_unique_id;​ +
-                    set $target_ip $upstream_http_x_target_ip;​ +
-     recursive_error_pages on; +
-     error_page 404 =404 /​pages/​notfound.html;​ +
-     return 404; +
-+
- +
- location /​redirects/​config/​ { +
-     internal; +
-     set $action "​config";​ +
-                    set $check_type $upstream_http_x_check_type;​ +
-                    set $unique_id $upstream_http_x_unique_id;​ +
-                    set $target_ip $upstream_http_x_target_ip;​ +
-     recursive_error_pages on; +
-     error_page 500 =500 /​pages/​config.html;​ +
-     return 500; +
-+
- +
- location /​redirects/​proxy/​ { +
-     internal; +
-     set $action "​proxy";​ +
-                    set $check_type ​    ​$upstream_http_x_check_type;​ +
-                    set $unique_id ​     $upstream_http_x_unique_id;​ +
-                    set $target_ip ​     $upstream_http_x_target_ip;​ +
-     proxy_pass http://​$host$request_uri;​ +
-     proxy_buffering off;​ +
-     proxy_cache off;​ +
-     proxy_set_header Host $host; +
-     proxy_http_version 1.1;​ +
-+
- +
- location @check { +
-     set $action "​error";​ +
-                    set $check_type ​    "​api";​ +
-                    set $unique_id ​     "​${pid}-${connection}-${msec}";​ +
-                    set $target_ip ​     "";​ +
-                    proxy_pass ​         http://​api-proxy.cyberfilter.ru$request_uri;​ +
-                    proxy_buffering ​    ​off;​ +
-                    proxy_cache ​        ​off;​ +
-                    proxy_set_header ​   Host $host; +
-                    proxy_set_header ​   X-Real-IP $remote_addr;​ +
-                    proxy_set_header ​   X-Forwarded-For $proxy_add_x_forwarded_for;​ +
-                    proxy_set_header ​   X-Request-Id $unique_id;​ +
- +
-                    proxy_set_header ​   Content-Length "";​ +
-                    proxy_pass_request_body off; +
-                } +
-        } +
-</​code>​ +
- +
-Конфигурация дополнительного (для запросов на сети с полной блокировкой и порты отличные от HTTP/HTTPS) виртуального сервера:​ +
- +
-<​code>​ +
-server { +
-        listen 0.0.0.0:​9000;​ +
-        server_name ~^.*$; +
- +
-        access_log /​var/​log/​nginx/​block_access_log main; +
-        error_log /​var/​log/​nginx/​block_error_log warn; +
- +
-        root /​var/​www/​cyberfilter;​ +
- +
-        error_page 404 = @block; +
- +
-        location / { +
-                internal; +
-                recursive_error_pages on; +
-                } +
- +
-        location @block { +
-                set $action ​        "​block";​ +
-                set $check_type ​    "​network";​ +
-                set $unique_id ​     "​${pid}-${connection}-${msec}";​ +
-                set $target_ip ​     "";​ +
-  +
-                error_page 503 =503 /​pages/​block.html;​ +
-                return 503; +
-+
-        } +
-</​code>​ +
- +
-Дополнительное логирование:​ +
- +
-<​code>​ +
-log_format main +
- '​$remote_addr - $remote_user [$time_local] ' +
- '"​$unique_id"​ "​$check_type"​ "​$action"​ "​$target_ip"​ ' +
- '"​$host"​ "​$request"​ $status $bytes_sent ' +
- '"​$http_referer"​ "​$http_user_agent"​ ' +
- '"​$gzip_ratio"';​ +
-</​code>​ +
- +
-Далее ​необходимо ​в каталоге /​var/​www/​cyberfilter/​pages/ ​разместить страницы с сообщениями для пользователей:​+
  
   * block.html - водится при попытке доступа на запрещенный ресурс   * block.html - водится при попытке доступа на запрещенный ресурс
setup_proxy.1499951986.txt.gz · Последние изменения: 13.07.2017 17:19 — phantom

Инструменты страницы