Nginx简介

    1. Nginx是一个高性能的http和反向代理服务器,也是一个IMAP/POP3/SMTP服务器,由老毛子发布

其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。

     Nginx是一款轻量级的web服务器/反向代理服务器及电子邮件代理服务器

主要特点:占有内存少,并发能力强。

并发量:能够支持50000次的并发链接

下载地址:

http://nginx.org/en/download.html

    2.反向代理

  Nginx简介_第1张图片

说明:1.nginx首先需要监听特定的域名

      2.当用户根据域名进行在资源访问时,首先会访问nginx

  3.之后nginx代替请求者根据内部的配置文件,实现反向代理,将请求转化为特定的请求路径进行资源访问

4.当nginx获取资源后将数据返回给用户。完成请求的正确的响应


二。 Nginx安装

1. nginx安装文件保存到本地.不要放到C盘下.不要有中文路径

2. 第一次使用时以管理员身份运行.

3. 访问localhost检测Nginx启动是否正确.

4.找到指定安装目录 cmd

start nginx  启动

nginx -s reload 重启

nginx -s stop 关闭

关于nginx进程说明

当启动一次时,会开启2个进程,一个是主进程,一个是守护进程。

在任务管理器中守护进程先关掉才能关掉主进程


三 nginx的实现反向代理

修改安装包下的conf文件下的nginx.conf文件

我这边代理的是图片回显

server {

   listen 80;

   server_name image.jt.com;

    location / {

     root E:\jt-upload;

   }

}

说明:image.it.com自定义的域名在hosts文件中配置,E:\jt-upload这是我上传玩图片的一格文件夹

 root可以代理 ip地址,默认一般都是localhost,hosts在windows,一般在c盘system下的drivers下的etc下

当然nginx还可以代理多台tomcat服务器,只需要修改配置文件



Nginx反向代理之负载均衡

1.轮循策略

 轮循是nginx中默认的负载均衡策略,可以将请求动态的根据配置文件的顺序,发往不同的服务器中

upstream  jt{
server  127.0.0.1:8090;
server  127.0.0.1:8091;
server  127.0.0.1:8092;
}


    server {
        listen       80;
        server_name  localhost;

        location / {
            
            #index  index.html index.htm;
    proxy_pass http://jt;
        }

#表示注释和//一个意思

2.权重方式

 说明:可以根据服务器性能动态的分片请求链接数,让高性能的服务器尽量多处理请求 weight=6;

其中数字是任意的,编辑完成后nginx内部调用算法确定配置的权重的比例

#配置tomcat集群  语法 server IP:端口

#默认负载均衡策略:采用轮询机制    2.权重 配置权越高 执行的链接数越大

upstream jt {

server localhost:8091 weight=6;

server localhost:8092 weight=3;

server localhost:8093 weight=1;

}


3.IP_hash

 FAQ:如果分布式加集群部署方式,如果用户只登陆一次,将用户的session数据保存到服务器中

,那么这样的方式可能会出现问题,如果某些操作需要获取用户数据之后才能调用,那么采用分布式

加集群的设计会出现用户频繁登陆的现象、

 解决办法

   可以采用IP_hash方式实现session共享(session粘着)

 特点:根据用户的ip地址进行哈希运算,计算出唯一的一台服务器,之后用户访问时,访问特定的服务器,用户ip与

服务器绑定。

 缺点:安全性不好,实际开发几乎不用

 改进:sso(单点登录技术)

四:项目上线(发版)步骤

1. 修改nginx配置文件,将需要上线的服务器做下线处理

2. 将需要部署的tomcat服务器先关机.之后部署war.

3. tomcat启动后先测试.测试无误后,修改Nginx配置文件将down去掉.

问题:Nginx重启过程中,如果用户继续发起请求,这时该如何处理??

解决:不用做任何处理.因为Nginx的启动/关闭的速度是很快的(秒级


nginx备用机机制

 说明:当所有主机遇忙或者主机宕机时,没有能够及时处理请求的服务器那么备用机开始自行处理

upstream jt {

server localhost:8091 weight=6;

server localhost:8092 weight=3 down;

server localhost:8093 weight=1 backup;

}

nginx健康检测

 

说明:当后台的服务器出现宕机的现象,当时nginx中的配置文件并没有改变时,请求依然会发往故障的机器.需要人为的维护配置文件,这样的操作不智能.那么采用健康检测机制.可以实现故障的自动的迁移.

属性介绍:

1.max_fails=1  当检测服务器是否正常时,如果检测失败的次数达到规定的次数时,则断定该服务器故障,在规定的时间周期内,不会将请求发往该机器.

2.fail_timeout=60s定义时钟周期

设定健康检测

upstream jt {

server localhost:8091 weight=6 max_fails=1 fail_timeout=60s;

server localhost:8092 weight=3 max_fails=1 fail_timeout=60s;

server localhost:8093 weight=1 max_fails=1 fail_timeout=60s;

}

2.定义超时时间

server {

listen 80;

server_name manage.jt.com;

 

location / {

#反向代理到url

#proxy_pass http://localhost:8091;

        proxy_pass  http://jt;

        proxy_connect_timeout       1;  

        proxy_read_timeout          1;  

        proxy_send_timeout          1;

      }

}

3.nginx中添加请求头参数,可以保证请求参数不丢

proxy_set_header X-Forwarded-Host $host;

proxy_set_header X-Forwarded-Server $host;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;





你可能感兴趣的:(Nginx简介)