Nginx 高可用+负载均衡部署文档V1.0.2

合集下载

一个完整的nginx配置文件范例参考(含负载均衡)

一个完整的nginx配置文件范例参考(含负载均衡)

一个完整的nginx配置文件范例参考(含负载均衡)改配置文件 /usr/local/server/nginx/conf/nginx.conf以下是我的 nginx.conf 内容,仅供参考:#运行用户user nobody nobody;#启动进程worker_processes 2;#全局错误日志及PID文件error_log logs/error.log notice;pid logs/nginx.pid;#工作模式及连接数上限events {use epoll;worker_connections 1024;}#设定http服务器,利用它的反向代理功能提供负载均衡支持http {#设定mime类型include conf/mime.types;default_type application/octet-stream;#设定日志格式log_format main '$remote_addr - $remote_user [$time_local] ''"$request" $status $bytes_sent ''"$http_referer" "$http_user_agent" ''"$gzip_ratio"';log_format download '$remote_addr - $remote_user [$time_local] ''"$request" $status $bytes_sent ''"$http_referer" "$http_user_agent" ''"$http_range" "$sent_http_content_range"';#设定请求缓冲client_header_buffer_size 1k;large_client_header_buffers 4 4k;#开启gzip模块gzip on;gzip_min_length 1100;gzip_buffers 4 8k;gzip_types text/plain;output_buffers 1 32k;postpone_output 1460;#设定access logaccess_log logs/access.log main;client_header_timeout 3m;client_body_timeout 3m;send_timeout 3m;sendfile on;tcp_nopush on;tcp_nodelay on;keepalive_timeout 65;#设定负载均衡的服务器列表upstream mysvr {#weigth参数表示权值,权值越高被分配到的几率越大#本机上的Squid开启3128端口server 192.168.8.1:3128 weight=5;server 192.168.8.2:80 weight=1;server 192.168.8.3:80 weight=6;}#设定虚拟主机server {listen 80;server_name 192.168.8.1 ;charset gb2312;#设定本虚拟主机的访问日志access_log logs/.access.log main;#如果访问/img/*, /js/*, /css/* 资源,则直接取本地文件,不通过squid#如果这些文件较多,不推荐这种方式,因为通过squid的缓存效果更好location ~ ^/(img|js|css)/ {root /data3/Html;expires 24h;}#对 "/" 启用负载均衡location / {proxy_pass http://mysvr;proxy_redirect off;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;client_max_body_size 10m;client_body_buffer_size 128k;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;}#设定查看Nginx状态的地址location /NginxStatus {stub_status on;access_log on;auth_basic "NginxStatus";auth_basic_user_file conf/htpasswd;}}}运行以下命令检测配置文件是否无误:如果没有报错,那么就可以开始运行Nginx了,执行以下命令即可:备注:conf/htpasswd 文件的内容用apache 提供的htpasswd 工具来产生即可,内容大致如下:3.) 查看 Nginx 运行状态输入地址http://192.168.8.1/NginxStatus/,输入验证帐号密码,即可看到类似如下内容:Active connections: 328server accepts handled requests9309 8982 28890Reading: 1 Writing: 3 Waiting: 324第一行表示目前活跃的连接数第三行的第三个数字表示Nginx运行到当前时间接受到的总请求数,如果快达到了上限,就需要加大上限值了。

【高可用架构】用Nginx实现负载均衡(三)

【高可用架构】用Nginx实现负载均衡(三)

【⾼可⽤架构】⽤Nginx实现负载均衡(三)前⾔在上⼀篇,已经⽤Envoy⼯具统⼀发布了Deploy项⽬代码。

