Configurar el salto de reescritura en nginx
Uno, introducción al uso de reescritura
1. Reescribe la escena del salto
1. La URL por la que navegan los usuarios se puede ajustar para que parezca más estandarizada y satisfaga las necesidades de los desarrolladores y el personal del producto.
2. Para que los motores de búsqueda busquen contenido de sitios web y mejoren la experiencia del usuario, las empresas disfrazarán direcciones URL dinámicas como direcciones estáticas para brindar servicios. .
3. Después de que la URL se cambie a un nuevo nombre de dominio, deje que las visitas anteriores salten al nuevo nombre de dominio. Por ejemplo, cuando visite 360buy.com en JD.com
, será redirigido a jd.com 4. Ajuste la URL en función de variables especiales, directorios e información del cliente.
2. Reescribir la implementación del salto
Nginx admite la reescritura de URL y el juicio de condiciones a través del módulo ngx_http_rewrite_module , pero no admite más. Además, este módulo necesita soporte PCRE. Debe especificar el soporte PCRE al compilar Nginx, y está instalado por defecto. De acuerdo con la redirección de la variable relevante y la selección de diferentes configuraciones, salte de una ubicación a otra, pero este ciclo se puede ejecutar hasta 10 veces, después de lo cual Nginx devolverá un error 500. Al mismo tiempo, el módulo de reescritura contiene la instrucción set para crear una nueva variable y establecer su valor. Esto es muy útil en algunas situaciones, como registrar la identificación de condiciones, pasar parámetros a otras ubicaciones, registrar lo que se ha hecho, etc. La función de reescritura es utilizar variables globales proporcionadas por Nginx o variables establecidas por usted mismo, combinadas con expresiones regulares y banderas para lograr la reescritura y la redirección de URL.
3.Reescribe la escena real
En escenarios de trabajo reales, hay tres formas de lograr los requisitos de salto de Nginx.
- Puedes usar reescribir directamente para hacer coincidir el salto
- También puede usar if para saltar después de hacer coincidir las variables globales
- Además, también puede usar la ubicación para hacer coincidir y luego saltar,
por lo que la reescritura solo se puede colocar en la sección del servidor {}, si {}, ubicación {}, la
ubicación solo puede funcionar en la cadena después del nombre de dominio, excepto por los parámetros pasados
Dos, formato de sintaxis de reescritura
1. Reescribir el formato del comando
2. Se admiten metacaracteres de expresión regular de uso común
3. El contenido después del salto
Por lo general, es la información de la ruta del nombre de dominio URL de la página web o sitio web al que se redirige.
4. Marca de bandera
4.1. Descripción de la bandera
4.2. Comparación de la última bandera y la bandera de ruptura
Tres, reglas de coincidencia de ubicación
1. Clasificación de la ubicación
2. Expresiones de uso común para la coincidencia regular de ubicaciones
3. La prioridad de la coincidencia de ubicación
4. Ejemplo de prioridad de ubicación
5. Comparación de reescritura y ubicación
En cuarto lugar, la configuración de la redirección basada en el nombre de dominio IP y otros métodos.
El servicio nginx se ha implementado en el lado del servidor. El cliente ha completado el servicio de resolución de nombres de dominio.
La ubicación del archivo de configuración para la resolución del nombre de dominio:
la ruta del archivo de hosts de Linux es: / etc / hosts
La ruta del archivo de hosts de Windows es: C: \ Windows \ System32 \ drivers \ etc \ hosts
1. Redirigir según el nombre de dominio
Ahora, el antiguo nombre de dominio de la empresa www.wlm.com tiene requisitos comerciales y cambios, y en su lugar debe utilizarse el nuevo nombre de dominio www.wat.com. Pero el nombre de dominio antiguo no se puede abolir y debe saltar al nuevo nombre de dominio. La configuración específica es la siguiente.
[root@Nginx ~]# vim /usr/local/nginx/conf/nginx.conf
server {
listen 80;
server_name www.wlm.com;
charset utf-8;
access_log /var/log/nginx/wlm.access.log;
location / {
root html;
index index.html index.htm;
if ($host = 'www.wlm.com'){ //如果你输入这个网站
rewrite ^/(.*)$ http://www.wat.com/$1 permanent;
//跳转到另一个网站的任何位置
}
}
La prueba de salto basada en el nombre de dominio
logró el salto
2. Redireccionamiento de acceso según la IP del cliente
Por ejemplo, la versión comercial de la compañía está en línea hoy, y todo acceso IP a cualquier contenido mostrará una página de mantenimiento fija, y solo el acceso IP de la compañía es normal.
[root@Nginx ~]# vim /usr/local/nginx/conf/nginx.conf
server {
listen 80;
server_name www.wlm.com;
charset utf-8;
access_log /var/log/nginx/wlm.access.log;
set $rewrite true;
if ($remote_addr = '20.0.0.1'){
set $rewrite false;
}
if ($rewrite = true){
rewrite (.+) /wh.html;
}
location = /wh.html {
root /usr/local/nginx/html/;
}
[root@Nginx ~]# cd /usr/local/nginx/html/
[root@Nginx html]# vim wh.html
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
</head>
<body>
<h1>维护 中</h1>
</body>
</html>
Resultados de la prueba