使用Apache HTTP Server
启用模块并配置代理
-
加载模块: 打开Apache的配置文件
httpd.conf,添加以下内容:LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_http_module modules/mod_proxy_http.so
-
配置代理设置: 在
httpd.conf中添加或修改以下部分:# 启用 proxy 和 proxy_http 模块 ProxyRequests On ProxyVia Reverse # 配置代理URL ProxyPass /http://backend.example.com:808/ ProxyPassReverse /http://backend.example.com:808/ # 配置请求行处理 RequestHeader set X-Forwarded-For "Proxy-Client-HTTP/1.1"
-
启动Apache:
apachectl start
使用Nginx
Nginx配置相对简单,适合作为反向代理。
-
安装Nginx: 使用包管理器安装,并启动。
sudo apt-get install nginx sudo systemctl start nginx
-
配置Nginx: 打开
nginx.conf或创建新的配置文件proxy.confevents {} http { server { listen 80; server_name yourdomain.com; location / { proxy_pass http://backend.example.com:808; 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-Forwarded-Proto $scheme; } } } -
重新加载Nginx:
sudo systemctl reload nginx
使用Privoxy(匿名化代理)
Privoxy是一个轻量级的命令行代理,适合匿名化访问。
-
安装Privoxy: 使用包管理器安装。
sudo apt-get install privoxy
-
配置Privoxy: 打开
/etc/privoxy/privoxy.conf,添加以下内容:# 匿名化设置 if explicit_hostname { return 204 No Content; } if !explicit_hostname { forward / 127...1:108 . } -
启动Privoxy:
sudo privoxy -F
使用Varnish Cache(缓存代理)
Varnish可以作为高性能的缓存代理。
-
安装Varnish:
sudo apt-get install varnish
-
配置Varnish: 打开
varnish.vcl,添加以下内容:backend backend.example.com:808; sub "http://example.com" { pass; vcl 0.9; set req.http.X-Forwarded-Proto = "http"; } -
启动Varnish:
sudo systemctl start varnish
使用在线工具(简单快速)
-
Crossroads:轻量级的命令行工具,可以快速配置路由。
crossroads -a -p 800 crossroads --set=127...1:800
-
Let's Encrypt Cloudflare Workers:创建简单的代理,自动处理SSL。
const fetch = require('fetch'); const cf = require('cloudflare'); cf.config({ token: 'your-cloudflare-token', zone: 'yourdomain.com' }); cf.workers.create({ name: 'example', script: fetch -> return fetch('http://backend.example.com:808', { method: 'GET', headers: { 'X-Forwarded-Proto': 'https' } }).then(response => response.json()) });
使用Python(自定义代理)
-
使用Flask创建简单的代理服务器。
from flask import Flask, request, Response app = Flask(__name__) @app.route('/') def proxy(): return Response( request.url.replace('http://localhost:808/', ''), mimetype='text/plain' ) app.run(host='...', port=808)
配置SSL代理
-
使用Let's Encrypt获取免费证书。
sudo letsencrypt --register --expiring-days 90 sudo letsencrypt --issue -d example.com -n "your domain"
-
配置Nginx的SSL代理:
ssl { ssl_certificate /path/to/cert.pem; ssl_key_file /path/to/private.pem; proxy_set_header SSL $scheme; }
测试配置
使用curl或浏览器测试:
curl -I http://localhost:808 https://example.com
通过以上方法,你可以根据需求选择合适的HTTP代理配置方式,无论是匿名化、反向代理还是缓存,都可以通过这些方法实现。