本篇我们来看看如何⽤nginx实现负载均衡负载均衡器IP192.168.10.11【⾼可⽤架构】系列链接:演⽰配置应⽤服务器⾸先,需要将上⼀篇部署的两台应⽤服务器,都能够单独访问配置192.168.10.12、192.168.10.18上nginx的config# vi /etc/nginx/config.d/dev.deploy.goods.confserver {listen 80;server_name dev.deploy.goods;index index.html index.htm index.php;location / {rewrite ^/(.*)$ /index.php/$1 last;try_files $uri $uri/ /index.php?$query_string;}location ~ (.+\.php)(.*)$ {root "/var/www/Deploy/public";fastcgi_split_path_info ^(.+\.php)(.+)$;fastcgi_pass unix:/var/run/php-fpm/php7-fpm.sock;fastcgi_index index.php;include fastcgi_params;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;fastcgi_param PATH_INFO $fastcgi_path_info;fastcgi_intercept_errors off;fastcgi_buffer_size 16k;fastcgi_buffers 4 16k;fastcgi_connect_timeout 300;fastcgi_send_timeout 300;fastcgi_read_timeout 300;}}重启nginx配置win的hosts192.168.10.18 dev.deploy.goods # 开发机也是这个域名,⼤家可以换⼀个,这⾥暂时去掉访问成功已同样的⽅式配置12机配置负载均衡器进⼊192.168.10.11虚拟机配置configupstream deploy_proxy {server 192.168.10.12;server 192.168.10.18;}server {listen 80;server_name dev.deploy.goods;index index.html index.htm index.php;charset utf-8;location = /favicon.ico {access_log off; log_not_found off;}location = /robots.txt {access_log off; log_not_found off;}sendfile off;client_max_body_size 100m;location / {proxy_set_header Host dev.deploy.goods; # 域名要和APP服务器设置的⼀样proxy_pass http://deploy_proxy; # 上⾯设置的deploy_proxy}#ssl_certificate /etc/nginx/ssl/homestead.app.crt;#ssl_certificate_key /etc/nginx/ssl/homestead.app.key;}重启nginx配置配置win的hosts(记得去掉之前设置的域名对应)192.168.10.11 dev.deploy.goods⾄此,负载均衡器也部署成功了,下⼀篇就要实现redis主从结构了,在此之前,可以提前看下【linux系统】的redis安装。

nginx+keepalived高性能web负载均衡搭建文档

nginx+keepalived高性能web负载均衡搭建文档

Nginx+keepalived高性能网站负载均衡 Nginx+Keepalived的说明及环境说明Nginx负载均衡作服务器遇到的故障一般有①服务器网线松动等网络故障;②服务器硬件故障从而crash;③nginx服务死掉;遇到前二者情况,keeaplived是能起到HA的作用的;然而遇到③种情况就没有办法了,但可以通过shell监控解决这问题,从而实现真正意义上的负载均衡高可用。

下面将其安装步骤详细说明下:环境介绍:rhel5.5(32位)、nginx-1.5.3、keepalived-1.2.7主nginx:192.168.1.131从nginx:192.168.1.130Vip:192.168.1.50安装nginx及相关配置1.#添加运行nginx的用户和组www2.groupadd wwweradd -g www www4.tar xzf nginx-1.5.3.tar.gz5.cd nginx-1.5.3/6../configure --user=www --group=www --prefix=/usr/local/nginx/7.make && make install安装之前你要先安装“pcre”正则库文件,yum –y install “pcre*”。

安装完之后编辑配置文件vim /usr/local/nginx/conf/nginx.conf安装keepalived,让其作为nginx的HA1.tar xzf keepalived-1.2.7.tar.gz2. cd keepalived-1.2.73. ./configure --prefix=/usr/local/keepalived4.make && make install5.cp /usr/local/keepalived/sbin/keepalived /usr/sbin/6.cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/7.cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/8.mkdir /etc/keepalived/9.cd /etc/keepalived/安装之前要先安装一些依赖库:yum –y install kernel-develyum –y install popt-devel //#这个库文件有时候默认已经安装了;yum –y install openssl-devel安装完成之后编辑文件vim keepalived.conf在配置文件里面还得加入调用刚才上面忘了加入结果测试的时候不自动调用检测脚本针对Keepalived的不足,用nginx.sh来监控nginx进程,实现真正意义上的负载均衡高可用。

