Web服务器列表:
Web1: 192.168.0.5(Nginx-Node1/Nginx-Web1)
Web2:192.168.0.7(Nginx-Node2/Nginx-Web2)
实现目的:用户访问Nginx-Server时,通过Nginx负载均衡到Web1和Web2服务器。
配置注释如下:
创建文件夹准备存放配置文件
启动负载均衡服务器192.168.0.4(Nginx-Server)
创建文件夹用于存放web页面
编辑内容如下:
启动192.168.0.5(Nginx-Node1/Nginx-Web1)
创建文件夹用于存放web页面
编辑内容如下:
启动192.168.0.7(Nginx-Node2/Nginx-Web2)
Nginx是一个高性能的Web和反向代理服务器,它具有有很多非常优越的特性:
作为负载均衡服务器 :Nginx既可以在内部直接支持Rails和PHP,也可以支持作为HTTP代
理服务器对外进行服务。Nginx用C编写,不论是系统资源开销还是CPU使用效率都比
Perlbal要好的多。
作为邮件代理服务器 :Nginx同时也是-一个非常优秀的邮件代理服务器(最早开发这个产品的目的之-也是作为邮件代理服务器),Last.fm 描述了成功并且美妙的使用经验。
Nginx安装非常的简单,配置文件非常简洁(还能够支持per语法),Bugs非 常少的服务器:
Nginx启动特别容易,并且几乎可以做到7*24不间断运行,即使运行数个月也不需要重新启
动。你还能够在不间断服务的情况下进行软件版本的升级。
处理静态文件,索引文件以及自动索引
反向代理加速(无缓存), 简单的负载均衡和容错
FastCGI,简单的负载均衡和容错
模块化的结构。过滤器包括gzipping, byte ranges, chunked responses,以及SSiI-ilter 。
在SSI过滤器中,到同一个proxy或者FastCGI的多个子请求并发处理
SSL和TLSSNI支持
使用外部HTTP认证服务器重定向用户到IMAP/POP3后端
使用外部HTTP认证服务器认证用户后连接重定向到内部的SMTP后端
认证方法:
POP3: POP3 USER/PASS, APOP, AUTH LOGIN PL AIN CRAM-MD5
IMAP: IMAP LOGIN
SMTP: AUTH LOGIN PLAIN CRAM-MD5
SSL支持
在IMAP和POP3模式下的STARTTLS和STLS支持
FreeBSD 3.x, 4.x, 5.x, 6.x i386FreeBSD 5.x, 6.x amd64
Linux2.2, 2.4, 2.6 i386Linux 2.6 amd64
Solaris 8 i386Solaris 9 i386 and sun4uSolaris 10 i386
MacOS X (10.4) PPC
一个主进程和多个工作进程。工作进程是单线程的,且不需要特殊授权即可运行
kqueue (FreeBSD 4.1+), epoll (Linux 2.6+), t signals (Linux 2.2.19+), /dev/poll (Solaris711/99+), select,以及poll支持
kqueue支持的不同功能包括EV_ _CLEAR, EV_ DISABLE (临时禁止事件),NOTE_ _LOWAT, EV_ EOF, 有效数据的数目,错误代码
sendfile (FreeBSD 3.1+), sendfile (Linux 2.2+), sendfile64 (Linux 2.4.21+),和sendfilev(Solaris 8 7/01+)支持
输入过滤(FreeBSD 4.1+)以及TCP_ _DEFER_ ACCEPT (Linux2.4+)支持
10,000 非活动的HTTP keep-alive连接仅需要2.5M内存。
最小化的数据拷贝操作
基于IP和名称的虚拟主机服务
Memcached的GET接口
支持keep-alive和管道连接
灵活简单的配置
重新配置和在线升级而无须中断客户的工作进程
可定制的访问日志,日志写入缓存,以及快捷的日志回卷
4xx-5xx错误代码重定向
基于PCRE的rewrite重写模块
基于客户端IP地址和HTTP基本认证的访问控制
PUT, DELETE,和MKCOL方法
支持FLV (Flash视频)
带宽限制
内嵌的perl
通过aio. read() 1 aio _write() 的套接字工作的实验模块,仅在FreeBSD下。
对线程的实验化支持,FreeBSD 4.x的实现基于rfork()
Nginx主要的英语站点是htp://sysoev.ru/en/
本人有自己整理大数据学习的功课,闲置着也无用了。
获取方式:
私信方式:
第一步,点击头像。
第二部:头像旁边有一个私信按钮,发送{学习资料}即可!
负载均衡
先来简单了解一下什么是负载均衡,单从字面上的意思来理解就可以解释N台服务器平均分担负载,不会因为某台服务器负载高宕机而某台服务器闲置的情况。那么负载均衡的前提就是要有多台服务器才能实现,也就是两台以上即可。
测试环境
在VMware里安装了三台。
A服务器IP :192.168.0.219 (主)
B服务器IP :192.168.0.119
C服务器IP :192.168.0.109
部署思路
A服务器做为主服务器,域名直接解析到A服务器(192.168.0.219)上,由A服务器负载均衡到B服务器(192.168.0.119)与C服务器(192.168.0.109)上。
在A服务器上,upstream指令——分配负载
vi /etc/nginx/conf.d/default.conf
upstream 192.168.0.219 {
server 192.168.0.119:80
server 192.168.0.109:80
}
server {
listen 80
server_name 192.168.0.219
charset utf8
location / {
proxy_pass
proxy_set_header Host $host
proxy_set_header X-Real-IP $remote_addr
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for
}
}
保存重启nginx
在B、C服务器上,
vi /etc/nginx/conf.d/default.conf
server {
listen 80
server_name 192.168.0.219
index index.html
root /usr/share/nginx/html
}
保存重启nginx
测试
当访问的时候,为了区分是转向哪台服务器处理我分别在B、C服务器下写一个不同内容的index.html文件,以作区分。
打开浏览器访问a.com结果,刷新会发现所有的请求均分别被主服务器(192.168.5.149)分配到B服务器(192.168.0.119)与C服务器(192.168.0.109)上,实现了负载均衡效果。
主服务器不能提供服务吗?
以上例子中,我们都是应用到了主服务器负载均衡到其它服务器上,那么主服务器本身能不能也加在服务器列表中,这样就不会白白浪费拿一台服务器纯当做转发功能,而是也参与到提供服务中来。
怎么解决这个问题呢?因为80端口已经用来监听负载均衡的处理,那么本服务器上就不能再使用80端口来处理192.168.0.219的访问请求,得用一个新的。
于是我们在主服务器中编辑/etc/nginx/conf.d/default.conf,添加以下内容
server {
listen 8080
server_name 192.168.0.219
index index.html
root /usr/share/nginx/html
}
重启nginx
然后,再重新渡负载均衡。
更多Nginx相关教程见以下内容 :
CentOS 6.2实战部署Nginx+MySQL+PHP
使用Nginx搭建WEB服务器
搭建基于Linux6.3+Nginx1.2+PHP5+MySQL5.5的Web服务器全过程
CentOS 6.3下Nginx性能调优
CentOS 6.3下配置Nginx加载ngx_pagespeed模块
CentOS 6.4安装配置Nginx+Pcre+php-fpm
Nginx安装配置使用详细笔记
Nginx日志过滤 使用ngx_log_if不记录特定日志
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)