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