nginx+keepalived实现高可用负载均衡方案

nginx+keepalived实现高可用负载均衡方案

学习文档目录1.引言 (3)2.环境说明 (3)3.Nginx安装配置 (3)4. Keepalived安装配置 (5)5.验证 (9)1.引言本学习文档主要介绍了采用Nginx负载均衡,通过keepalived实现Nginx双机互备,保证实现的WEB服务高可用方案。

2.环境说明主nginx负载均衡器:172.20.52.20 端口81(CentOS release 5.8)副nginx负载均衡器:172.20.52.21 端口81(CentOS release 5.8)Tomcat1: 172.20.52.19端口3030Tomcat2: 172.20.52.20端口4040VIP:172.20.52.22软件:keepalived-1.2.12 nginx-1.4.4说明:keepalived 是一个基于VRRP协议来实现的WEB服务高可用方案,可以利用其来避免单点故障。

一个WEB服务至少会有2台服务器运行Keepalived,一台为主服务器(MASTER),一台为备份服务器(BACKUP),但是对外表现为一个虚拟IP,主服务器会发送特定的消息给备份服务器,当备份服务器收不到这个消息的时候,即主服务器宕机的时候,备份服务器就会接管虚拟IP,继续提供服务,从而保证了高可用性。

3.Nginx安装配置1.安装Nginx获取Nginx稳定版,把Nginx 安装到/usr/local/nginx 目录下(两台机器都安装)的详细步骤:yum –y install gcc openssl-devel pcre-devel zlib-devel(安装相关组件) tar zxvf nginx-1.4.4.tar.gzcd nginx-1.4.4./configure--prefix=/usr/local/nginx--with-http_ssl_module--with-http_flv_module--with-http_gzip_static_module--with-http_stub_status_modulemake && make install2.分别在两台服务器编写配置文件vim /usr/local/nginx/conf/nginx.conf#user nobody;worker_processes 1;#pid logs/nginx.pid;events {worker_connections 1024;}http {include mime.types;default_type application/octet-stream;sendfile on;#tcp_nopush on;keepalive_timeout 65;upstream cart {server 172.20.52.19:3030 weight=1;server 172.20.52.20:4040 weight=1;#ip_hash; #在没有做共享session的情况下ip_hash可以解决session问题}server {listen 81;server_name 172.20.52.20; #另外一台填写另外IPcharset utf-8;location /cart {root html;index index.html index.htm;proxy_next_upstream error timeout http_500 http_502 http_504;proxy_read_timeout 10s;proxy_pass http://cart;proxy_set_header Host $host:81; #没用默认80端口需要加入proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}error_page 500 502 503 504 /50x.html;location = /50x.html {root html;}log_format access_log '$remote_addr - $remote_user [$time_local] $request ''"$status" $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';access_log /usr/local/nginx/logs/access.log access_log;}}3.验证配置文件正确性/usr/local/nginx/sbin/nginx –t显示以下信息为正确的the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok configuration file /usr/local/nginx/conf/nginx.conf test is successful 4.启动/usr/local/nginx/sbin/nginx4.Keepalived安装配置1.安装(两台nginx机器都安装)#安装poptyum -y install popt popt-develtar zxvf keepalived-1.2.12.tar.gzcd keepalived-1.2.12./configure --prefix=/usr/local/keepalived --sysconf=/etcmake && make installcp /usr/local/keepalived/sbin/keepalived /bin/chkconfig --add keepalived#设置开机启动chkconfig keepalived on#启动keepalive服务/etc/init.d/keepalived startservice keepalived restart2.配置cp /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf_bakMASTERvim /etc/keepalived/keepalived.conf! Configuration File for keepalivedglobal_defs {notification_email {jiyulong@gufanbiao@}notification_email_from jiyulong@smtp_server 127.0.0.1smtp_connect_timeout 30router_id LVS_DEVEL}vrrp_script Monitor_Nginx {script "/root/monitor/monitor_nginx.sh"interval 2weight 2}vrrp_instance VI_1 {state MASTER #(主机为MASTER,备用机为BACKUP)interface eth0 #(HA监测网络接口)virtual_router_id 51 #(主、备机的virtual_router_id必须相同)priority 100 #(主、备机取不同的优先级,主机值较大,备份机值较小,值越大优先级越高)advert_int 1 #(VRRP Multicast广播周期秒数)authentication {auth_type PASS #(VRRP认证方式)auth_pass 1111 #(密码)}track_script {Monitor_Nginx #(调用nginx进程检测脚本)}virtual_ipaddress {172.20.52.22 #(VRRP HA虚拟地址)}}BACKUP方面只需要修改state为BACKUP , priority比MASTER稍低即可3.监控脚本vim /root/monitor_nginx.sh当检测到nginx进程不存在的时候,就干掉所有的keepalived,这时候,请求将会由keepalived的backup接管!!vim /opt/nginx_pid.sh#!/bin/bash# varsion 0.0.2# 根据一网友说这样做不科学,如果nginx服务起来了,但是我把keepalived 杀掉了,我的理由是,如果nginx死掉了,我觉得就很难在起来,再有就是nagios 当然要给你报警了啊。

