reescritura de direcciones nginx

Caso: reescritura de direcciones
  • 1 problema

Siga la práctica En segundo lugar, ajustando la configuración del servidor Nginx para lograr los siguientes objetivos:
todas las solicitudes de acceso a a.html se redirigen a b.html;
todas las solicitudes de acceso se redirigen a 192.168.4.5 www.tmooc.cn;
todos los accesos 192.168 4.5 / La subpágina siguiente, redirige a la misma página en www.tmooc.cn/; tenga en
cuenta que firefox y curl acceden al mismo archivo de página y devuelven contenido diferente.

  • 2 plan

Con respecto a la reescritura de la dirección del servidor Nginx, el principal parámetro de configuración utilizado es reescribir:
reescribir regex bandera de reemplazo
reescribir la dirección anterior y la nueva dirección [opción]

  • Requisitos del caso: el
    acceso a http://www.360buy.com redirigirá automáticamente a http://www.jd.com.
    Visitar http://www.baidu.com lo redireccionará automáticamente a https://www.baidu.com.
    3 pasos

Para implementar este caso, debe seguir los pasos a continuación.
Paso 1: Modifique el archivo de configuración (acceda a a.html y redirija a b.html)

1) Modifique la configuración del servicio Nginx:

[root@proxy ~]# vim /usr/local/nginx/conf/nginx.conf
.. ..
server {
    
    
        listen       80;
        server_name  localhost;
rewrite /a.html  /b.html;            
location / {
    
    
    root   html;
index  index.html index.htm;
}
}
[root@proxy ~]# echo "BB" > /usr/local/nginx/html/b.html

2) Vuelva a cargar el archivo de configuración

[root@proxy ~]# /usr/local/nginx/sbin/nginx  -s  reload

3) prueba del cliente

[root@client ~]# firefox  http://192.168.4.5/a.html

Paso 2: visite a.html y redirija a b.html (barra de direcciones de salto)

1) Modifique la configuración del servicio Nginx:

[root@proxy ~]# vim /usr/local/nginx/conf/nginx.conf
.. ..
server {
    
    
        listen       80;
        server_name  localhost;
rewrite /a.html  /b.html  redirect;            
location / {
    
    
    root   html;
index  index.html index.htm;
}
}

2) Vuelva a cargar el archivo de configuración

[root@proxy ~]# /usr/local/nginx/sbin/nginx  -s  reload
#请先确保nginx是启动状态,否则运行该命令会报错,报错信息如下:
#[error] open() "/usr/local/nginx/logs/nginx.pid" failed (2: No such file or directory)

3) Prueba del cliente (observe atentamente los cambios en la barra de direcciones del navegador)

[root@client ~]# firefox  http://192.168.4.5/a.html

Paso 3: Modifique el archivo de configuración (la solicitud de acceso a 192.168.4.5 se redirige a www.tmooc.cn)

  1. Modificar la configuración del servicio Nginx
[root@proxy ~]# vim /usr/local/nginx/conf/nginx.conf
.. ..
server {
    
    
        listen       80;
        server_name  localhost;
rewrite ^/  http://www.tmooc.cn/;
location / {
    
    
    root   html;
index  index.html index.htm;
# rewrite /a.html  /b.html  redirect;
}
}

2) Vuelva a cargar el archivo de configuración

[root@proxy ~]# /usr/local/nginx/sbin/nginx  -s  reload
#请先确保nginx是启动状态,否则运行该命令会报错,报错信息如下:
#[error] open() "/usr/local/nginx/logs/nginx.pid" failed (2: No such file or directory)

3) Prueba del cliente (prueba de máquina real, la máquina real puede conectarse a tmooc)

[root@room9pc01 ~]# firefox  http://192.168.4.5

Paso 4: Modifique el archivo de configuración (visite la subpágina debajo de 192.168.4.5/ y redirija a la misma página en www.tmooc.cn/)

  1. Modificar la configuración del servicio Nginx
[root@proxy ~]# vim /usr/local/nginx/conf/nginx.conf
.. ..
server {
    
    
        listen       80;
        server_name  localhost;
rewrite ^/(.*)$  http://www.tmooc.cn/$1;
location / {
    
    
    root   html;
index  index.html index.htm;
}
}

2) Vuelva a cargar el archivo de configuración

[root@proxy ~]# /usr/local/nginx/sbin/nginx  -s  reload
#请先确保nginx是启动状态,否则运行该命令会报错,报错信息如下:
#[error] open() "/usr/local/nginx/logs/nginx.pid" failed (2: No such file or directory)

3) Prueba del cliente (prueba de máquina real, la máquina real puede conectarse a tmooc)

[root@room9pc01 ~]# firefox  http://192.168.4.5
[root@room9pc01 ~]# firefox  http://192.168.4.5/test

Paso 5: Modifique el archivo de configuración (dándose cuenta de que curl y Firefox visitan el mismo enlace para regresar páginas diferentes)

  1. Cree un directorio de página web y el archivo de página correspondiente:
[root@proxy ~]# echo "I am Normal page" > /usr/local/nginx/html/test.html
[root@proxy ~]# mkdir  -p  /usr/local/nginx/html/firefox/
[root@proxy ~]# echo "firefox page" > /usr/local/nginx/html/firefox/test.html
  1. Modificar la configuración del servicio Nginx
[root@proxy ~]# vim /usr/local/nginx/conf/nginx.conf
.. ..
server {
    
    
        listen       80;
        server_name  localhost;
location / {
    
    
    root   html;
index  index.html index.htm;
}
#这里,~符号代表正则匹配,*符号代表不区分大小写
if ($http_user_agent ~* firefox) {
    
                //识别客户端firefox浏览器
rewrite ^(.*)$  /firefox/$1;
}
}

3) Vuelva a cargar el archivo de configuración

[root@proxy ~]# /usr/local/nginx/sbin/nginx  -s  reload
#请先确保nginx是启动状态,否则运行该命令会报错,报错信息如下:
#[error] open() "/usr/local/nginx/logs/nginx.pid" failed (2: No such file or directory)

4) prueba del cliente

[root@client ~]# firefox  http://192.168.4.5/test.html
[root@client ~]# curl     http://192.168.4.5/test.html

5) Formato de reescritura de direcciones [Resumen]
reescribir la dirección anterior nueva dirección [opción];
último ya no leer otro reescribir
romper ya no leer otras declaraciones, finalizar solicitud
redirección redirección temporal
permanente redirección permanente

Supongo que te gusta

Origin blog.csdn.net/weixin_45942735/article/details/104561413
Recomendado
Clasificación