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 ~ .jspremote_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 表示全局变量,客户端地址)

六:负载均衡配置

使用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的配合最终达到高可用的实现.

你可能感兴趣的:(Nginx的使用和如何实现高可用性)