ソースからnginxをコンパイルすることを気にしない場合は、ngx_http_proxy_connect_moduleをインストールできます。以下は、Raspberry PiでのDebian 9 "Stretch"で機能しました(deb-src URLを/etc/apt/sources.listに追加し、apt-get updateを実行した後):
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
ポート80で本番Webサーバーも実行していて、それをいじるリスクを避けたい場合は、Debianのストックパッケージと共存できます(ただし、起動時に/usr/local
バージョンを個別に起動するようにしてください)。または、より多くの構成を使用して、コンパイルしたnginxから両方のサービスを実行できます。ただし、ファイアウォールがトラフィックを許可するポートでコンパイルされたnginxを実行するように設定した場合、Debianパッケージシステムでは自動的に行われないため、nginxのセキュリティ更新を手動で確認する必要があることに注意してください。