反向代理服务器的配置及管理
Author:李洪涛
Mail:lht821008@163  lihongtao@tansun
反向代理软件:nginx
主要支持的协议http、https、pop3、smtp、imap等
一、引言
Nginx介绍
Nginx发音为[engine x],是由俄罗斯人Igor Sysoev建立的项目,基于BSD许可。
据说他当初是F5的成员之一,英文主页:nginx/。俄罗斯的一些大网站已经使用它超过两年多了, 一直表现不凡,从nginx的网站也能了解到,国内很多的大型门户网站已经都在使用,比如网易、新浪、腾讯等。所以nginx的使用已经有一些成功的案例,这为我们使用这个代理软件提供了很好的背景。
二、反向代理服务器的作用
目前来说反向代理服务器基于安全和性能两个主要的方面考虑,下面是一个反向代理的拓扑模型:
2.1基于安全:
    云客户端发来的请求不是直接的与内容服务器、数据库或者应用通信,他们首先到达反向代理服务器,防火墙只授信反向代理服务器与内容服务器等的内部真实服务器的通信,
这样就使得内部真实的服务器受到了保护,代理服务器成为一道屏障,来自云端的攻击最多到达反向代理这个环节。
2.3 基于性能
    起到高速缓冲加速的功能。反向代理服务器可以在实现缓存云端访问实际应用过程中各种数据,当云端用户访问的数据已经在反向代理中缓存,那么反向代理会很快响应用户的请求,而不必转发请求到真实的内部服务器上去再次提取。对于应用来说这样的架构就起到了一个加速缓冲的作用。
三、Nginx的安装
下载nginx的源包: 下载当前稳定版
解包:tar zxvf **.或者tar –xvf **.
进入加压后的包,执行安装配置:
1. ./configure \
2.         --prefix=/usr/local/php-fcgi \
3.         --with-web_mail \
4.         --with-http_ssl_moudel \
5.         --enable-fastcgi \
6.         --enable-discard-path \
7.         --enable-force-cgi-redirect \
8.         --with-config-file-path=/usr/local/php-fcgi/etc \
9.         --enable-zend-multibyte \
10.         --with-mysql=/usr/local/mysql \
11.         --with-libxml-dir=/usr/local/libxml2 \
12.         --with-gd=/usr/local/gd2 \
13.         --with-jpeg-dir \
14.         --with-png-dir \
15.         --with-bz2 \
16.         --with-freetype-dir \
17.         --with-iconv-dir \
18.         --with-zlib-dir  \
19.         --with-openssl=/usr/local/openssl \
20.         --with-mcrypt=/usr/local/libmcrypt \
21.         --enable-sysvsem \
22.         --enable-inline-optimization \
23.         --enable-soap \
24.         --enable-gd-native-ttf \
25.         --enable-ftp \
26.         --enable-mbstring \
27.         --enable-exif \
28.         --disable-debug \
29.         --disable-ipv6
30.
对于我们的nginx最主要的是需要这两个参数:
31.         --with-web_mail \
32.         --with-http_ssl_moudel \
编译:
make
安装:
中国梦想秀唐恬恬超酷英文网名
make install
四、nginx配置
    修改配置文件:/etc/nginx/f 路径在安装路径下,我在其中做详细解析;
将下面的“worker_processes  1”改成“worker_processes  5”。
user  nginx nginx;  //如果为nginx设置了相应的用户和组,需要在这里设定
worker_processes  1; //启动进程,这个可以根据nginx所在服务器的配置设定
//日志的记录格式,下面是针对error日志
error_log  logs/error.log;神诸葛
error_log  logs/error.log  notice;
error_log  logs/error.log  info;
pid  logs/nginx.pid;  //pid文件放置的位置
//工作模式及连接数上限,这个结合操作系统限制上限来设置
events {
    use epoll;
    worker_connections  1024;
}
//配置邮件代理服务
mail {
  auth_http  127.0.0.1:8080/mail/auth.php;  //pop、smtp、imap等用户跳转验证脚本页面
  pop3_capabilities  "TOP"  "USER";
  imap_capabilities  "IMAP4rev1"  "UIDPLUS";
  server {
    listen    110;
    protocol  pop3;
    proxy      on;
  }
  server {
    listen    143;
    protocol  imap;
    proxy      on;
  }
  server {
    listen    25;
    protocol  smtp;
    proxy      on;
  }
}
范冰冰8亿//配置http代理服务的部分
http {
      include  pes; // pes设置访问的文件类型
      default_type  application/octet-stream;
     
      //设定客户端响应超时大小等策略
      client_header_timeout 3m;
      client_body_timeout 3m;
      send_timeout  3m;
      sendfile  on;
      tcp_nopush  on;
      tcp_nodelay  on;
      keepalive_timeout  65;
    //反向代理虚拟主机设定
  server {
            listen      80; //反向代理监听80端口
            server_name  mail.hxb;  //反向代理域名
            location / {
            proxy_pass        smtp.hxb/; //访问mail.hxb方向代理会转向到的实际服务域名smtp.hxb/
            proxy_redirect default;
        }
        }
//下面和上面类似,只是建立了多个虚拟主机
  server {
        listen      80;
        server_name  mail1.hxb;
        location / {
        proxy_pass        mail1.hxb/;
        proxy_redirect default;
韩安冉为什么离婚        }
        }
  server {
        listen      80;
        server_name  mail2.hxb;
        location / {
        proxy_pass        mail2.hxb/;
        proxy_redirect default;
        }
        }
李云迪王力宏绯闻  server {
        listen      80;
        server_name  mail3.hxb;
        location / {
        proxy_pass        mail3.hxb/;
        proxy_redirect default;
        }
        }
  server {
        listen      80;
        server_name  mail4.hxb;
        location / {
        proxy_pass        mail4.hxb/;
        proxy_redirect default;
        }
        }
  server {
        listen      80;
        server_name  mail5.hxb;
        location / {
        proxy_pass        mail5.hxb/;
        proxy_redirect default;
        }
        }
  server {
        listen      80;
        server_name  mail6.hxb;
        location / {
        proxy_pass        mail6.hxb/;
        proxy_redirect default;
        }
        }   
      server {
        listen      80;
        server_name  124.127.119.132;
        location /NginxStatus {
              stub_status on;
              access_log on;
              auth_basic "NginxStatus";
              auth_basic_user_file htpasswd;
        }
        error_page  500 502 503 504  /50x.html;
        location = /50x.html {
            root  html;
        }
    }   
}
五、Nginx的管理
检查nginx配置文件语法:nginx –t 首先必须定位到启动文件路径下;
检查版本:nginx –v,首先必须定位到启动文件路径下;
检查安装选用的选项:nginx –V
如果nginx被加入到了系统服务启动项中在采用下面的方式:
Nginx的启动和关闭:
Service nginx start
Service nginx stop
如果没有,则进入到nginx的/etc/nginx/sbin路径下:
启动采用./nginx &
关闭采用:kill -9 进程号
通过下面命令查看进程号:ps –ef|grep nginx
六、mail代理服务器代理脚本部署
到以上脚本处的auth_http  127.0.0.1:8080/mail/auth.php;此脚本为mail代理实现的脚本具体的url位置,官方建议采用php脚本来实现,采用apache作为web引擎。
具体脚本放在apache目录下:/srv/www/htdoc/mail/auth.php
七、Nginx的调优配置
需要测试得知;
有待补充。