主要描述下面4个内容:
1.Nginx的正向代理和反向代理
2.Nginx的动静分离
3.Nginx的负载均衡
4.Nginx的配置详解
解释:
Nginx的正向代理:代理的是客户端。
Nginx的反向代理:代理的是服务端。在web服务中,一般都是反向代理,用一个nginx代理服务的统一入口。
将静态资源和动态资源放在不同的URL
将静态资源部署到Nginx非常简单,只需要将文件复制到Nginx安装目录下的html目录中即可。
- server {
-
- listen 80; #监听端口
-
- server_name localhost; #服务器名称
-
- location / { #匹配客户端请求url
-
- root html; #指定静态资源根目录
-
- index index.html; #指定默认首页
-
- }
-
- }
将动态资源指向后端服务接口。
3.Nginx负载均衡:
Nginx给出来三种关于负载均衡的方式:
轮询法(默认方法):
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
适合服务器配置相当,无状态且短平快的服务使用。也适用于图片服务器集群和纯静态页面服务器集群。
weight权重模式(加权轮询):
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的
情况。
这种方式比较灵活,当后端服务器性能存在差异的时候,通过配置权重,可以让服务器的性能得到充分发挥,有效利用资源。weight和访问比率成正比,用于后端服务器性能不均的情况。权重越高,在被访问的概率越大
ip_hash:
上述方式存在一个问题就是说,在负载均衡系统中,假如用户在某台服务器上登录了,那么该用户第二次请求的时候,因为我们是负载均衡系统,每次请求都会重新定位到服务器集群中的某一个,那么已经登录某一个服务器的用户再重新定位到另一个服务器,其登录信息将会丢失,这样显然是不妥的。
我们可以采用ip_hash指令解决这个问题,如果客户已经访问了某个服务器,当用户再次访问时,会将该请求通过哈希算法,自动定位到该服务器。每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
4.Nginx配置详解:
- [root@chensiqi conf]# egrep -v "#|^$" nginx.conf #去掉包含#号和空行的内容
- worker_processes 1; #worker进程的数量
- error_log logs/error.log; #错误日志(默认没开)
- pid logs/nginx.pid; #进程号(默认没开)
- events { #事件区块开始
- worker_connections 1024; #每个worker进程支持的最大连接数
- } #事件区块结束
- http { #http区块开始
- include mime.types; #Nginx支持的媒体类型库文件包含
- default_type application/octet-stream; #默认的媒体类型
- sendfile on; #开启高效传输模式
- keepalive_timeout 65; #连接超时。
- server { #网站配置区域(第一个server第一个虚拟主机站点)
- listen 80; #提供服务的端口,默认80
- server_name www.chensiqi.org; #提供服务的域名主机名
- location / { #第一个Location区块开始
- root html; #站点的根目录(相对于nginx安装路径)
- index index.html index.htm; #默认的首页文件,多个用空格分开
- }
- error_page 500 502 503 504 /50x.html; #出现对应的http状态码时,使用50x.html回应客户
- location = /50x.html { #Location区块开始,访问50x.html
- root html; #指定对应的站点目录为html
- }
- }
- server { #网站配置区域(第二个server第二个虚拟主机站点)
- listen 80; #提供服务的端口,默认80
- server_name bbs.chensiqi.org; #提供服务的域名主机名
- location / { #服务区块
- root html; #相对路径(nginx安装路径)
- index index.html index.htm;
- }
- location = /50x.html { #发生错误访问的页面
- root html;
- }
- }
- }
-