如何搭建代理服务器

一,背景
近期不少俄罗斯用户反馈网络异常。
计划新增两台欧洲代理服务器,将俄罗斯地区的流量通过代理转到国内。
 
二,TOA模块安装
2.1,检查是否有已安装TOA模块
lsmod |grep toa
 
已安装则跳过
2.2,查看当前内核版本号,确认依赖kernel-devel、kernel-headers是否安装以及版本号是否与内核一致
 
uname -r && rpm -qa |egrep 'kernel-devel|kernel-headers'
 
如果缺少这两个包,执行下面命令补全
安装内核开发包
sudo yum -y install kernel-devel-`uname -r`
2.3,下载并编译安装
wget http://pathx.cn-bj.ufileos.com/linux_toa.tar.gz
tar -zxvf linux_toa.tar.gz
cd linux_toa
安装gcc
sudo yum -y install gcc
make
(切记切换到root权限)
cp toa.ko /lib/modules/3.10.0-1160.11.1.el7.x86_64/kernel/net/netfilter/ipvs/toa.ko
insmod /lib/modules/3.10.0-1160.11.1.el7.x86_64/kernel/net/netfilter/ipvs/toa.ko
设置开机启动
vim /etc/rc.local
insmod /lib/modules/3.10.0-1160.11.1.el7.x86_64/kernel/net/netfilter/ipvs/toa.ko
 
检查是否成功启动
lsmod |grep toa
 
验证
nginx环境下,直接在nginx 日志中查看真实访问者地址的ip,日志路径: /var/log/nginx/access.log
三,如何su到root
 
1),
输入命令:su root,回车提示输入密码,怎么输入都不对
2),
给root用户设置密码:
命令:sudo passwd root
输入密码,并确认密码
3),
重新输入命令:su root
然后输入密码:
 
四,安装nginx
 
安装
yum -y install nginx
启动
service nginx start
停止
service nginx stop
重启
service nginx restart
 
五,修改nginx配置及代理转发
5.1 修改event参数。默认的 worker_connections 1024太小了
vim /etc/nginx/nginx.conf
    events {
    use epoll;
    worker_connections  40960;
}
 
    #新增include
    include include/*.conf;
    include include/*/vhost.conf;
 
5.2 新增 include/proxy.conf
#!nginx (-)
# proxy.conf
proxy_redirect          off;
#proxy_set_header        X-QIHOO-IP $remote_addr;
 
proxy_set_header Host "$http_host";
proxy_set_header X-Real-IP       $remote_addr;
proxy_set_header X-Forwarded-For  $proxy_add_x_forwarded_for;
 
proxy_connect_timeout   90;
proxy_send_timeout      90;
proxy_read_timeout      90;
proxy_buffer_size       4k;
proxy_buffers           4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
5.3, 新增 include/smart.360.cn.conf
#
#
#
 
upstream q_smart_ssl{
  server xxx:443;
  keepalive 300;
}
server {
  listen 443 ssl;
#  ssl on;
  server_name xxx;
  location / {
    proxy_set_header Host "$http_host";
    include include/proxy.conf;
    proxy_pass https://xxx_ssl;
    access_log /etc/nginx/logs/xxx_ssl-access.log;
    error_log /etc/nginx/logs/xxx_ssl-error.log;
  }
    ssl_session_cache  shared:SSL:50m;
    ssl_session_timeout  300;
    ssl_protocols  TLSv1.1 TLSv1.2;
    ssl_ciphers   ECDHE+ECDSA:ECDHE:AESGCM:AES:HIGH:MEDIUM:!kDH:!kECDH:!aNULL:!eNULL:!LOW:!MD5:!EXP:!DSS:!PSK:!SRP:!CAMELLIA:!IDEA:!SEED:!RC4:!3DES;
    ssl_prefer_server_ciphers  on;
    ssl_certificate     /etc/nginx/ssl/mult.xxx.cn.crt;
    ssl_certificate_key /etc/nginx/ssl/mult.xxx.cn.key;
}
 
 
六,参数调优
client_max_body_size         64m;       //限制请求体的大小. nginx对上传文件大小有限制,而且默认是1M.
 
client_body_buffer_size      256k;      //小于client_body_buffer_size直接在内存中高效存储。如果大于client_body_buffer_size小于client_max_body_size会存储临时文件
 
worker_rlimit_nofile 40960;             //进程最大打开文件数
 
 
 
 
 

原文地址:https://www.cnblogs.com/zhangyabin---acm/p/15105259.html