一、为什么用Nginx搞正向代理?
很多人以为正向代理非得用专门软件才能实现,其实Nginx自带反向代理模块稍微改造下就能变身正向代理服务器。相比其他方案,Nginx的高并发处理能力和内存占用优化特别适合需要长期稳定运行的代理服务。比如咱们LoongProxy的骨干节点就大量采用Nginx架构,日均处理请求能到八位数级别。
二、手把手安装Nginx环境
先确认系统有没有装编译器套件,Ubuntu系记得敲这个:
sudo apt install build-essential
然后去官网拽源码包,推荐选主线版本(mainline):
wget http://nginx.org/download/nginx-1.25.3.tar.gz
tar zxvf nginx-1.25.3.tar.gz
编译时必须带上这两个模块:
- --with-http_ssl_module(支持HTTPS代理)
- --with-stream(四层代理必备)
./configure --with-http_ssl_module --with-stream
make && sudo make install
三、配置文件核心参数详解
打开/usr/local/nginx/conf/nginx.conf,在http块里加这段:
server {
listen 3128;
resolver 8.8.8.8;
location / {
proxy_pass $scheme://$http_host$request_uri;
proxy_set_header Host $http_host;
重点参数
proxy_connect_timeout 30s;
proxy_buffers 256 4k;
proxy_max_temp_file_size 0;
如果用LoongProxy的IP资源,这里填授权信息
proxy_set_header Authorization "Bearer your_loongproxy_token";
}
}
注意这三个坑:
1. resolver必须配置,否则报502错误
2. proxy_pass的变量写法要严格对照
3. 内存缓冲区根据实际业务调整,采集业务建议调大
四、结合LoongProxy的优势
直接暴露服务器IP容易遭封禁,这时候就该用上咱们的LoongProxy动态IP池。在Nginx配置里加入IP轮换逻辑:
proxy_set_header X-Forwarded-For $loongproxy_ip;
set $backend "http://$loongproxy_ip:端口";
配合他们的智能路由技术,能自动匹配最优线路。实测在电商数据采集场景,请求成功率从67%直接拉到92%以上。
五、实战调试技巧
启动服务后别急着用,先跑这几个检查:
| 检测项 | 命令 |
|---|---|
| 端口监听 | netstat -tunlp | grep nginx |
| 配置语法 | nginx -t |
| 访问日志 | tail -f /var/log/nginx/access.log |
sudo ufw allow 3128/tcp
六、常见问题QA
Q:代理服务器能连但没数据返回?
A:九成是DNS解析问题,检查resolver配置,建议换成114.114.114.114试试
Q:怎么提升传输速度?
A:两个方向优化:
1. 调大proxy_buffer_size参数(建议4k起步)
2. 使用LoongProxy的BGP混合线路,他们的多路复用技术能提速40%左右
Q:企业级应用要注意什么?
A:做好这三件事:
1. 配置访问白名单(allow/deny规则)
2. 定期轮换IP地址
3. 监控connection_errors指标
最后提醒下,长期运行建议搭配咱们LoongProxy的IP健康监测服务,他们的API能实时反馈IP可用状态,自动剔除失效节点,比传统轮询方式省心不少。
