Nginx笔记

Nginx

概念介绍

Nginx 是一个十分轻量级的 HTTP 服务器,Nginx,是一个高性能的HTTP和反向代理服务器,同时也是一个 IMAP/POP3/SMTP 代理服务器。

正向代理与反向代理

正向代理类似一个跳板机,代理访问外部资源

比如我们国内访问谷歌,直接访问访问不到,我们可以通过一个正向代理服务器,请求发到代理服,代理服务器能够访问谷歌,这样由代理去谷歌取到返回数据,再返回给我们,这样我们就能访问谷歌了。

正向代理的用途:

  • 访问原来无法访问的资源,如google
  • 可以做缓存,加速访问资源
  • 对客户端访问授权,上网进行认证
  • 代理可以记录用户访问记录(上网行为管理),对外隐藏用户信息

反向代理的作用:
保证内网的安全,阻止web攻击,大型网站,通常将反向代理作为公网访问地址,Web服务器是内网

​ 负载均衡,通过反向代理服务器来优化网站的负载

负载均衡和动静分离

将请求分发到多个服务器上,将负载分发到不同的服务器,也就是我们所说的负载均衡。

Nginx负载均衡策略

轮询默认方式
weight权重方式
ip_hash依据ip分配方式
least_conn最少连接方式
fair(第三方)响应时间方式
url_hash(第三方)依据URL分配方式

为了加快网站的解析速度,可以把动态页面和静态页面由不同的服务器来解析,加快解析速度。降低原来单个服务器的压力。

Nginx安装

常用命令

启动:./nginx

查看版本号:nginx -v

关闭:nginx -s stop

重加载:nginx -s reload

配置文件

Nginx的主配置文件是nginx.conf,这个配置文件一共由三部分组成,分别为全局块、events块和http块。在http块中,又包含http全局块、多个server块。每个server块中,可以包含server全局块和多个location块。在同一配置块中嵌套的配置块,各个之间不存在次序关系。

  1. worker_processes,工作进程,用于指定Nginx的工作进程数量。其数值一般设置为cpu内核数量,或内核数量的整数倍。该值不仅仅取决于cpu内核数量,还与硬盘数量及负载均衡模式相关,在不确定时还可以指定其值为auto
  2. worker_connections:用来配置单个worker进程最大的连接数
#全局块
#user  nobody;
worker_processes  auto;

#event块
events {
    worker_connections  1024;
}

#http块
http {
    #http全局块
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    #server块
    server {
        #server全局块
        listen       8000;						#监听端口
        server_name  localhost;					#监听地址
        #location块
        location ~*^.+$ {                            ##请求的url过滤,正则匹配,~为区分大小写,~*为不区分大小写。
            #root path;  #根目录
            #index vv.txt;  #设置默认页
            proxy_pass  http://mysvr;  #请求转向mysvr 定义的服务器列表
            deny 127.0.0.1;  #拒绝的ip
            allow 172.18.5.54; #允许的ip     
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
    #这边可以有多个server块
    server {
      ...
    }
}

反向代理配置

http {
    #http全局块
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    #server块
    # 实现浏览器输入192.168.31.83:8001后跳转到tomcat的8080端口
    server {
        #server全局块
        listen       8001;
        server_name  192.168.31.83;
        #location块
        location / {
            root   html;
            proxy_pass http://127.0.0.1:8080;
            index  index.html index.htm;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
    # 使用nginx反向代理,根据访问的路径跳转到不同的tomcat端口中去
    # 192.168.31.83:8001/edu 192.168.31.83:8001/icu 
    server {
        #server全局块
        listen       8001;
        server_name  192.168.31.83;
        #location块
        location ~ /edu/ {
            proxy_pass http://127.0.0.1:8002;
        }
        location ~ /icu/ {
            proxy_pass http://127.0.0.1:8003;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

负载均衡配置

http {
    # http全局块
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    # 设定负载均衡后台服务器列表 
    upstream myserver { 
    	ip_hash; 
        server 192.168.31.83:8002;  
        server 192.168.31.83:8003;  
    }
    
    # server块
    # 实现浏览器输入192.168.31.83:8001,负载均衡效果,平均到8002和8003的tomcat服务器中
    server {
        #server全局块
        listen	8001;
        server_name  192.168.31.83;
        #location块
        location / {
            proxy_pass http://myserver;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

nginx的原理

Nginx 采用的是多进程(单线程) & 多路IO复用模型,使用了 I/O 多路复用技术的 Nginx,就成了”并发事件驱动“的服务器,同时使用sendfile等技术,最终实现了高性能。主要从以下几个方面讲述Nginx高性能机制:

  • Nginx master-worker进程机制。
  • IO多路复用机制。
  • Accept锁及REUSEPORT机制。
  • sendfile零拷贝机制
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值