Nginx负载均衡的详细配置及使用案例详解

Nginx负载均衡的详细配置及使用案例详解

Nginx负载均衡的详细配置及使用案例详解.技术无止境, 我们仍需努力!1,话不多说, 这里我们来说下很重要的负载均衡, 那么什么是负载均衡呢?由于目前现有网络的各个核心部分随着业务量的提高,访问量和数据流量的快速增长,其处理能力和计算强度也相应地增大,使得单一的服务器设备根本无法承担。

在此情况下,如果扔掉现有设备去做大量的硬件升级,这样将造成现有资源的浪费,而且如果再面临下一次业务量的提升时,这又将导致再一次硬件升级的高额成本投入,甚至性能再卓越的设备也不能满足当前业务量增长的需求。

针对此情况而衍生出来的一种廉价有效透明的方法以扩展现有网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性的技术就是负载均衡(Load Balance)。

2, 负载均衡的种类1)一种是通过硬件来进行解决,常见的硬件有NetScaler、F5、Radware 和Array等商用的负载均衡器,但是它们是比较昂贵的2)一种是通过软件来进行解决的,常见的软件有LVS、Nginx、apache 等,它们是基于Linux系统并且开源的负载均衡策略.3, 这里我们只来说Nginx(其他的大家有兴趣可以自行查阅相关文档) Nginx(发音同engine x)是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。

由俄罗斯的程序设计师Igor Sysoev(伊戈尔·西索夫)所开发,供俄国大型的入口网站及搜索引擎Rambler(漫步者)(俄文:Рамблер)使用。

其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:新浪、网易、腾讯等。

优点:1:可运行linux,并有 Windows 移植版。

2:在高连接并发的情况下,Nginx是Apache服务器不错的替代品Nginx在美国是做虚拟主机生意的老板们经常选择的软件平台之一。

Nginx+Keepalived(主备模式)实现负载均衡高可用浅析

Nginx+Keepalived(主备模式)实现负载均衡高可用浅析

Nginx+Keepalived(主备模式)实现负载均衡⾼可⽤浅析概述⽬前关于负载均衡和⾼可⽤的架构⽅案能找到相当多且详尽的资料,此篇是⾃⼰学习相关内容的⼀个总结,防⽌将来遗忘再次重新查找资料,也避免踩相同的坑。

此次配置的负载均衡与⾼可⽤架构:Nginx + Keepalived(主备模式),Nginx 使⽤反向代理实现七层负载均衡。

