Nếu bạn không nhớ biên dịch nginx từ nguồn, bạn có thể cài đặt ngx_http_proxy_connect_module . Phần sau hoạt động với tôi trong Debian 9 "Stretch" trên Raspberry Pi (sau khi tôi đã thêm URL deb-src vào /etc/apt/source.list và đã cập nhật 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
Sau đó chỉnh sửa /usr/local/nginx/conf/nginx.conf
và làm cho nó trông như thế này (Tôi đã bao gồm một ví dụ về các tên miền bạn muốn chặn, hoạt động với cả proxy SSL và proxy không 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;
}
}
}
Sau đó chạy /usr/local/nginx/sbin/nginx
. Nó sẽ khá vui vẻ cùng tồn tại với nginx
gói chứng khoán của Debian nếu bạn cũng đang chạy một máy chủ web sản xuất trên cổng 80 và không muốn mạo hiểm với điều đó (nhưng hãy đảm bảo khởi động /usr/local
phiên bản riêng khi khởi động); cách khác, với cấu hình nhiều hơn, bạn có thể chạy cả hai dịch vụ từ nginx bạn đã biên dịch. Nhưng nếu bạn cài đặt nginx đã biên dịch của mình để chạy trên một cổng mà tường lửa của bạn cho phép lưu lượng truy cập, hãy cẩn thận, bạn phải kiểm tra thủ công các bản cập nhật bảo mật nginx vì hệ thống gói Debian sẽ không còn làm điều đó cho bạn nữa.