Если вы не возражаете против компиляции nginx из исходного кода, вы можете установить ngx_http_proxy_connect_module . Следующее сработало для меня в Debian 9 «Растянуть» на Raspberry Pi (после того, как я добавил URL-адреса deb-src в /etc/apt/sources.list и выполнил обновление apt-get):
cd /tmp &&
apt-get source nginx &&
git clone https://github.com/chobits/ngx_http_proxy_connect_module &&
cd nginx-* &&
patch -p1 < ../ngx_http_proxy_connect_module/proxy_connect.patch &&
sudo apt-get install libpcre3-dev &&
./configure --add-module=/tmp/ngx_http_proxy_connect_module &&
make && sudo make install
Затем отредактируйте /usr/local/nginx/conf/nginx.conf
и сделайте так, чтобы это выглядело так (я включил пример доменов, которые вы хотите заблокировать, который работает как с SSL, так и без SSL-прокси):
user www-data;
worker_processes auto;
events { }
http {
server_names_hash_bucket_size 128;
server {
listen 8888;
server_name spam.example.com *.spam.example.com;
server_name spam2.example.com *.spam2.example.com;
access_log off;
return 404;
}
server {
listen 8888;
server_name ~.+;
proxy_connect;
proxy_max_temp_file_size 0;
resolver 8.8.8.8;
location / {
proxy_pass http://$http_host;
proxy_set_header Host $http_host;
}
}
}
Тогда беги /usr/local/nginx/sbin/nginx
. Он вполне с радостью будет сосуществовать со стандартным nginx
пакетом Debian, если вы также используете рабочий веб-сервер на порту 80 и не хотите рисковать этим (но обязательно запустите /usr/local
версию отдельно при загрузке); альтернативно, с большей конфигурацией вы можете запустить обе службы из скомпилированного вами nginx. Но если вы настроите свой скомпилированный nginx на порт, на который ваш брандмауэр пропускает трафик, будьте осторожны, вам придется проверять обновления безопасности nginx вручную, так как система пакетов Debian больше не будет делать это за вас.