众所周知,Nginx 是⼀款⾃由的、开源的、⾼性能HTTP服务器和反向代理服务器,也是⼀个IMAP、POP3、SMTP代理服务器。

也就是说Nginx本⾝就可以托管⽹站(类似于Tomcat⼀样),进⾏HTTP服务处理,也可以作为反向代理服务器使⽤。

Keepalived 是⼀个基于VRRP协议来实现的服务⾼可⽤⽅案,可以利⽤其来避免IP单点故障,类似的⼯具还有heartbeat、corosync、pacemaker。

但是它⼀般不会单独出现,⽽是与其它负载均衡技术(如lvs、haproxy、nginx)⼀起⼯作来达到集群的⾼可⽤。

相关原理对于理解整个架构的⼯作⽅式以及之后的troubleshooting都⾮常重要。

关于负载均衡,Nginx + Keepalived(主备模式)实现负载均衡⾼可⽤的架构⽅式,可参考另⼀篇相当不错的博客:关于虚拟路由冗余协议(VRRP),可参考:⼀.环境说明系统环境:4台 Red Hat Enterprise Linux Server release 7.0 (Maipo)master节点:192.168.0.151/24backup节点:192.168.0.152/24虚拟IP(VIP):192.168.0.16nginx web服务器:192.168.0.153/24nginx web服务器:192.168.0.154/24架构⽰意图:⼆.软件版本Nginx stable version:nginx-1.12.2Keepalived version:keepalived-1.3.9三.环境安装部署4个节点均进⾏以下操作:1. 关闭firewalld防⽕墙,此处将使⽤iptables防⽕墙管理软件。

Nginx高可用负载均衡部署文档V102

Nginx高可用负载均衡部署文档V102

Nginx高可用负载均衡部署文档V102 Nginx高可用负载均衡部署文档V102
一、Nginx高可用+负载均衡部署概述
这里我们采用软硬混合方式,使用Nginx作为反向代理,HAProxy实现负载均衡,实现Nginx的高可用+负载均衡部署。

二、Nginx高可用+负载均衡实现原理
1、Nginx高可用+负载均衡,将客户端访问的请求先代理到HAProxy 服务器,HAProxy将请求通过负载均衡算法轮询分配给Nginx服务器,客户端经过HAProxy实现了负载均衡,同时使用Nginx实现反向代理进行高可用。

2、为了在Nginx服务器出现问题的时候能够第一时间被发现,可以使用健康检查工具,例如keepalived,实现Nginx服务器之间的健康检查,当有Nginx服务出现问题的时候,及时将其剔除出HAProxy的可用Nginx列表,实现Nginx的高可用。

三、Nginx高可用+负载均衡部署步骤
1、准备硬件
首先,准备一台安装HAProxy的负载均衡服务器,和若干台安装Nginx的web服务器,为了实现高可用,Nginx服务器最好是偶数台,奇数台。

Nginx负载均衡方案

Nginx负载均衡方案

Nginx负载均衡⽅案轮询 根据Nginx配置⽂件中的顺序,每个请求按时间顺序逐⼀分配到不同的后端服务器,如果后端服务器 down 掉,能⾃动剔除。

upstream web {server server1;server server2;}最少连接Web 请求会被转发到连接数最少的服务器上。

least_conn 算法很简单,⾸选遍历后端集群,⽐较每个后端的 conns/weight,选取该值最⼩的后端。

如果有多个后端的 conns/weight 值同为最⼩的,那么对它们采⽤加权轮询算法。

upstream web {least_conn;server server1;server server2;}IP地址哈希同⼀客户端连续的 Web 请求可能会被分发到不同的后端服务器进⾏处理,因此如果涉及到会话 Session,可以使⽤基于 IP 地址哈希的负载均衡⽅案。

这样的话,同⼀客户端连续的 Web 请求都会被分发到同⼀服务器进⾏处理(每个请求按访问 ip 的 hash 结果分配,这样每个访客固定访问⼀个后端服务器,可以解决 session 的问题)。

