Nginx basic + advanced (versión 2022): por actualizar

1. Descripción del artículo

  • Nota : De lo que estamos hablando actualmente es de la primera parte de la tecnología central de nginx. Los capítulos posteriores se basarán en la primera parte como tecnología central para una explicación detallada. Preste atención a la publicación de cursos posteriores para obtener más detalles.
    Insertar descripción de la imagen aquí

2. Introducción y preparación del entorno.

2.1 Introducción

Nginx (motor x) es un servidor web HTTP y proxy inverso de alto rendimiento que también proporciona servicios IMAP/POP3/SMTP. Nginx fue desarrollado por Igor Sesoev para el segundo sitio Rambler.ru más visitado de Rusia (ruso: Рамблер). La primera versión pública 0.1.0 se lanzó el 4 de octubre de 2004. Publica su código fuente bajo una licencia similar a BSD y es conocido por su estabilidad, amplio conjunto de funciones, archivos de configuración simples y bajo consumo de recursos del sistema. El 1 de junio de 2011, se lanzó nginx 1.0.4. Nginx es un servidor web/servidor proxy inverso ligero y un servidor proxy de correo electrónico (IMAP/POP3), lanzado bajo el protocolo similar a BSD. Sus características son que ocupa menos memoria y tiene fuertes capacidades de concurrencia. De hecho, las capacidades de concurrencia de nginx funcionan mejor entre servidores web del mismo tipo. Los usuarios de sitios web de nginx en China continental incluyen: Baidu, JD.com, Sina, NetEase, Tencent , Taobao, etc.

2.2 Preparar el medio ambiente

Nota : La preparación del entorno se refiere a instalar la máquina virtual, instalar el sistema Linux, configurar la máquina virtual, etc. Se configuró antes al aprender Linux, por lo que aquí puede clonar directamente la máquina virtual y luego modificar la IP y el nombre del host.

  • dirección IP :192.168.10.31
  • Nombre de host :nginx01

2.2.1 Instalación de máquina virtual

Utilice una máquina virtual para instalar y aprender
las funciones de Nginx :

  • Fácil de instalar y usar
  • Utilizado en empresas tradicionales.
  • Adecuado para VPS
  • Ideal para implementaciones de servidores de alto rendimiento

2.2.2 Configuración del ordenador durante el estudio

  • Memoria : 8G o superior recomendado
  • Disco : SSD recomendado
  • CPU : 4 núcleos o más son suficientes para la corriente principal

2.2.3 Instalación y configuración de máquinas virtuales

Preparación :

  • VMware, Virtualbox, Parallels
  • Imagen CentOS7.4

Instalar y configurar el sistema operativo :

  • Configurar máquinas virtuales para acceder a Internet
  • Configurar dirección IP estática

2.2.4 Solución de problemas sencilla cuando la máquina virtual no puede acceder a Internet

  • ¿Es correcta la puerta de enlace en Vmware?
  • ¿Puede hacer ping directamente a la dirección IP (solución de problemas de conexión física)?
  • Utilice la misma versión de software que el profesor.
  • La forma más rápida de desinstalar y reinstalar

3. instalación de nginx

3.1 Introducción a 4 lanzamientos

Las versiones de uso común se dividen en cuatro campos.

  • Versión de código abierto de Nginx
    • http://nginx.org/
    • La versión original descargada directamente del sitio web oficial es relativamente limpia y solo tiene funciones básicas (servidor de sitio web, servidor proxy, equilibrio de carga), es más difícil realizar un desarrollo secundario y necesita integrar muchos módulos de terceros.
  • Nginx plus versión comercial (una extensión de nginx básico)
    • https://www.nginx.com
    • El depósito de la familia nginx proporcionado oficialmente por F5 tiene todas las funciones
  • Openresty (gratuito y de código abierto, una extensión de nginx básico)
    • http://openresty.org
    • La integración basada en nginx y script Lua es relativamente poderosa y admite funciones de personalización.
  • Tengine (gratuito y de código abierto, una extensión de nginx básico)
    • http://tengine.taobao.org/
    • La versión desarrollada por Taobao tiene funciones extendidas en forma de lenguaje C. Tiene menos funciones de desarrollo secundarias pero es más segura y estable cuando se usa en clústeres.

