Nginx 学习

Nginx学习

Nginx简介

Nginx是一个高性能的HTTP和反向代理服务器。特点:占有内存小,并发能力强。

作用

Nginx可以作为静态页面的web服务器。

正向代理与方向代理

正向代理:对用户来说是可感知的。

user
vpn
外网

反向代理

1-对用户是透明的(无感知的),因为客户端不需要任何配置就可以访问,

在这里插入图片描述

总结:正向代理隐藏客户端,反向代理隐藏服务端。

负载均衡

当并发量不大的时候,一台服务器ok,当并发量上去的时候,怎么解决呢

1-升级CPU,升级内存。(纵向升级)

2-增加服务器的数量。(横向升级)----集群的概念也就产生。

负载均衡的规则也有多种。比如:轮询,随机,等等。

动静分离

将静态资源与动态资源分开。

Nginx安装

Nginx配置文件

全局块

配置一些影响nginx服务器整体运行的配置指令,包括用户组,进程PID存放路径,日志存放路径以及日志类型等

worker_processes  1;
events块
events {
    worker_connections  1024;
}

events涉及的指定主要影响:nginx服务器与用户的网络连接。

work process 下的网络连接进行序列化,是否允许同时接受多个网络连接,选取那种事件驱动模型来处理连接请求,每个work process 可以支持的最大连接数。

例如:上面的就代表 work process 支持的最大连接数是1024

事件块:这部分对nginx的性能影响较大,在实际中要灵活配合。

http块
http {
    include mime.types;
    default_type application/octet-stream;

    sendfile on;

    keepalive_timeout 65;

    upstream gulimall{
        server 127.0.0.1:88;
    }

    include D:/0/nginx-1.16.1/conf/conf.d/*.conf;

}
# gulimall 配置
server {
    listen       90;
    server_name  gulimall.com;
    location /static/ {
        root D:/0/nginx-1.16.1/html;
    }
    location / {
    	proxy_set_header Host $host;
        proxy_pass http://gulimall;
    }
    
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   html;
    }

}
http全局块

全局块包括

文件引入,MIME-TYPE 定义,日志自定义,连接超时时间,单链接请求数上限。

http {
    include mime.types;
    default_type application/octet-stream;

    sendfile on;

    keepalive_timeout 65;

    include D:/0/nginx-1.16.1/conf/conf.d/*.conf;

}
server服务块

这块和虚拟主机有密切关系。

每个http块可以包含多个server块,而每个server块就相当于一个虚拟主机。

而每个server快分分为全局server快,以及可以同时包含多个location块。

全局server块

配置:本虚拟主机的监听配置和本虚拟主机名称以及IP配置。

location 块

主要作用:nginx服务器接收到的请求字符串(serverName/uriString),对请求路径进行匹配,对特定的请求进行处理。

地址定向,数据缓存,应答控制。

server {
    listen       90;
    server_name  gulimall.com;
    location /static/ {
        root D:/0/nginx-1.16.1/html;
    }
    location / {
    	proxy_set_header Host $host;
        proxy_pass http://gulimall;
    }
    
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   html;
    }

}

Nginx配置实例

location语句块
    location / {
    	proxy_set_header Host $host;
        proxy_pass http://gulimall;
    }

location xxx {}

xxx为

  1. = :严格匹配路径
  2. ~ : 包含正则表达式,区分大小写
  3. ~* :包含正则表达式,不区分大小写

注意:如果uri包含正则表达式,则必须有 ~或者 " ~* "打头阵。

负载均衡

nginx 实例

Nginx配置负载均衡

主配置文件:部分配置如下


http {
    keepalive_timeout 65;
# 你的服务名
    upstream gulimall{
        ip_hash;
        server 127.0.0.1:88 weight=1;
        server 127.0.0.2:88 weight=1;
    }

    include D:/0/nginx-1.16.1/conf/conf.d/*.conf;

}

子配置文件:部分配置

server {
    listen       90;
    server_name  gulimall.com;
    location / {
    	proxy_set_header Host $host;
        proxy_pass http://gulimall;
    }
    
}
分配方式(策略)
轮询
权重

上面nginx实例,就是权重方式。权重值越大,服务的几率越大。

ip_hash

每个请求按ip的hash结果分配,这样每个房客固定访问一个后端服务器,可以解决session的问题。

fair(第三方)

动静分离

server {
    listen       90;
    server_name  gulimall.com;
    location /static/ {
        root D:/0/nginx-1.16.1/html;
    }
}


Nginx 原理与优化参数

master-worker

在这里插入图片描述
在这里插入图片描述

首先:对于每个worker进程来说,独立的进程,不需要加锁。

Nginx同redis类似都采用了IO多路复用机制,每个worker都是一个独立的进程,但每一个进程里只有一个主线程,通过异步非阻塞的方式来处理请求,即使是千万个请求也不在话下。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值