upstream web {ip_hash;server server1;server server2;}权重 (Weighted Load Balancing)可以根据服务器的性能状况有选择的分发 web 请求。

指定轮询⼏率,weight 越⾼、访问⽐率越⼤。

weight=2,意味着每接收到3个请求,前2个请求会被分发到第⼀个服务器,第3个请求会分发到第⼆个服务器,其它的配置同轮询配置。

基于权重的负载均衡和基于 IP 地址哈希的负载均衡可以组合在⼀起使⽤。

upstream web {server server1 weight=2;server server2;}fair(第三⽅)按后端服务器的响应时间来分配请求,响应时间短的优先分配。

upstream web {server server1;server server2;fair;}url_hash(第三⽅)按访问 url 的 hash 结果来分配请求,使每个 url 定向到同⼀个后端服务器,后端服务器为缓存时⽐较有效。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Nginx高可用+负载均衡部署指南1软件版本说明2基础软件安装2.1Nginx安装版本jdk-7u67-linux-x64.rpm,安装步骤略安装后检验Nginx版本是否正确。

[root@localhost ~]# /usr/local/nginx/sbin/nginx –vnginx version: nginx/1.6.02.2Keepalived安装2.2.1openssl安装openssl必须安装,否则安装keepalived时无法编译,keepalived依赖opensslopenssl安装tar zxvf openssl-1.0.1g.tar.gz./config--prefix=/usr/local/openssl./config-tmake dependmakemake testmake installln-s /usr/local/openssl/usr/local/sslopenssl配置vi/etc/ld.so.conf#在/etc/ld.so.conf文件的最后面,添加如下内容:/usr/local/openssl/libvi/etc/profileexport OPENSSL=/usr/local/openssl/binexport PATH=$PATH:$OPENSSLsource/etc/profileyum install openssl-devel -y #如无法yum下载安装,请修改yum配置文件测试:ldd /usr/local/openssl/bin/openssllinux-vdso.so.1 => (0x00007fff996b9000)libdl.so.2 => /lib64/libdl.so.2 (0x00000030efc00000)libc.so.6 => /lib64/libc.so.6 (0x00000030f0000000)/lib64/ld-linux-x86-64.so.2 (0x00000030ef800000) which openssl/usr/bin/opensslopenssl versionOpenSSL 1.0.0-fips 29 Mar 20102.2.2keepalived安装本文在172.17.30.64、172.17.30.83两台机器进行keepalived安装安装tar zxvf keepalived-1.2.13.tar.gzcd keepalived-1.2.13./configure--prefix=/usr/local/keepalivedmakemake installcp/usr/local/keepalived/sbin/keepalived/usr/sbin/cp/usr/local/keepalived/etc/sysconfig/keepalived/etc/sysconfig/cp/usr/local/keepalived/etc/rc.d/init.d/keepalived/etc/init.d/mkdir/etc/keepalivedcp/usr/local/keepalived/etc/keepalived/keepalived.conf/etc/keepalived2.2.3keepalived配置建检查Nginx是否存活的脚本#新建Nginx检查vim /usr/local/nginx/check.sh内容如下:#!/bin/bash#This script is used by keepalived for checking nginx running status CHECK_TIME=2check(){curl -m 2 http://127.0.0.1/status >/dev/null 2>&1return $?}while [ $CHECK_TIME -ne 0 ]dolet "CHECK_TIME -= 1"checkNGINX_OK=$?if [ $NGINX_OK -eq 0 ];thenexit 0fiif [ $NGINX_OK -ne 1 ] && [ $CHECK_TIME -eq 0 ]thenexit 1fidonekeepalived.conf:vim /usr/local/keepalived/etc/keepalived/keepalived.confMaster:Master! Configuration File for keepalivedvrrp_script check_run {script “/usr/local/nginx/check.sh"interval 2weight 2}vrrp_instance VI_1 {state MASTER #172.17.210.83上改为Masterinterface eth0 #对外提供服务的网络接口virtual_router_id 51 #VRRP组名,两个节点的设置必须一样,以指明各个节点属于同一VRRP组priority 150 #数值愈大,优先级越高advert_int 1 #同步通知间隔authentication { #包含验证类型和验证密码。