3.2 Instalar la versión de código abierto de nginx en el sistema Linux

3.2.1 Entorno de respaldo

El propósito es facilitar errores de instalación posteriores y restaurar rápidamente el estado desinstalado anterior.

  • Método 1: utilizar instantáneas (tome instantáneas como ejemplo)
    Insertar descripción de la imagen aquí

  • Método 2: clonar la máquina virtual actual

3.2.2 Pasos de instalación

1) Descargar y subir a la máquina virtual

Insertar descripción de la imagen aquí

2) Descomprime el paquete comprimido

Insertar descripción de la imagen aquí

tar zxvf nginx-1.21.6.tar.gz

3) Verificación de dependencia

Insertar descripción de la imagen aquí

# 进入到解压后的nginx目录
cd nginx-1.21.6/

# 检查依赖
./configure
  • Si se produce un error: Falta el compilador del lenguaje C
checking for OS
+ Linux 3.10.0-693.el7.x86_64 x86_64
checking for C compiler ... not found
./configure: error: C compiler cc is not found
  • Solución: instalar gcc
yum install -y gcc
  • Instálelo en el directorio nginx del sistema.
    Insertar descripción de la imagen aquí
# 此目录会自动生成
./configure --prefix=/usr/local/nginx
  • Si ocurre un error
    Insertar descripción de la imagen aquí
./configure: error: the HTTP rewrite module requires the PCRE library.
You can either disable the module by using --without-http_rewrite_module
option, or install the PCRE library into the system, or build the PCRE library
statically from the source with nginx by using --with-pcre=<path> option.
  • Solución: instale la biblioteca perl
yum install -y pcre pcre-devel
  • Verifique nuevamente para ver si todavía faltan dependencias
    Insertar descripción de la imagen aquí
./configure --prefix=/usr/local/nginx
  • Ocurrió un error
    Insertar descripción de la imagen aquí
./configure: error: the HTTP gzip module requires the zlib library.
You can either disable the module by using --without-http_gzip_module
option, or install the zlib library into the system, or build the zlib library
statically from the source with nginx by using --with-zlib=<path> option.
  • Solución: instalar la biblioteca zlib
    Insertar descripción de la imagen aquí
yum install -y zlib zlib-devel
  • Compruebe nuevamente si faltan dependencias.
    Insertar descripción de la imagen aquí
./configure --prefix=/usr/local/nginx
  • Se descubre que no faltan dependencias y el error de registro no lo afecta.
    Insertar descripción de la imagen aquí

4) Instalar

Insertar descripción de la imagen aquí

# 2条命令依次执行
make
make install

/usr/local/nginxCompruebe si nginx está en el directorio configurado antes y después de la instalación

Insertar descripción de la imagen aquí

5) Inicie nginx (comandos comunes)

  • Una vez que la instalación sea exitosa, habrá una carpeta adicional local/nginx en usr, un directorio sbin en el directorio nginx y un script de inicio en el directorio sbin.
  • Ingrese al directorio de instalación /usr/local/nginx/sbin
./nginx 启动
./nginx -s stop 快速停止
./nginx -s quit 优雅关闭,在退出前完成已经接受的连接请求
./nginx -s reload 重新加载配置
./nginx -v 查看 nginx 版本号

3.2.3 Acerca del cortafuegos

Al acceder a nginx en Linux en un sistema Windows, no se puede acceder a él de forma predeterminada debido a problemas con el firewall.
Insertar descripción de la imagen aquí

  • Método 1: apague el firewall
# 关闭防火墙
systemctl stop firewalld.service

