08-Nginx地址重写 rewrite

Nginx地址重写 rewrite

Rewrite又称URL Rewrite,即url重写,就是把传入Web的请求重定向到其他url的过程。

rewrite重写好处:

1.动态页面url重写伪静态化,比如http://www.123.com/news/index.php?id=123 使用URLRewrite 转换后可以显示为 http://www.123.com/news/123.html。

2.重写更安全,url中暴露太多参数,可能会造成信息泄露,静态化的url可以给我们带来更高的安全。

3.实现网络地址跳转,例如用户访问360buy.com,将其跳转到jd.com。例如当用户访问80端口时,将其跳转到443端口。

示例1:

访问http://192.168.122.4/abc/a/1.html ==> http://192.168.122.4/ccc/bbb/b.html

提示:

1、/abc/a/1.html页面是否存在不重要
2、/ccc/bbb/b.html页面必须存在

mkdir  -p  /app/nginx/html/ccc/bbb
echo bbbbbbbbbbbbbbbb.html >  /app/nginx/html/ccc/bbb

vim  /app/nginx/conf/nginx.conf
location /abc { 
        rewrite .* /ccc/bbb/b.html ;#  permanent;
        # return 301 /ccc/bbb/b.html;
        }
0

添加permanent参数和不添加区别如下(除了好看没啥用)

0

查看效果
我们访问的是10.10.81.81/abc

0

但是实际上跳转的是10.10.81.81/ccc/bbb/b.html

0

示例二
访问cloud.com,跳转到百度
注意客户端的解析

cd   /etc/nginx/conf.d

vim  cloud.conf

   server {
   listen       80;
                 server_name  cloud.com;
                 index  index.php index.html;
                root  /cloud;

                rewrite ^(.*)$  https://baidu.com$1 permanent;

     }
0

访问测试:
已成功跳转

0

示例三
80跳转443
访问:80www.test.com 跳转nginx.linux.com443

一、.搭建私有CA机构

1.基于https的协议工作的一中虚拟主机,要构建这样的网站需要mod_ssl模块的支持。

2.需要提供两个文件:证书文件和私钥文件。

证书文件:标识这个网站服务器身份。

私钥文件:主要用来实现在服务器端对数据进行加密,然后在网站中传输。

(因证书生产环境需要找对应机构申请,要钱,本案例采用私有CA的方式:让web自己作为

一个证书服务器给自己颁发一个证书)

生成证书及秘钥文件

1)准备存放证书和秘钥的目录

mkdir /etc/nginx/ssl

2)使用openssl生成基于rsa数学算法长度为1024bit的秘钥,文件必须以key为结尾

openssl genrsa 1024 > /etc/nginx/ssl/server.key
0

3)使用秘钥文件生成证书申请

openssl req -new -key /etc/nginx/ssl/server.key > /etc/nginx/ssl/server.csr
0

4)同意申请,生成证书

openssl req -x509 -days 365 -key /etc/nginx/ssl/server.key -in /etc/nginx/ssl/server.csr > /etc/nginx/ssl/server.crt
0

二、搭建私有443https网站

1、创建目录

mkdir /bj echo "443sssssssssssssssssssssssssssl " > /bj/index.html

2、编辑nginx.conf文件

vim /etc/nginx/conf.d/bj.conf

server {
listen 443 ssl;
server_name nginx.liunx.com;

ssl_certificate /etc/nginx/ssl/server.crt;
ssl_certificate_key /etc/nginx/ssl/server.key;

location / {
root /bj;
index index.html index.htm;
}
}

nginx -t #重新加载配置文件即可 
nginx -s reload
0

三、配置80跳转443

只需要在443的配置文件里新加80跳转的配置即可

server {
 listen 80;
 server_name www.test.com test.com;
 rewrite ^(.*)$ https://$host$1 permanent;
 }
0

成功

0

你可能感兴趣的:(08-Nginx地址重写 rewrite)