概念
nginx 什么是nginx nginx是一个高性能的HTTP和正、反向代理的服务器 nginx可以干什么 可以作为web服务器,可以实现反向代理,可以实现基于反向代理的负载均衡,可以作为静态资源服务器(类似于七牛云) 什么时候使用nginx 后台搭建集群的时候,访问量较大,使用
使用
nginx作为静态资源的web服务器 -部署前端项目,实现完全的前后端分离 nginx作为正向代理 -使用正向代理功能,进行上网-通过代理服务器来访问服务器的过程 nginx作为反向代理 -使用反向代理功能,用户使用客户端时,访问反向代理服务器,由反向代理服务器访问后端真实地址,获取数据后返回给用户,此时nginx就是一个对外的表面服务器,隐藏了真实地址,非常安全 nginx基于反向代理实现负载均衡 -基于反向代理服务器,像后端发送请求时,将多个请求按照轮询、权重和ip_hash来分发给多个后端服务器,减轻单个服务器的压力,实现负载均衡
实际应用
没有图形界面化时: 在nginx.conf文件中,添加新的反向代理服务器
没有实现负载均衡
没有实现负载均衡 格式 server { #反向代理服务器地址,监听用户客户端使用 listen 反向代理服务器端口号 ; #反向代理服务器名称 server_name 反向代理服务器名称 ; #资源 location / { #解决配置跨域 add_header 'Access-Control-Allow-Origin' '$http_origin'; add_header 'Access-Control-Allow-Credentials' 'true'; add_header 'Access-Control-Allow-Methods' 'POST, GET, OPTIONS, DELETE, PUT'; add_header 'Access-Control-Allow-Headers' 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,token'; #解决跨域post请求问题,OPTIONS是post请求的先锋部队,试探成功则post,否则失败 if ($request_method = 'OPTIONS') { #返回204,试探成功 return 204; } proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; #配置反向代理服务器访问后端的地址 proxy_pass 后端访问服务器地址 ; } }
实现负载均衡
-实现负载均衡 格式 #声明后端服务的集群地址 upstream 集群名字{ #默认规则 # -轮询-每个服务分发一次请求 # -权重-设置1-10的权重,按照百分比的概率给后端服务分发请求 # -ip_hash-通过用户的ip地址进行hash计算绑定一个服务-解决session共享问题 #规则选择一种,这里只做演示 server 服务名称:端口号 server localhost:8000 ;#默认轮询 server localhost:8001 weight=1 ;#权重-加起来100%概率 server localhost:8002 weight=9 ; ip_hash ;#在前面加上ip_hash开启绑定 server localhost:8003 ;该用户进来后指分发到该服务 } server { listen 反向代理服务器端口号 ; server_name 反向代理服务器名称 ; #资源 location / { #转发的地址 proxy_pass http://集群名字 ; } }
静态资源服务器
-静态资源服务器 格式 server { listen 反向代理服务器端口号 ; server_name 反向代理服务器名称 ; #资源 location / { root 静态资源地址 ; autoindex on ; } }
web服务器使用
-web服务器使用 格式 server { listen 端口号 ; server_name 服务器名称 ; #资源 location / { root 根目录 ; index 首页页面 ; } }