# 禁止防火墙开机启动
systemctl disable firewalld.service

  • Método 2: número de puerto de acceso abierto, puerto 80
# 放行端口
firewall-cmd --zone=public --add-port=80/tcp --permanent

# 重启防火墙
firewall-cmd --reload

查看防火墙开放的端口号有哪些
firewall-cmd --list-all

3.2.4 Prueba de acceso

La premisa es que el firewall está apagado y
el número de puerto predeterminado es: 80, que se puede omitir.
http://192.168.10.31/

Insertar descripción de la imagen aquí

3.2.5 Instalar como servicio del sistema (comience a usar el comando de secuencia de comandos)

Nota : Actualmente, es muy problemático ingresar al directorio sbin para ejecutar el archivo ejecutable nginx durante el inicio, puede instalarlo como un script para que sea más fácil de usar.

Crear script de servicio
Insertar descripción de la imagen aquí

# 创建目录和文件
vi /usr/lib/systemd/system/nginx.service

Contenido del script de servicio

Nota: La ruta debe ser coherente con la ruta de instalación anterior de nginx.
Insertar descripción de la imagen aquí

[Unit]
Description=nginx - web server
After=network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
ExecQuit=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true

[Install]
WantedBy=multi-user.target

Vuelva a cargar los servicios del sistema y apáguelo antes de usar el método de inicio del programa ejecutable
Insertar descripción de la imagen aquí

#重新加载系统服务
systemctl daemon-reload

#查看使用ngin可执行程序启动的方式是否还在
ps -ef | grep nginx

#关闭之前使用可执行程序启动的方式,否则2种方式都有可能会造成冲突
./nginx -s stop 快速停止

Comienza el servicio
Insertar descripción de la imagen aquí
Insertar descripción de la imagen aquí


# 启动服务
systemctl start nginx.service

# 停止服务
systemctl stop nginx.service

#查看启动状态
systemctl status nginx.service

3.2.6 Puesta en marcha

Insertar descripción de la imagen aquí

systemctl enable nginx.service

4. Estructura del directorio y principios operativos básicos.

4.1 Tabla de contenidos

Ingrese al directorio de inicio de Nginx y podremos ver estas carpetas
Insertar descripción de la imagen aquí

client_body_temp 
conf   用来存放配置文件相关
fastcgi_temp 
html   用来存放静态文件的默认目录 html、css等
logs 
proxy_temp 
sbin   nginx的主程序
scgi_temp 
uwsgi_temp

Estas carpetas no están disponibles después de la instalación y se utilizan principalmente para almacenar archivos temporales durante la operación.

client_body_temp 
fastcgi_temp 
proxy_temp 
scgi_temp

4.2 Principios operativos básicos

Resumen : Después de que se inicia nginx, no solo inicia un proceso, sino que también ejecuta varios procesos al mismo tiempo. El proceso principal Maestro no funciona pero se utiliza para coordinar el subproceso Trabajador. La verificación del archivo de configuración la completa el proceso principal. El Trabajador lee el archivo de configuración para encontrar archivos específicos.
Insertar descripción de la imagen aquí

5. Configuración básica de Nginx

  • Directorio donde se encuentra el archivo de configuración:cd /usr/local/nginx/conf/

  • Archivo de configuración:nginx.config
    Insertar descripción de la imagen aquí

  • Información completa del archivo de configuración.


#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    
    
    worker_connections  1024;
}


