安装Nginx
选择Nginx作为反向代理服务器,因为它在Linux环境中广泛使用且配置简单。
CentOS/RHEL系统:
sudo yum install nginx
安装完成后:
sudo systemctl start nginx sudo systemctl enable nginx
配置Nginx作为反向代理
创建配置文件 /etc/nginx/sites-available(proxy.conf):
server {
listen 0...:80;
client_max_body_size 10m;
server_name your_domain.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;
keepalive 100;
proxy_cache "cache";
proxy_cache_valid 200 302 10m;
proxy_cache_valid 404 1m;
add_header X-Frame-Options "DENY";
}
}
启用配置并重启Nginx:
sudo a2ensite proxy.conf sudo systemctl restart nginx
管理代理节点状态
检查Nginx状态:
curl -I http://localhost:80
查看当前连接数:
netstat -tuln | grep 80
或
ss -nl | grep 80
查看日志:
tail -f /var/log/nginx/access.log
或查找特定错误:
grep -i error /var/log/nginx/error.log
性能优化
启用keepalive: 确保keepaliveDirective设置为on:
keepalive on;
缓存配置: 在location块中添加:
proxy_cache "cache" levels=1:2 keys_zone=cache:shadow_size=256m:max_size=1m;
使用Gunicorn: 安装并运行:
pip install gunicorn gunicorn --bind 0...:80 --workers 4 --geventle --timeout 10s wsgi_application:app
负载均衡
轮询法: 在location /中添加:
proxy_balance 1; proxy_next_level balance 1;
IP哈希法: 在server块中添加:
listen 80; server_name server1.example.com server2.example.com;
集群管理
使用Ansible: 创建playbook:
- name: deploy nginx
hosts: all
tasks:
- copy: src=templates/nginx.conf dest=/etc/nginx/sites-available/
- system: restart nginx
监控与日志管理
Prometheus与Grafana: 部署监控工具,配置指标收集,生成图表。
ELK Stack: 配置日志收集器,集中存储和分析Nginx日志。
安全配置
访问日志: 设置访问日志,限制请求大小:
access_log on; client_max_body_size 10m;
SSL/TLS: 为防止中间人攻击,建议使用SSL:
listen 443 ssl; ssl on; ssl_certificate /path/to/cert.pem; ssl_key_file /path/to/private.pem;
权限管理: 确保Nginx运行用户有足够权限:
chown -R nginx:nginx /etc/nginx/ chmod 644 /etc/nginx/
故障排除
错误信息: 查阅Nginx日志,解决配置错误。
权限问题: 检查Nginx配置文件权限:
chmod 644 /etc/nginx/sites-available/proxy.conf
连接被拒绝: 检查防火墙:
sudo firewall-list sudo firewall-open 80
持续学习
- 掌握更多反向代理服务器的优化方法。
- 学习高级负载均衡算法,如轮询、IP哈希、加权。
- 掌握自动化工具如Ansible、Chef、Puppet的高级配置。
通过实践和不断学习,您可以有效管理和优化Linux代理节点,满足不同应用场景的需求。




