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;
}

文章作者: Tariq
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Tariq !
  目录