http {
    
    
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    server {
    
    
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

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

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
    
    
            root   html;
        }

        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ \.php$ {
    
    
        #    proxy_pass   http://127.0.0.1;
        #}

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        #location ~ \.php$ {
    
    
        #    root           html;
        #    fastcgi_pass   127.0.0.1:9000;
        #    fastcgi_index  index.php;
        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        #    include        fastcgi_params;
        #}

        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /\.ht {
    
    
        #    deny  all;
        #}
    }


    # another virtual host using mix of IP-, name-, and port-based configuration
    #
    #server {
    
    
    #    listen       8000;
    #    listen       somename:8080;
    #    server_name  somename  alias  another.alias;

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


    # HTTPS server
    #
    #server {
    
    
    #    listen       443 ssl;
    #    server_name  localhost;

    #    ssl_certificate      cert.pem;
    #    ssl_certificate_key  cert.key;

    #    ssl_session_cache    shared:SSL:1m;
    #    ssl_session_timeout  5m;

    #    ssl_ciphers  HIGH:!aNULL:!MD5;
    #    ssl_prefer_server_ciphers  on;

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

}

  • Eliminar la información en la parte de comentarios del archivo de configuración.
    • Lo que aquí solo estudiaremos es el archivo de configuración simplificado, en cuanto a la parte de anotaciones, la explicaremos a continuación.

worker_processes  1;

events {
    
    
    worker_connections  1024;
}


http {
    
    
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;

    keepalive_timeout  65;



    server {
    
    
        listen       80;
        server_name  localhost;

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


        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
    
    
            root   html;
        }

    }

}

5.1 Archivo de configuración mínima

procesos_trabajadores

# 默认为1,表示开启一个业务进程(一般一个cpu内核对应一个业务进程)
worker_processes 1; 

conexiones_trabajadores

# 单个业务进程可接受连接数
worker_connections 1024; 

incluir tipos mime;

# 引入额外的配置文件
# 这个文件设置的是请求的头,标名当前返回或者发送的文件是什么类型
include mime.types; 

aplicación de tipo_predeterminado/flujo de octeto;

# 如果mime配置文件中的类型没匹配上,默认使用二进制流的方式传输。
default_type application/octet-stream; 

enviar archivo activado;

# 使用linux的 sendfile(socket, file, len) 高效网络传输,也就是数据0拷贝。
# 所谓的零拷贝,其目的并不是说不需要拷贝数据,而是通过一些手段省略 CPU 拷贝环节,减少了不必要的拷贝次数,提升数据拷贝效率。
sendfile on; 


Insertar descripción de la imagen aquí
Keepalive_timeout 65 después de que sendfile no esté habilitado
Insertar descripción de la imagen aquí
;

# 保持连接超时的时间
keepalive_timeout 65;

servidor: configuración de host virtual
Insertar descripción de la imagen aquí

#一个server代表一台虚拟主机(vhost)
#一个主机,多个主机都可以配置在nginx的配置文件中
server {
    
    
		listen 80;     监听当前服务器的端口号
		server_name localhost; 域名或主机名
		
		#域名后面跟的子路径(到后面在详解)
		# 举例:http://atguigu.com/xxoo/index.html,匹配atguigu.com域名后的路径。
		location / {
    
      匹配路径
			root html;  文件根目录(nginx的安装路径)
			index index.html index.htm;  默认页名称
		}


        #http://atguigu.com/xxoo/index.html一旦报错会替换为
        #http://atguigu.com/50x.html,跳转到50x.html页面
        #但是没有这个50x.html页面,所以在下面定义这个页面路径
        #逻辑:跳转到这个页面,但是这个页面没有,用户一旦访问/50x.html,
        #会从root html这个目录下去寻找50x.html页面
		error_page 500 502 503 504 /50x.html; 报错编码对应页面
		location = /50x.html {
    
    
			root html;
		}
}

6. Resolución de nombres de dominio y host virtual

6.1 Navegador, Nginx y protocolo http

  • Protocolo TCP: TCP es un protocolo de navegador amplio que transmite datos en forma de flujo (los datos son binarios)

  • Flujo de datos: equivalente a un grifo, continúa fluyendo después de abrirlo y no hay ninguna acción para cerrarlo.

  • Protocolo HTTP: es un protocolo además de TCP. Le indica al protocolo TCP cuándo apagar la transmisión. Cuando el navegador del usuario y el servidor Nginx cumplen e implementan el protocolo HTTP, se puede intercambiar información entre ellos. Comunicado y pasado en.

  • Protocolo HTTPS: un protocolo superior a HTTP que agrega una capa de cifrado de datos para protegerlos.

  • Proceso de solicitud: el navegador del usuario envía una solicitud -> puerta de enlace (puerta de enlace en capas) -> -> Internet -> servidor Nginx -> analizar la solicitud -> encontrar el recurso -> regresar al usuario

