Squid
Squid 是一个常用的代理服务器软件,支持 HTTP 和 HTTPS。
安装
sudo apt-get install squid3
配置
- 打开 Squid 的配置文件:
sudo nano /etc/squid3/squid.conf
- 配置基本参数:
- listener_port:设置监听的端口,80:
listener_port 80
- server port:设置后端服务器的端口,808:
server_port 808
- proxy_port:设置代理服务器的本地端口,3128:
proxy_port 3128
- listener_port:设置监听的端口,80:
- 配置访问控制:
- 允许访问特定网站:
allow_access 127...1 allow_access 192.168.1./24
- 禁止访问外部:
deny_all allow_to_localhost only_client 127...1
- 允许访问特定网站:
- 保存并退出编辑器。
- 启动和启用服务:
sudo systemctl start squid3 sudo systemctl enable squid3
验证
- 使用浏览器访问
http://localhost:3128,检查是否正常工作。 - 测试通过代理服务器的 URL,如
http://example.com。
管理
- 使用
sudo squid3 -M查看状态和信息。 - 使用
sudo squid3 -m清除缓存。
Nginx
Nginx 是一个高性能的反向代理服务器,也支持代理 HTTP 和 HTTPS。
安装
sudo apt-get install nginx
配置
- 打开 Nginx 的配置文件:
sudo nano /etc/nginx/sites-available/default
- 配置服务器块:
server { listen 80; server_name your_domain.com; proxy_pass http://backend_server:backend_port; proxy_set_header Host backend_server; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; access_log logs/nginx/log/nginx.log; } - 启用网站:
sudo ln -s /etc/nginx/sites-available/default /etc/nginx/sites-enabled/
- 重启 Nginx:
sudo systemctl restart nginx
验证
- 访问
http://your_domain.com,检查是否正确代理到后端服务器。 - 使用浏览器检查响应头中的代理信息。
高级配置
- 启用 SSL:
ssl on; ssl_protocols TLS:SSL:TLSv1.2 TLSv1.3; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-EEC:AECDHE-RSA-AES256-EEC; ssl_prefer_server_ciphers on; ssl_session_cache shared:SSL:10m; ssl_session_timeout 10m; ssl_crl_volume "50M";
- 设置访问控制:
location / { deny all; allow 127...1; allow 192.168.1./24; }
Apache
Apache 也可以用作代理服务器,通常用于更复杂的负载均衡和反向代理。
安装
sudo apt-get install apache2
配置
- 打开 Apache 的配置文件:
sudo nano /etc/apache2/sites-available/000-default.conf
- 配置虚拟主机:
<VirtualHost *:80> ProxyRequests On ProxyPass / http://backend_server:backend_port/ ProxyPassReverse / AllowReverseProxy On RequestHeader set X-Real-IP " $remote_addr " RequestHeader set X-Forwarded-For " $proxy_add_x_forwarded_for " RequestHeader set X-Forwarded-Proto " $scheme " <Proxy:MTTP> ProxyAddXForwarded For </Proxy:MTTP> LogLevel proxy:debug CustomLog "logs/your_domain_access.log" combined </VirtualHost> - 启用网站:
sudo a2ensite 000-default sudo systemctl restart apache2
验证
- 访问
http://your_domain.com,检查是否正确代理到后端服务器。 - 查看日志:
tail -f logs/your_domain_access.log
Traefik
Traefik 是一个现代化的反向代理服务器,支持云原生应用。
安装
docker run -p 80:80 -p 443:443 --restart always traefik
配置
-
创建 Traefik 配置文件:
# /etc/traefik.toml 或 Traefikfile [global] port = 80 [entryPoints] - "http" - "https" [redir] - [entryPoint: http] to = https://your_domain.com [proxies] - [proxies] - source = "your_domain.com" - destination = "backend_server:backend_port"
-
重新应用配置:
traefik apply
Cloudflare Worker
Cloudflare Workers 是基于事件驱动的代理服务器,适合在 Cloudflare 上部署。
配置
- 在 Cloudflare Worker 门户上创建 Worker,选择你的域名和路径。
- 配置路由规则,设置代理到后端服务器。
- 使用 Cloudflare 的设置界面配置缓存、SSL 和其他高级选项。
Varnish
Varnish 是一个高性能的 HTTP accelerator 和缓存服务器,常用于反向代理。
安装
sudo apt-get install varnish
配置
- 打开 Varnish 的配置文件:
sudo nano /etc/varnish/default.vcl
- 配置应用程序:
backend default { server "backend_server"; port "backend_port"; } map / { proxy_pass backend default; } - 启用 Varnish:
sudo systemctl start varnish sudo systemctl enable varnish
验证
- 访问
http://your_domain.com,检查是否正确代理到后端服务器。 - 查看 Varnish 日志:
sudo tail -f /var/log/varnish.log
选择合适的代理服务器软件取决于你的需求,
- 简单代理:Squid 或 Nginx。
- 高级负载均衡:Traefik 或 Cloudflare Worker。
- 缓存优化:Varnish。
在配置过程中,记得根据你的服务器环境和后端需求进行调整,例如设置正确的监听端口、SSL配置、访问控制等。




