【阿里ECS】Nginx实现反向代理和负载均衡的配置及优化

来源:互联网 发布:sqlserver取消自增列 编辑:程序博客网 时间:2024/06/15 11:58
概述:反向代理是指的,服务器代理网络上的客户机请求,将请求转达给内部真实服务器,然后在返回给Internet客户端,代理服务器上面没有任何网页资料。反向代理和正向代理没有冲突,可以在防火墙设备中同时使用这两种结合,正向代理可以进行过滤,保护内部网络安全。软件七层负载均衡大多是基于HTTP反向代理,Nginx反向代理能够支持虚拟主机,可以按照轮询,IP哈希,URL哈希,权重方式对后端服务器做负载均衡,还支持后端服务器健康检查。常见的Web负载均衡方法:1、 DNS轮询:将同一个主机名添加多个A记录,DNS将解析请求安装A记录的顺序,随即分配到不同的IP上,使用dig baidu.com 就可以看到不同的A记录对应的IP地址。缺点:可靠性低,其中一台出现故障,就不会给予回应,就算从DNS去掉该服务器IP,但是也会保存在各地区的ISP众多的DNS缓存中。系统股灾不均衡,使用简单轮询,不能计算出服务器的负载差异,所以有可能客户集中请求到其中某一台服务器。2、F5、LVS、DNS只能解析这里不做讲述配置环境:三台CentOS5.3,一台做nginx代理,2台apache做页面测试。apache端口改为:8080,nginx使用80口接收客户请求。第1部分:安装1 建立用户及组/usr/sbin/groupadd www/usr/sbin/useradd -g www www2 安装pcre 让nginx支持rewrite 方便以后所需wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-7.8.tar.gztar zxvf pcre-7.8.tar.gzcd pcre-7.8/./configuremake && make install3 安装nginxwget http://sysoev.ru/nginx/nginx-0.7.58.tar.gztar zxvf nginx-0.7.58.tar.gzcd nginx-0.7.58/./configure --user=www --group=www --prefix=/usr/local/webserver/nginx --with-http_stub_status_module --with-http_ssl_module --with-cc-opt='-O2' --with-cpu-opt=opteronmake && make install#注意上文中的--with-cc-opt='-O2' --with-cpu-opt=opteron 这是编译器优化,目前最常用的是-02 而不是3.后面对应CPU的型号,可参照:http://wiki.gentoo.tw/index.php/HOWTO_CFLAG2部分:配置及优化配置文件1 nginx.conf 配置文件:user    www www;worker_processes 4;# [ debug | info | notice | warn | error | crit ]error_log    /usr/local/webserver/nginx/logs/nginx_error.log    crit;pid                /usr/local/webserver/nginx/nginx.pid;#Specifies the value for maximum file descriptors that can be opened by this process.worker_rlimit_nofile 51200;events{        use epoll;        worker_connections 51200;}http{        include            mime.types;        default_type    application/octet-stream;        source_charset GB2312;        server_names_hash_bucket_size 256;        client_header_buffer_size 256k;        large_client_header_buffers 4 256k;        #size limits        client_max_body_size            50m;        client_body_buffer_size        256k;        client_header_timeout    3m;        client_body_timeout 3m;        send_timeout            3m;#参数都有所调整.目的是解决代理过程中出现的一些502 499错误            sendfile on;        tcp_nopush        on;        keepalive_timeout 120; #参数加大,以解决做代理时502错误        tcp_nodelay on;        include                    vhosts/upstream.conf;        include                    vhosts/bbs.linuxtone.conf;}
0 0
原创粉丝点击