Nginx入门
Nginx
1.什么是Nginx
Nginx是一个高性能Web和反向代理服务器,占用内存少,并发能力强

2.Nginx的特性
-
静态web网站(站点)
-
Nginx可直接作为静态资源的服务器,高效处理HTML、CSS、Js、图片、视频等静态文件的请求
-
Nginx本身不具有jdk的功能,解析不了JSP
-
Nginx对静态资源的处理效率极高,通过操作系统底层的I/O多路复用模型(如epoll),能同时处理大量并发链接,且占用内存极低
-
配置方式:通过location指令指定静态资源目录,修改配置文件
server { listen 81; server_name localhost; location / { root html; index index.html index.htm; } }
-
-
负载均衡服务器
- 当后端存在多台应用服务器时,Nginx可作为负载均衡器,将客户端请求合理分配到不同的服务器,避免单台服务器过载
- 核心作用:提高系统的吞吐量、增强可用性
- 常用策略:
- 轮询(默认):按顺序一次分配
- 权重:按权重分配(为性能不同的服务器分配权重)
- IP哈希:根据客户端的IP哈希值分配请求,确保同一客户端始终访问同一服务器
upstream 65web { server 192.168.41.1:8080 weight=1 max_fails=2 fail_timeout=30s; server 192.168.41.1:8081 weight=2 max_fails=2 fail_timeout=30s; # weight:服务器权重 权重值越高,分配到的请求比例越大 # max_fails:指定在fail_timeout时间内,允许请求失败的最大次数 # fail_timeout:判断服务器不可用的时间窗口;当服务器标记为不可用时,等待xx秒才会尝试向该服务器发送请求 } # location 规则 静态资源 location ~* \.(gif|jpg|jpeg|png|css|js|ico|html)$ { root /usr/local/nginx/html81; } # location 规则 动态资源 location / { proxy_pass http://65web/; } -
反向代理服务器
- 反向代理是指Nginx作为客户端的“中间人”,接受客户端请求后,转发到后端服务器,并将后端响应返回给客户端
- 核心作用:
- 隐藏后端服务器IP,提高安全性
- 统一入口
- 实现HTTPS终结(Nginx处理SSL证书,后端服务无需关心加密)
- 与正向代理的区别:
- 正向代理 是客户端主动配置的代理,用于访问外部资源
- 反向代理 是服务端部署的代理,用于隐藏后端服务细节
server { listen 81; location / { proxy_pass http://192.168.41.1:8080; # 转发到后端 API 服务 proxy_set_header Host $host; # 传递原始 Host 头 proxy_set_header X-Real-IP $remote_addr; # 传递客户端真实 IP } } -
动静分离服务器
- 动静分离服务器指的是将静态资源和动态资源的请求分开处理,Nginx直接处理静态资源,动态资源请求转发到后端应用服务器
- 核心作用:减轻后端应用级服务器的压力,提高整体服务响应速度
- 实现方式:通过location指令匹配URL路径,区分静态和动态的请求
server { listen 80; server_name example.com; # 静态资源:直接由 Nginx 处理 location ~* \.(html|css|js|jpg|png)$ { root /var/www/static; expires 1d; # 设置缓存时间,减少重复请求 } # 动态资源:转发到后端 Tomcat location /api { proxy_pass http://192.168.1.100:8080; } }
3.Nginx常用命令
Nginx启动命令:./nginx -s reload
4.location语法规则
语法规则:location [= | ~ | ~* | ^~] /url/ {...}
- = 开头 表示精确匹配
- ~ 开头 表示区分大小写的正则匹配
- ~* 开头 表示不区分大小写的正则匹配
- ^~ 开头 表示表示 url 以某个常规字符串开头,理解为匹配 url路径即可
- / 通用匹配,任何请求都会匹配到
优先级
- 匹配 =
- 匹配 ^~
- 按文件中顺序的正则匹配
- 交给 / 通用匹配

浙公网安备 33010602011771号