Nginx 学习

Nginx 学习,第1张

Nginx 学习

Nginx学习

Nginx简介

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

作用

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

正向代理与方向代理

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

反向代理

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都是一个独立的进程,但每一个进程里只有一个主线程,通过异步非阻塞的方式来处理请求,即使是千万个请求也不在话下。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/4677705.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-06
下一篇 2022-11-06

发表评论

登录后才能评论

评论列表(0条)

保存