一、nginx作为代理服务器
1、正向代理和反向代理:
正向代理:代理服务于客户端;
反向代理:代理服务器服务于服务器端;比如做nginx做负载均衡。
反向代理:
location ~ /url.html {
proxy_pass http:/127.***:8080/
}
二、nginx rewrite 规则
作用:
1)用来重定向页面;兼容性支持;
2)SEO优化;
3)维护: 挂后台维护页面;
rewrite ^(.*)$ /pages/maintain.html break;
1、正则表达式(简单的介绍下)
. 匹配除换行符以外的任意字符;
? 重复0次或1次
+ 重复1次或更多次
* 最少连接数, 那个机器连接数少就分发
\d 匹配数字
^ 匹配字符串的开始
$ 匹配字符串的结束
{n} 重复n 次
{n,}重复n次或更多次
[c] 匹配单个字符c [a-z]匹配a-z小写字符的任意一个
\ 转义字符 。 rewite index\.php$ 匹配的 index.php
^~ 开头表示uri以某个常规字符串开头,不是正则匹配
~ 开头表示区分大小写的正则匹配;
~* 开头表示不区分大小写的正则匹配
/ 通用匹配, 如果没有其它匹配,任何请求都会匹配到
() 用于匹配括号之间的内容, 通过$1 $2调用
if ($http_usr_agent ~MSIE){
rewrite ^(.*)$ /site/$1 break;
}
server {
listen 80;
server_name localhost;
#拦截uri以tomcat_8080开头
location ^~ /tomcat_8080/ {
proxy_pass http://127.0.0.1:8080/;
index index.html index.htm;
}
#拦截uri以tomcat_8081开头
location ^~ /tomcat_8081/ {
proxy_pass http://127.0.0.1:8081/;
index index.html index.htm;
}
}
学习终端测试命令: pcretest
2、flag
last 停止rewrite 检查, 会继续往下匹配location
break 停止rewrite检查,不会往下location 进行匹配,有可能出现页面找不到的情况;
redirect 临时302重定向
permanent 永久重定向
root /opt/app/code;
location ~ ^/break {
rewrite ^/break /test/ break; #把/break 开头的跳转到 /test/ 页面, 停止往下匹配location
}
location ~ ^/last{
rewrite ^/last /test/ break; #把/last 开头的的 跳转到 /test/ 页面
}
location /test/ {
default_type application/json;
return 200 '{"status": "success"}'
}
三、geoip_module 模块
该模块用来:基于iP地址匹配maxMind GeoIP二进制文件, 读取ip所在的位置;
可以用来区分国内外http访问规则;