Nginx
Nginx的作用
- 正向代理
- 反向代理
- 负载均衡
- HTTP服务器
正向代理
正向代理对目标服务器透明。
是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端必须要进行一些特别的设置才能使用正向代理。
作用:
1. 访问客户端无法直接访问的资源
2. 对客户端访问进行授权,上网认证
3. 代理可以记录用户的访问记录(上网行为管理),隐藏用户信息等
反向代理
反向代理对客户端透明,客户端不需要任何配置,即用户并不知道使用了代理。
反向代理(Reverse Proxy)实际运行方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。
作用:
1. 保证内网的安全。通常代理服务器为公网地址,而业务服务器为内网,外部无法直接访问
2. 负载均衡
负载均衡
配置反向代理后,代理服务可以将同一个请求地址分发向不同的业务服务器,实现负载均衡。
负载均衡策略:
1. 轮询(默认)
2. 指定权重轮询
3. ip_hash:根据请求Ip的hash值分配,实现同一IP的请求固定分发向同一业务服务器
4. url_hash:根据请求的url的hash值分配,将同一个url的请求固定分发向同一业务服务器
注意:springMVC业务使用Nginx负载均衡时,需在nginx.conf中将代理后的请求地址转为源请求地址,否则会报错
反向代理具体配置
1. alias
别名,用于访问文件系统
代理后的url,不添加location节点匹配的url
location /test {
alias /first/second/img/;
}
请求:/test/1.jpg 访问:/first/second/img/1.jpg
2. root
用于访问文件系统
代理后的url,添加localtion节点匹配的url
location /test {
root /first/second/img/;
}
请求:/test/1.jpg 访问:/first/second/img/test/1.jpg
3. proxy_pass
代理,业务服务接口等,不添加location节点匹配的url
location /test {
proxy_pass http://127.0.0.1:8080/;
}
请求:/test/1.do 访问:http://127.0.0.1:8080/1.do
常用命令
/安装目录/sbin/nginx -c /安装目录/conf/nginx.conf ##启动服务
/安装目录/sbin/nginx -s stop ##停止服务
/安装目录/sbin/nginx -s reload ##重启服务,常用于修改nginx.conf文件后
/安装目录/sbin/nginx -t ##检查nginx.conf文件配置