Insertar descripción de la imagen aquí

6.2 Principio del host virtual

  • Originalmente, un servidor solo podía corresponder a un sitio, pero a través de la tecnología de host virtual se puede virtualizar en múltiples sitios para brindar servicios al mundo exterior al mismo tiempo.

  • Si existe tal escenario, si un host solo monta un sitio, cuando este sitio no tiene demasiadas visitas, causará un exceso de recursos (quedan recursos), en este momento podemos encender el host virtual y montarlo. Múltiples sitios, uso racional de los recursos del host.

  • Una dirección IP puede corresponder a varios nombres de dominio. Dependiendo del nombre de dominio, buscamos los directorios de recursos correspondientes a estos nombres de dominio. Después de encontrar estos recursos, se los devolvemos al usuario.

  • Por supuesto, debemos agregar este nombre de dominio al mensaje de solicitud; de lo contrario, el servidor no sabrá qué recurso de nombre de dominio necesitamos.
    Insertar descripción de la imagen aquí

6.3 Resolución de nombres de dominio y resolución de nombres de dominio pan en la práctica

6.3.1 Usar archivo de hosts para resolver el nombre de dominio

¿Qué es un archivo de hosts ? En pocas palabras, el archivo de hosts se utiliza para servicios DNS locales. Está escrito en un archivo de texto en el formato de nombre de dominio IP. Hosts es un archivo de sistema sin extensión. Se puede abrir con herramientas como como el Bloc de notas. Su función es establecer una "base de datos" asociada entre algunos nombres de dominio URL de uso común y sus direcciones IP correspondientes. Cuando el usuario ingresa una URL que debe iniciar sesión en el navegador, el sistema primero buscará automáticamente la dirección IP correspondiente del archivo Hosts. Una vez encontrada, el sistema abrirá inmediatamente la página web correspondiente. Si no se encuentra, el sistema enviará la URL al servidor de resolución de nombres de dominio DNS para la resolución de la dirección IP.

  • Utilice switchhosts como administrador para abrir el archivo de hosts y realizar las siguientes configuraciones .
    Insertar descripción de la imagen aquí
#虚拟机ip 空格 编写的域名
192.168.10.31  s1.com
  • Resultados de la prueba: se descubrió que el uso del nombre de dominio puede hacer ping correctamente y se puede acceder correctamente a la página predeterminada.
    Insertar descripción de la imagen aquí
    Insertar descripción de la imagen aquí

6.3.2 Configuración de nombres de dominio de red pública y práctica de resolución de nombres de dominio completo

