NGINX的重定向&负载均衡
准备工作
一台已经部署好nginx的虚拟机
两台环境干净的虚拟机
重定向
调整用户浏览的URL,看起来规范 合乎开发及产品人员的需求 为了让搜索引擎收录网站内容,让用户体验更好企业会将动态URL地址伪装成静态地址提供服务 网站更换新域名后 例如,访问京东的360buy.com会跳转到jd.com。根据特殊的变量、目录、客户端信息进行跳转 URL重写有利于网站首选域的确定,对于同一资源页面多条路径的301重定向有助于URL权重的集中
重定向
vim nginx.conf
server {
listen 80;
server_name www.westos.org; 定义域名
}
location / {
root /web;
index index.html index.htm;
}
}
访问时,实际访问的是/web/index.html文件。
设置发布文件
mkdir /web
vim /web/index.html
web/index.html
重启服务
cd /usr/local/nginx
./sbin/nginx -t
./sbin/nginx -s reload
测试
curl www.westos.org
重定向-临时&永久
rewrite重写规则
rewrite <regex> <replacement> [flag];
关键字 正则 替代内容 flag标记
关键字:其中关键字error_log不能改变
正则:perl兼容正则表达式语句进行规则匹配
替代内容:将正则匹配的内容替换成replacement
flag标记:rewrite支持的flag标记
flag标记说明:
last 本条规则匹配完成后,继续向下匹配新的location URI规则
break 本条规则匹配完成即终止,不再匹配后面的任何规则
redirect 返回302临时重定向,浏览器地址会显示跳转后的URL地址
permanent 返回301永久重定向,浏览器地址栏会显示跳转后的URL地址
rewrite ^/(.*) http://www.czlun.com/$1 permanent;
说明:
rewrite为固定关键字,表示开始进行rewrite匹配规则
regex部分是 ^/(.*) ,这是一个正则表达式,匹配完整的域名和后面的路径地址
replacement部分是http://www.czlun.com/$1 $1,是取自regex部分()里的内容。匹配成功后跳转到的URL。
flag部分 permanent表示永久301重定向标记,即跳转到新的 http://www.czlun.com/$1 地址上
. : 匹配除换行符以外的任意字符
? : 重复0次或1次 例如“do(es)?”能匹配“do”或者“does”,"?"等效于"{0,1}"
+ : 重复1次或更多次 如“ol+”能匹配“ol”及“oll”、“oll”,但不能匹配“o”
* : 重复0次或更多次 #如“ol*”能匹配“o”及“ol”、“oll”
\d :匹配数字
^ : 匹配字符串的开始
$ : 匹配字符串的结束
{
n} : 重复n次
{
n,} : 重复n次或更多次
[c] : 匹配单个字符c
[a-z] : 匹配a-z小写字母的任意一个
location 是在 server 块中配置。可以根据不同的 URI 使用不同的配置(location 中配置),来处理不同的请求。
修改配置文件
临时
vim nginx.conf
location / {
root /web;
index index.html index.htm;
}
}
server {
listen 80;
server_name www.westos.org;
rewrite ^/(.*)$ https://www.westos.org/$1; ##$1表示用户在这里输入的内容保留,只会重定向$1前面的
#rewrite ^/(.*)$ https://www.westos.org/$1 permanent; 永久重定向(可以缓存,临时的不允许缓存)
}
永久
server {
listen 80;
server_name www.westos.org;
#rewrite ^/(.*)$ https://www.westos.org/$1 permanent;
rewrite ^/bbs$ https://bbs.westos.org/index.html permanent; #表示访问www.westos.org并且以bbs结尾的,都定向到https://bbs.westos.org
重启服务
cd /usr/local/nginx
./sbin/nginx -t
./sbin/nginx -s reload
测试
curl www.westos.org
permanent 返回301
重定向-加密
www.westos.org(实质:http://www.westos.org) 自动跳转到 https://www.westos.org
即:http —> https
重新编译nginx
./configure --prefix=/usr/local/nginx --with-http_realip_module --with-http_image_filter_module=dynamic --with-http_ssl_module
make make install
cp ngx_http_image_filter_module.so /usr/local/nginx/modules/
生成自签名证书
cd /etc/pki/tls/certs
make cert.pem
执行完make后填写信息如下
cn -> shaanxi -> xi'an -> westos -> linux-> server1 ##注意主机名字 -> [email protected]
证书在/usr/local/nginx/conf/目录下才会生效
cp cert