1.nginx简介
http和反向代理web服务器。
2.主要功能
- 反向代理
- 负载均衡
- 动静分离
- 高可用集群
3.安装
centos:yum install nginx
配置文件位置:/etc/nginx/nginx.conf
4.常用命令
- 启动:nginx
- 停止:nginx -s stop
- 重新加载配置文件:nginx -s reload
5.反向代理
5.1正向代理
- 简述:客户端通过正向代理访问互联网。
- 特点:正向代理隐藏了真实的客户端。客户端访问时需要配置,且需要知道真实服务器地址。
5.2反向代理
- 简述:客户端访问反向代理,由反向代理转发至真正的服务器。
- 特点:反向代理隐藏了真实的服务端。客户端访问无需配置,直接访问代理服务器。
5.2.1配置实现
监听端口,通过路径匹配,转发到不同的服务器。
server{
listen 80
location /{
proxy_pass http://192.168.1.10:8080;
}
}
server{
listen 81
location /{
proxy_pass http://192.168.1.11:8080;
}
}
6.负载均衡
6.1 概述
通过增加服务器的数量,nginx将请求分配到不同的服务器,以此来减轻单服务器的负担。
6.2 配置实现
#负载均衡
upstream myservice{
server 192.168.1.10:8080;
server 192.168.1.11:8080;
server 192.168.1.12:8080;
}
server{
listen 80
location ~/test/{
proxy_pass http://myservice;
}
}
6.3 分配服务策略
6.3.1 轮询(默认)
每个请求按时间顺序逐一分配到不同的服务器,如果服务器宕机,能自动剔除。
6.3.2 权重
根据设置的权重来分配,权重越高的服务器分配到的客户端越多。
#负载均衡
upstream myservice{
#设置权重
server 192.168.1.10:8080 weight 1;
server 192.168.1.11:8080 weight 5;
server 192.168.1.12:8080 weight 10;
}
server{
listen 80
location ~/test/{
proxy_pass http://myservice;
}
}
6.3.3 ip_hash
根据请求的ip的哈希结果分配,每个客户端固定访问一个后端服务器。
#负载均衡
upstream myservice{
#配置hash
ip_hash;
server 192.168.1.10:8080;
server 192.168.1.11:8080;
server 192.168.1.12:8080;
}
server{
listen 80
location ~/test/{
proxy_pass http://myservice;
}
}
6.3.4 fair(第三方模块)
根据服务器响应时间来分配请求,响应时间短的优先分配。
#负载均衡
upstream myservice{
#配置fair
fair;
server 192.168.1.10:8080;
server 192.168.1.11:8080;
server 192.168.1.12:8080;
}
server{
listen 80
location ~/test/{
proxy_pass http://myservice;
}
}
7.动静分离
7.1 概述
将动态请求(访问后台应用)和静态请求(访问html、css、js、jpg等静态资源)区分开。提高用户访问静态文件的速度,降低对后台应用的访问,提高服务器响应速度和性能
动态请求→→Nginx→→Tomcat
静态请求→→Nginx→→静态资源服务器(html、css、image)
7.2 配置实现
server {
listen 80;
server_name 192.168.1.50;
#静态资源配置
location /static/ {
root /www/data/;
autoindex on;#显示文件列表
}
#动态资源配置
location /example {
proxy_pass http://test;
proxy_redirect default;
}
}
7.3 root与alias的区别
二者都可以定义在location模块中,都用来指定请求资源的真实路径。
- root,意为location地址值的根目录,真实路径为root + location;
- alias,意为location地址值别名,真是路径即为alias指定的路径。
比如访问www.123.com/static/abc.jpg
若使用root配置,真实访问路径为:/www/data/static/abc.jpg
location ~/static/{
root /www/data/;
}
若使用alias配置,真实访问路径为:/www/data/abc.jpg
location ~/static/{
alias /www/data/;
}
实际访问的是 /www/data/abc.jpg
8.高可用的集群
(后续更新)