Nota : Lo anterior es para pretender configurar una resolución de nombre de dominio en el archivo de hosts. En las empresas generalmente se compra y usa un nombre de dominio real. Aquí explicaremos cómo configurar y resolver un nombre de dominio real, y cuáles son las opciones configuradas. en eso significa.

  • El mayor proveedor de nombres de dominio es Wanwang, que fue adquirido por Alibaba Cloud, por lo que puede iniciar sesión directamente en Alibaba Cloud para comprar nombres de dominio.
  • Se recomienda comprar nombres de dominio de proveedores de grandes marcas, ya que los proveedores pequeños pueden huir.
  • Los recién llegados pueden probar nombres de dominio de forma gratuita. En este caso se utilizan nombres de dominio como ejemplo. Los pasos de registro son los siguientes:
    • Inicie sesión en la página de inicio de Alibaba Cloud y haga clic en Prueba gratuita
      Insertar descripción de la imagen aquí

    • Buscar nombre de dominio
      Insertar descripción de la imagen aquí

    • Compruebe si el nombre de dominio que desea utilizar está registrado
      Insertar descripción de la imagen aquí

    • Para registrarse es necesario rellenar el modelo de información
      Insertar descripción de la imagen aquí

    • Complete la información personal en la página de la plantilla de información y envíela. Tomará tiempo revisar la plantilla de información.
      Insertar descripción de la imagen aquí
      Insertar descripción de la imagen aquí

    • Una vez revisada correctamente la plantilla de información, regrese a la página de confirmación del pedido para realizar la compra y el pago.

    • Puede ver el nombre de dominio que acaba de registrar en la consola de nombres de dominio (el registro tarda un tiempo en revisarlo).
      Insertar descripción de la imagen aquí

  • Utilice un nombre de dominio registrado:
    • Resolver nombre de dominio: resuelva el nombre de dominio en la dirección IP de la máquina virtual (puede ser una intranet o una red externa), es decir, apunte el nombre de dominio a la dirección IP
      Insertar descripción de la imagen aquí
      Insertar descripción de la imagen aquí
      Insertar descripción de la imagen aquí

    • Verifique si el análisis es exitoso:ping www.xiaomings.xyz
      Insertar descripción de la imagen aquí

    • Utilice el nombre de dominio para acceder a la página predeterminada de nginx: acceso exitoso
      Insertar descripción de la imagen aquí

    • Si hay muchos nombres de dominio, deberá agregar registros uno por uno para su resolución.

    • Si hay muchos nombres de dominio de segundo y tercer nivel, por ejemplo, hay muchos prefijos del nombre de dominio, puede usar comodines para configurarlo. En este momento, se puede acceder al nombre de dominio con cualquier prefijo.
      Insertar descripción de la imagen aquí
      Insertar descripción de la imagen aquí

6.3.3 Configuración del nombre de dominio del host virtual Nginx

  • Actualmente, todos los nombres de dominio a los que se accede apuntan a una dirección IP y solo un sitio puede proporcionar servicios. Ahora configure varios sitios para acceder.

paso:

  • Crear directorio del sitio: www
  • Cree 2 sitios en el directorio www: www, vod
  • Cree páginas en 2 sitios respectivamente para realizar pruebas.
    Insertar descripción de la imagen aquí
    Insertar descripción de la imagen aquí
    Insertar descripción de la imagen aquí
  • Modifique el archivo de configuración: no tenga miedo de cometer errores. También hay un archivo de configuración predeterminado para nginx a continuación. Puede restaurarlo después de cometer errores.
    Insertar descripción de la imagen aquí
    Insertar descripción de la imagen aquí
worker_processes  1;

events {
    
    
    worker_connections  1024;
}


http {
    
    
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;

    keepalive_timeout  65;


 #虚拟主机www
    server {
    
    
        listen       80;
        server_name  www.xiaomings.xyz; #主机名、域名

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


        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
    
    
            root   html;
        }

    }
    
 #虚拟主机vod
    server {
    
    
        listen       80;
        server_name  vod.xiaomings.xyz; #主机名、域名

        location / {
    
    
            root   /www/vod;
            index  index.html index.htm;
        }


        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
    
    
            root   html;
        }

    }

}
  • Reinicie nginx para que surta efecto:systemctl reload nginx
    Insertar descripción de la imagen aquí

  • Prueba de acceso: utilice 2 nombres de dominio para acceder respectivamente y descubra que se puede acceder a la página.
    Insertar descripción de la imagen aquí
    Insertar descripción de la imagen aquí

6.3.4 reglas de coincidencia de nombres de servidor

A lo que debemos prestar atención es a que la coincidencia del nombre del servidor esté en orden. Si se escribe en la coincidencia anterior, no continuará coincidiendo hacia abajo.

