Nginx的使用和如何实现高可用性

nginx总结

一.安装:

​ 1.将压缩包导入linux系统中,并进行解压缩:tar -zxvf nginx-1.6.2.tar.gz -C /usr/local

​ 2.下载所需要的依赖库文件:

​ 3.进行configure配置: cd nginx-1.6.2

​ ./configure --prefix=/usr/local/nginx

​ 4.编译安装:make && make install

​ 5.启动命令:usr/local/nginx/sbin/nginx

二.虚拟机配置

​ 所谓虚拟机配置就是在ngix的/config/nginx.config中进行配置,里面默认有一个sever服务为80的端口,如果想增加端口的话需要在配置一个server,在里面同样配置listen,后面配置自己写的端口,然后在location中配置目录名字也就是root后面的名字,需要在自定义的目录中创建文件时,需要在 root下面的index后面创建相应的文件.

​ 当在浏览器上访问本次创建的nginx的ip使用默认的80端口时,会默认访问默认server中的html目录中的index.html文件

​ 如果访问的是端口8088时,则会访问自定义的目录下面的index.html文件\

三:日志文件

​ 默认的情况下所有的日志都会在一起执行,如果使用检测日志进行观看的话,会发现所有端口的日志都会集中进行打印存在access.log这个文件中,这样不利于管理,一旦出问题,不好找到错误日志,因此需要在nginx的配置文件nginx.conf中进行日志配置.

​ 查看日志内容命令:tail -n 100 -f access.log

​ 在nginx.conf中打开log_format main ...的注释(打开这三行注释)

​ 然后在自己定义的server中添加access_log logs/wolfcode.access.log main;其中wolfcode.access.log这是自己定义的输入日志的文件,为了避免和access.log文件名字重名,

配置完以上内容,重启nginx.然后使用自定义的端口进行访问,打印的日志将会出现在自定义的日志文件中,原来的日志文件将不再记录

四:location配置

location具有一些语法规则,比如:location [=||*|^~] /uri/ { … }

使用location进行配置后,在浏览器发送请求后,nginx中的server将会根据location进行匹配,如果根据匹配规则匹配上了,则会进入这个location中执行其中的文件.如果没有则会报错

五:反向代理

​ 用户访问服务器时,为了避免用户访问的那台服务器挂了以后导致用户无法正常使用,需要使用nginx的反向代理设置,主要是目的就是由于用户访问服务器不知道要要访问哪一台服务器,加上nginx以后,nginx作为后台服务器的代理服务器,用户只要访问这个代理服务器即可,后面由代理服务器去访问后台服务器,

需要在在ngix的配置文件ngix.conf中配置,根据用户要访问后台服务器的哪一个资源,这里需要在自定义的server中新建一个location:例如:

location ~ .jsp{ proxy_set_header X-real-ipremote_addr;
#proxy_pass http://192.168.197.129:8080;#这是固定访问某个服务器
proxy_pass http://myapp; #使用负载均衡策略访问
}

~表示开头区分大小写的正则匹配,.jsp$表示以.jsp为结尾的后缀匹配,

需要配置proxy_pass 后台服务器地址:端口(固定访问某个服务器)

注意:反向代理之后,获取客户端ip地址为nginx服务器地址,这里需要nginx进行forward,设置真实的ip地址:

设置客户端真实ip地址

proxy_set_header X-real-ip $remote_addr;

这样配置以后后台是不知道用户的真实ip的,只知道nginx的ip,但是有些场景是需要知道用户的ip,因此需要将用户的ip传到后台,需要使用proxy_set_header X-real-ip remote_addr; (remote_addr 表示全局变量,客户端地址)

六:负载均衡配置

使用nginx可以设置负载均衡策略,当有多台服务器时(tomcat)需要设置负载均衡策略,在nginx配置文件nginx.conf中在自定义的sever的上面配置下面这些代码:

upstream myapp {
server 192.168.197.129:8080 weight=1 max_fails=2 fail_timeout=30s; server 192.168.197.130:8080 weight=1 max_fails=2 fail_timeout=30s;

}

设置后台服务的ip和端口,设置权重以及重试次数,超时时间

默认就是轮询策略,设置权重可以让某个服务的访问概率变化

同时要想让负载均衡策略生效,还需要在自定义的访问后台的server中改动:

proxy_pass http://myapp; #使用负载均衡策略访问(myapp就是自定义的负载均衡的配置名称)

七:使用keepalived搭建高可用环境

​ 需要安装keepalived

​ 1.安装keepalived的依赖的包

​ 2.编译安装keepalived,将keepalived的安装包 上传到/usr/local/software 目录下

​ 3.将keepalived安装成linux系统,安装完成之后, 需要做一些工作复制默认配置文件到 默认路径

​ 4.编写nginx检测脚本,然后复制执行权限

​ keepalived是一个高性能服务器高可用或热备解决方案,主要是防止服务器单点故障,通过与nginx的配合实现web服务器端的高可用

​ 因为如果一台nginx时,是无法保证高可用性的,一旦这台ngix服务挂掉以后,用户是无法进行访问 ,因此需要在加一台服务这样其中一台服务挂掉以后,keepalived的会马上将用户与活着的那台nginx服务进行绑定,保证用户访问后天服务能正常访问,

​ 如何操作:

​ 需要两台ngix服务器,一台服务器设置为master,一台服务器设置为backup如何设置:

​ 修改keepalived的Master配置文件:vi /etc/keepalived/keepalived.conf

​ 1>改动节点,如果是主节点 state MASTER 如果是备用节点 state BACKUP

​ 2>改动端口,主节点的接口就使用主节点的端口,从节点的端口就使用从端口

​ 3>改动优先级,必须保证主节点的优先级高过从节点的

​ 4>虚拟ip配置完以后要配置网段例如: 197就是当前虚拟机使用的网段,110就是随便配的,这个无所谓

             virtual_ipaddress {    
            192.168.197.110  #虚拟ip配置完之后就用它访问    
    }  

配置完以后,进行测试,无论使用哪个ngix的端口访问都可以,但是根据原先配置的主从,则会发现主服务器的ip addr中发现还有另外一个ip 192.168.197.110存在,这个ip就是我们配置的虚拟ip获取是keepalive的的ip,这个ip就是负责检测nginx,当主节点挂了以后,这个ip马上会帮定到从节点上, 用户访问的是这个虚拟ip,会跟这个虚拟ip进行绑定的,所以当一台nginx服务器挂掉以后,并不影响用户的访问,这就是高可用的实现,通过keepalived和nginx的配合最终达到高可用的实现.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,294评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,780评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,001评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,593评论 1 289
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,687评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,679评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,667评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,426评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,872评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,180评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,346评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,019评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,658评论 3 323
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,268评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,495评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,275评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,207评论 2 352