一.什么是Nginx:

  Nginx是一个高性能的HTTP和反向代理服务,也是一个IMAP/POP3/SMTP服务。

二.Nginx作用:

  反向代理,集群,虚拟服务器,负载均衡,动静分离,解决跨域问题等

三.安装Nginx:

  1.链接 https://nginx.org/en/download.html,如下

    

nginx解压后路径里面没有_java

  2.linux和windows版本下载完后解压(windows版本解压即可)

  以linux为例,解压后得到

    

nginx解压后路径里面没有_nginx_02

  3.进入文件夹后可以看到目录

    

nginx解压后路径里面没有_运维_03

  4.执行



./configure



  5.如果出现错误如下,则

    

nginx解压后路径里面没有_nginx解压后路径里面没有_04

      (1)安装编译工具及库文件



yum -y install make zlib zlib-devel gcc-c++ libtool  openssl openssl-devel



      (2)安装PCRE,链接https://sourceforge.net/projects/pcre/files/pcre/

        下载PRCE安装包并解压,例如下图

        

nginx解压后路径里面没有_nginx解压后路径里面没有_05

        进入解压后的文件夹,找到configure并执行



cd prce-8.43.tar.gz
./configure



        安装并查看prce版本



make && make install



pcre-config --version



  6.再次进入nginx-1.14.2文件夹,执行



./configure --prefix=/usr/local/webserver/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/usr/local/src/pcre-8.43


(注意上面那行代码,这里默认会去找/usr/local/src/ 下的prce-8.43文件夹),然后make install完成安装。

  8.查看nginx版本(上面指定的目录)



/usr/local/webserver/nginx/sbin/nginx -v

  例如

    

nginx解压后路径里面没有_nginx解压后路径里面没有_06

  9.启动nginx,进入第6步中--prefix所指定的文件夹中,再进入sbin文价夹中,执行./nginx

    (在nginx文件夹中重启是./nginx -s reopen)

  10.查看nginx是否启动,例如

    

nginx解压后路径里面没有_java_07

  nginx默认端口是80,所以直接访问ip地址,例如下图所示,即可知nginx启动成功

    

nginx解压后路径里面没有_nginx解压后路径里面没有_08

四.使用Nginx

   

nginx解压后路径里面没有_nginx_09

  1.静态资源文件夹里的文件可以直接在外部访问,例如

    

nginx解压后路径里面没有_java_10

  2.实现反向代理(可以不暴露真实IP地址)

    修改nginx.conf配置文件

      

nginx解压后路径里面没有_nginx_11

注意:上面那个箭头指向的地址,必须在主机hosts文件中设置地址映射(域名解析),如下图

      

nginx解压后路径里面没有_java_12

  重新加载配置文件



./nginx -s reload



  测试:

    

nginx解压后路径里面没有_nginx解压后路径里面没有_13

如果反向代理没有成功,可以查看log日志,找到并进入logs文件夹,输入



cat error.log



  例如下图

    

nginx解压后路径里面没有_操作系统_14

如果发现正常启动成功,却没有成功配置反向代理。可以看看是否是自己修改了正确的配置文件(注意,nginx解压后的conf文件夹中有一个配置文件,而nginx启动目录下的文件夹中有一个nginx.conf配置文件,还有一个nginx.conf.default配置文件,可以试着将三个配置文件都修改试试,如果是按照上面安装步骤,应该是只修改的是/usr/local/webserver/nginx/conf中的nginx.conf)

 用nginx实现负载均衡)

    负载均衡算法: 

轮询机制:在配置文件http中添加 (请求会轮流转发到129和130两个服务器的tomcat服务器)



upstream backserver { 
    server 192.168.2.129:8080; 
    server 192.168.2.130:8080; 
}



注意:proxy_pass指向的是backserver ,如http://backserver
      权重(比例分配):



upstream backserver { 
    server 192.168.2.129:8080 weight=10; //129访问10次,130访问一次
    server 192.168.2.130:8080 weight=1; 
}


      IP绑定:(随机绑定一个,而且绑定后一个ip地址就固定访问一个服务器了,可以解决session共享问题,可一旦该服务器挂了,会出现数据丢失)



upstream backserver { 
    ip_hash; 
    server 192.168.2.129:8080; 
    server 192.168.2.130:8080; 
}



  4.Nginx宕机容错机制

    通过上述安装的Nginx默认是开启宕机容错机制的,比如说上面集群中server 192.168.2.129:8080挂掉,它会自动找130的服务器

    如果想要添加宕机容错规则的话,可以在配置文件中的proxy_pass下面添加



proxy_connect_timeout 5; #最大连接时间
proxy_send_timeout 5; #最大发送时间
proxy_read_timeout 5; #最大读取时间