DNS resuelve los nombres de dominio en direcciones IP. Aquí, los recursos en el servidor se encuentran según reglas de coincidencia.

Coincidencia completa
Podemos hacer coincidir varios nombres de dominio en el mismo nombre de servidor

server_name vod.mmban.com www1.mmban.com;

coincidencia de comodines

server_name *.mmban.com

El comodín finaliza el partido

server_name vod.*;

Partido normal

server_name ~^[0-9]+\.mmban\.com$;

Insertar descripción de la imagen aquí

6.3.5 Varias necesidades empresariales de Internet basadas en nombres de dominio

• Nombres de dominio de segundo nivel multiusuario

Insertar descripción de la imagen aquí

• URL corta
Insertar descripción de la imagen aquí

• httpdns
Insertar descripción de la imagen aquí

7. Proxy inverso

El servidor proxy inverso está ubicado entre el usuario y el servidor de destino, pero para el usuario, el servidor proxy inverso es equivalente al servidor de destino, es decir, el usuario puede acceder directamente al servidor proxy inverso para obtener los recursos del servidor de destino. . Al mismo tiempo, los usuarios no necesitan conocer la dirección del servidor de destino ni realizar ninguna configuración en el lado del cliente. Los servidores proxy inversos generalmente se pueden utilizar como aceleración web, es decir, utilizar el proxy inverso como la máquina frontal del servidor web para reducir la carga en la red y el servidor y mejorar la eficiencia del acceso.
Insertar descripción de la imagen aquí

7.1 Gateways, proxys y proxys inversos

  • Puerta de enlace: la entrada a la red es la puerta de enlace y el servidor proxy también es una puerta de enlace. Todas las solicitudes pasan por la puerta de enlace. Entonces hay una desventaja: si el ancho de banda de la puerta de enlace no es suficiente, será inútil sin importar cuán alto sea el ancho de banda de su red. Este problema se puede resolver mediante el modelo DR de lvs: el modelo DR es que la solicitud pasa por la puerta de enlace al ingresar, pero cuando los datos se transfieren del servidor al cliente, no pasa por la puerta de enlace.

  • Proxy de reenvío: una solicitud con un objetivo claro se envía desde el cliente. La solicitud iniciada por el cliente conoce el destino claro, pero no puede acceder a él, como la red externa. En este momento, debe usar un servidor proxy para ayuda a acceder a él El objetivo al que acceder. En el proxy directo, el cliente es el que recibe el proxy y el servidor no sabe quién envió la solicitud.
    Insertar descripción de la imagen aquí

  • Proxy inverso: Las solicitudes con un destino claro se realizan desde el servidor. El cliente no sabe a qué servidor se enviará realmente su solicitud, pero el servidor sabe quién le envió la solicitud. En un proxy inverso, el servidor actúa como proxy y el cliente no sabe a quién se envía realmente la solicitud.
    Insertar descripción de la imagen aquí

  • Proxy directo y proxy inverso, ¿cómo distinguir entre avance y retroceso?

    • El objetivo de avance y retroceso es el cliente, ya sea hacia adelante o hacia atrás para el cliente.

7.2 Escenarios de aplicación del proxy inverso en la arquitectura del sistema

  • Arquitectura tradicional del sistema empresarial:
    primero, los usuarios acceden a Internet a través del enrutamiento y la resolución de nombres de dominio, y luego son enviados a la puerta de enlace de la sala de computadoras, luego a través del firewall al servidor nginx y luego el proxy del servidor nginx los reenvía al servidor real. .
    Insertar descripción de la imagen aquí
  • En las pequeñas y medianas empresas de Internet:
    nginx no solo actúa como un proxy inverso, sino que también realiza algunas funciones funcionales en la lógica empresarial y luego funciona como un servidor de puerta de enlace de archivos, etc.

8. Equilibrio de carga

Supongo que te gusta

Origin blog.csdn.net/aa35434/article/details/124853852
Recomendado
Clasificación