Nginx
反向代理
proxy_pass
server {
listen 80;
server_name localhost;
proxy_pass http://www.qq.com # 如果去掉www的话则是重定向,地址栏会变成真实请求地址
}
注意:
- 如果去掉www的话则是重定向,地址栏会变成真实请求地址
- 代理的地址不能是https
upstream
upstream xx 定义一组负载均衡服务
upstream httpds {
server 192.168.1.2:80;
server 192.168.1.3:80;
}
server {
listen 80;
server_name localhost;
proxy_pass http://httpds #httpds 为upstream定义的服务
}
负载均衡策略
轮询
按列表顺序分配请求
权重
weight
根据配置的权重值大小进行分配请求,weight值越大分配到的请求比例越大
upstream httpds {
server 192.168.1.2:80 weight=8;
server 192.168.1.3:80 weight=2;
}
server {
listen 80;
server_name localhost;
proxy_pass http://httpds #httpds 为upstream定义的服务
}
down
不参与分配请求
upstream httpds {
server 192.168.1.2:80 weight=8;
server 192.168.1.3:80 weight=2;
server 192.168.1.4:80 weight=2 down;
}
server {
listen 80;
server_name localhost;
proxy_pass http://httpds #httpds 为upstream定义的服务
}
backup
备用服务,当其它服务不可用时会分配到请求
upstream httpds {
server 192.168.1.2:80 weight=8;
server 192.168.1.3:80 weight=2;
server 192.168.1.4:80 weight=2 down;
server 192.168.1.4:80 backup;
}
server {
listen 80;
server_name localhost;
proxy_pass http://httpds #httpds 为upstream定义的服务
}
ip_hash
根据客户端的IP地址转发到同一台服务器,可以保持会话
least_conn
最少连接访问
url_hash
定向流量转发,根据用户访问的url定向转发请求
fair
根据后端服务器响应时间转发请求
动静分离
URL Rewrite
rewrite是实现URL重写的关键指令,根据regex部分内容,重定向到replacement,结尾是flag标记
rewrite [flag];
关键字 正则 替换内容 flag标记
关键字:其中关键字error_log不能改变,位置:server,location,if
正则:perl兼容正则表达式语句进行规则匹配
替换内容:将正则匹配到内容替换成replacement
flag标记:rewrite支持的flag标记
flag标记说明
last # 本条规则匹配完成后,继续向下匹配洗你的location URI规则
break # 本条规则匹配完成即种植,不再匹配后面的任何规则
redirect #返回302临时重定向
permanent #返回301永久重定向,浏览器地址会显示跳转后的URL地址
实例
rewrite ^/([0-9]+).html$ /index.jsp?pageNum=$1 break;
防盗链配置
valid_referers none | blocked | server_names ... ;
- none 检测referer 头不存在的情况
- blocked 检车referer 头大值被防火墙或者代理服务器删除或尾状的情况。这种情况该头域的值以Http://或 https://开头
- server_names 设置一个或多个URL,检测Referer头域是否是这些URL中的某一个
在需要防盗链的location中配置
valid_referes 192.168.44.101;
if ($invalid_referer) {
return 403;
}