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为
- = :严格匹配路径
- ~ : 包含正则表达式,区分大小写
- ~* :包含正则表达式,不区分大小写
注意:如果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条)