nginx几种网页重定向(rewirte)的配置方法详解


    目录
  • 实验环境
  • 一、编译、安装Ngix
  • 二、测试nginx功能
  • 三、重定向一:http---->https
  • 四、服务端再添加一个域名
  • 五、重定向二:www.westos.org/bbs----->bbs.westos.org
  • 六、重定向三:bbs.westos.org----->www.westos.org/bbs/

    实验环境
服务端ip环境
server1172.25.55.1关闭防火墙,添加域名解析
founcation55172.25.55.250关闭防火墙,添加域名解析

    一、编译、安装Ngix
    
[root@server1 nginx-1.14.2]# ./configure --prefix=/usr/local/nginx/
 --with-http_realip_module --with-http_image_filter_module=dynamic --with-http_ssl_module 
[root@server1 nginx-1.14.2]# yum install openssl-devel -y
[root@server1 nginx-1.14.2]# ./configure --prefix=/usr/local/nginx/ 
--with-http_realip_module --with-http_image_filter_module=dynamic
 --with-http_ssl_module 
[root@server1 nginx-1.14.2]# make

[root@server1 nginx-1.14.2]# cd objs/
[root@server1 objs]# cp  nginx /usr/local/nginx/sbin/
[root@server1 objs]# cp ngx_http_image_filter_module.so /usr/local/nginx/modules/(没有modules目录,手动创建)

    二、测试nginx功能
    编辑nginx的配置文件:
    
	[root@server1 certs]# vim /usr/local/nginx/conf/nginx.conf
		134 server {
		135         listen 80;
		136         server_name www.westos.org;
		137     
		138         location / {
		139                 root /web;(访问的资源路径)
		140                 index index.html;
		141 }
		142 
		143 }
	[root@server1 certs]# nginx -s reload(重载服务)

    创建/web目录编辑网页文件index.html。
    
	客户端添加域名解析:
	[root@foundation55 新6]# cat /etc/hosts
		172.25.55.1     www.westos.org  bbs.westos.org

    测试:客户端访问www.westos.org
    
    常见http状态码含义:
    
状态码含义
200请求成功
301被请求的资源已永久移动到新位置
302请求的资源临时从不同的 URI响应请求
404请求失败

    三、重定向一:http---->https
    添加证书
    
  [root@server1 objs]# cd /etc/pki/tls/certs
  [root@server1 certs]# make cert.pem

    
    将证书文件复制到nginx下的conf目录下:
    
[root@server1 certs]# cp cert.pem /usr/local/nginx/conf/

    编辑nginx配置文件:
    
[root@server1 certs]# vim /usr/local/nginx/conf/nginx.conf

	100     server {
	101        listen       443 ssl;
	102        server_name  www.westos.org;
	103 
	104        ssl_certificate      cert.pem;
	105        ssl_certificate_key  cert.pem;
	106 
	107        ssl_session_cache    shared:SSL:1m;
	108        ssl_session_timeout  5m;
	109 
	110        ssl_ciphers  HIGH:!aNULL:!MD5;
	111        ssl_prefer_server_ciphers  on;
	112 
	113        location / {
	114            root   /web;
	115            index  index.html index.htm;
	116        }
	117    }
	118 
	119   server {
	120         listen       80;
	121         server_name  www.westos.org;
	122         rewrite ^/(.*)$ https://www/westos/org/$1;
	123 
	124 
	125 
	126         location / {
	127             root   /web;
	128             index  index.html;
	129         }
	130 
	131 }
	[root@server1 certs]# nginx -s reload

    客户端测试:
    
    客户端浏览器访问:
    
    
    
    
    永久重定向
    
[root@server1 certs]# vim /usr/local/nginx/conf/nginx.conf

	122         rewrite ^/(.*)$ https://www/westos/org/$1 permanent;

    客户端测试:
    
    $1的作用
    服务端server1/web目录下创建一个test.html网页文件。
    
[root@server1 web]# cat test.html 
	test
[root@server1 certs]# vim /usr/local/nginx/conf/nginx.conf
	122         rewrite ^/(.*)$ https://www/westos/org/$1 permanent;

    
    去掉$1后
    
[root@server1 web]# vim /usr/local/nginx/conf/nginx.conf
124        rewrite ^/(.*)$ https://www/westos/org/ permanent;

    
    四、服务端再添加一个域名
    
[root@server1 bbs]# vim /usr/local/nginx/conf/nginx.conf

121   server {
122         listen       80;
123         server_name  bbs.westos.org;
124 
125 
126 
127         location / {
128             root   /bbs;
129             index  index.html;
130         }
131 
132 }

    创建/bbs目录,并编辑网页文件:
    
[root@server1 web]# mkdir /bbs
[root@server1 web]# cd /bbs/
[root@server1 bbs]# ls
[root@server1 bbs]# vim index.html
	bbs.westos.org

    客户端测试:
    
    五、重定向二:www.westos.org/bbs----->bbs.westos.org
    
[root@server1 bbs]# vim /usr/local/nginx/conf/nginx.conf
121   server {
122         listen       80;
123         server_name  www.westos.org;
124         rewrite ^/bbs$ http://bbs.westos.org permanent;
125         #rewrite ^/bbs(.*)$ http://bbs.westos.org/$1 permanent;
126         location / {
127             root   /web;
128             index  index.html;
129         }
130 
131 }
132 
133    server {
134         listen 80;
135         server_name bbs.westos.org;
136 
137         location / {
138                 root /bbs;
139                 index index.html;
140         }
141 }

    
    在浏览器访问http://www.westos.org/bbs,结果如下图。
    
    
[root@server1 bbs]# vim /usr/local/nginx/conf/nginx.conf
124         rewrite ^/bbs$ http://bbs.westos.org permanent;
125         rewrite ^/bbs(.*)$ http://bbs.westos.org/$1 permanent;

    
    
    在浏览器访问http://www.westos.org/bbs/index.html,结果如下图。
    
    六、重定向三:bbs.westos.org----->www.westos.org/bbs/
    
    
[root@server1 bbs]# cd /web/
[root@server1 web]# cp -r /bbs/ /web/
[root@server1 web]# ls
bbs  index.html  test.html