类型主要有PASS、AH两种,通常使用的类型为PASS,据说AH使用时有问题auth_type PASSauth_pass 1111}track_script {check_run #调用脚本check.sh检查haproxy是否存活}virtual_ipaddress { #vip地址172.17.210.103 dev eth0 scope globa}}slave:slave! Configuration File for keepalivedvrrp_script chech_run {script “/usr/local/nginx/check.sh"interval 2weight 2}vrrp_instance VI_1 {state BACKUP #interface eth0 #对外提供服务的网络接口virtual_router_id 51 #VRRP组名,两个节点的设置必须一样,以指明各个节点属于同一VRRP组priority 120 #数值愈大,优先级越高, advert_int 1 #同步通知间隔authentication { #包含验证类型和验证密码。

类型主要有PASS、AH两种,通常使用的类型为PASS,据说AH使用时有问题auth_type PASSauth_pass 1111}track_script {check_run #调用脚本check.sh检查haproxy是否存活}virtual_ipaddress { #vip地址172.17.210.103 dev eth1 scope globa}}3Nginx配置文件3.1新建upstreams.conf1、upstream uc_cluster {2、 ip_hash;3、 server app01:7060;#主机名+端口4、 server app01:7061;5、}6、 upstream pos_cluster {7、 ip_hash;8、 server app01:7060;#主机名+端口9、 server app01:7061;10、}11、upstream mps_cluster {12、 ip_hash;13、 server app01:7060;14、server app01:7061;15、server app02:7060;16、}upstream gms_cluster {17、ip_hash;18、server app01:7060;19、server app01:7061;20、server app02:7060;21、}...3.2新建server.confserver {listen 80;server_name ;default_type 'text/html';charset utf-8;#charset koi8-r;#access_log logs/host.access.log main;location ~ .*.*$ {#index /portal;proxy_pass http://uc_cluster;rewrite "^/+$" /portal break;}location ^~ /pos/ {proxy_pass http://pos_cluster;}location ^~ /mps/ {proxy_pass http://mps_cluster;}location ^~ /gms/ {proxy_pass http://gms_cluster;}location ^~ /fas/ {proxy_pass http://fas_cluster;}location ^~ /mdm/ {proxy_pass http://mdm_cluster;}location ^~ /pms/ {proxy_pass http://pms_cluster;proxy_connect_timeout 600s;proxy_send_timeout 300s;}location ^~ /crm/ {proxy_pass http://crm_cluster;}#error_page 404 /404.html;# redirect server error pages to the static page /50x.html#error_page 500 502 503 504 /50x.html;location = /50x.html {root html;}}3.3新建proxy.conf文件#!nginx (-)# proxy.confproxy_redirect off;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr; #»ñæip#proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; #»ñúµÄæip client_max_body_size 10m;client_body_buffer_size 128k;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;3.4修改Nginx文件#user nobody;worker_processes 4;error_log logs/error.log;error_log logs/error.log notice;error_log logs/error.log info;pid logs/nginx.pid;events {use epoll;worker_connections 1024;}http {include upstreams.conf;include mime.types;default_type application/octet-stream;include proxy.conf;log_format main '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';access_log logs/access.log main;sendfile on;#tcp_nopush on;#keepalive_timeout 0;keepalive_timeout 65;tcp_nodelay on;gzip on;gzip_min_length 10240;gzip_proxied expired no-cache no-store private auth;gzip_types text/plain text/css text/xml text/javascript application/x-javascript application/xml application/xml+rss image/svg+xml application/x-font-ttf application/vnd.ms-fontobject;gzip_disable "MSIE [1-6]\.";include servers.conf;}。

相关文档
最新文档