Nginx: introducción de la función del módulo del sitio web de arquitectura integrada service-3-nginx

Introducción a la función del módulo de servicio completo del sitio web de arquitectura-nginx

Resumen del código:

nginx -t 		-- 检查语法
curl -Lv www.moox.com 	-- 跟踪显示详细信息

00. Descripción:

  1. nginx sirve algunas aplicaciones comunes (funciones del módulo)
  2. Directorio de la página del sitio web index-autoindex
  3. Modificación de caracteres de la página del sitio web
  4. Alias ​​de la página del sitio web nombre_servidor
  5. Información del estado del sitio web estado de la página
  6. Error de archivo de registro del servicio del sitio web log-error.log
  7. Servicio de sitio web log file-access log-access.log
  8. Servicio de sitio web que combina función-ubicación
  9. El sitio web realiza la función de salto-reescribir
  10. Resumen de revisión

01. Revisión anterior:

Configuración de la construcción del sitio web nginx y visite https://www.cnblogs.com/moox/p/12726926.html

  1. Use nginx para construir un sitio web único
  2. Use nginx para construir múltiples sitios web.
    Intente tener un archivo de configuración de host virtual separado para
    cada sitio web. Cada sitio web tiene un directorio de sitio separado.
  3. Use nginx para configurar el control de seguridad
    De acuerdo con la dirección del nombre de dominio al que accede el usuario www.moox.com/Av módulo de acceso (denegar, permitir) --403 Módulo de
    autenticación y autenticación basado en el acceso del usuario (hppasswd)
  4. Método de acceso al servicio del sitio web
    Basado en el acceso al nombre de dominio
    Basado en el acceso a la dirección

02. Aplicación de práctica empresarial Nginx

1) Use el servicio nginx para construir un servidor de intercambio de archivos de sitio web

Índice del directorio de la página web

Función del módulo Nginx:
archivo de configuración de escritura de instrucciones ngx_http_autoindex_module-autoindex (www.conf)
/etc/nginx/mime.types

## 用法:
Syntax:	autoindex on | off;
Default:	
autoindex off;
Context:	http, server, location

## 配置/etc/nginx/conf.d/www.conf
server {
	listen        80;
	server_name   www.oldboy.com;
	location / {
		root  /html/www;
		# index默认使用index.html,只删除此处的index.html是没用的
		#index index.html index.htm;  
		auth_basic      "oldboy-sz-01";
		auth_basic_user_file password/htpasswd;
		autoindex on;    --- 开启nginx站点目录索引功能
	}
}
systemctl reload nginx
mv index.html index.html.bak
mkdir CentOS{6.7,6.8,6.9,7.0}
for id in {6.7,6.8,6.9,7.0};do echo this is a CentOS $id version. can not be download.> CentOS$id/version.txt;done;
for id in {6.7,6.8,6.9,7.0};do echo this is a CentOS $id version. can be download.> CentOS$id/version.php;done;

## PS:1.需要将首页文件进行删除
	配置文件/etc/nginx/conf.d/www.conf 
	和站点目录/html/www中的index.html都要删除

Prueba de acceso:
ingrese www.moox.html en el navegador para ver el efecto

../
CentOS6.7/
CentOS6.8/
CentOS6.9/
CentOS7.0/ 
----------------------------
../
version.php  -- 点击时自动下载文件
version.txt  -- 点击时显示文件内容
## PS 2. /etc/nginx/mime.types媒体资源类型文件作用
	文件中有的(如txt)扩展名信息资源,   进行访问时会直接看到数据信息
	文件中没有的(如php)扩展名信息资源, 进行访问时会直接下载资源
[root@web01 nginx]# grep -E "php|txt" mime.types 
    text/plain                                       txt;
## 可修改/etc/nginx/mime.types使php成为可查看,但不建议,有坑
    text/plain                                       txt php; 
Modificación de caracteres de la página del sitio web

Datos del directorio de la página del sitio web, los caracteres ilegibles aparecen en chino, cómo resolverlos:

location / {
	root  /html/www;
	#index index.html;
	auth_basic      "oldboy-sz-01";
	auth_basic_user_file password/htpasswd;
	autoindex on;
	charset utf-8;   --- 修改目录结构中出现的中文乱码问题
}

2) Use el servicio nginx para tomar la función de alias del archivo de configuración

Función de alias de página web

El primer viaje: escribir archivos de configuración

/etc/nginx/conf.d/www.conf

nombre_servidor www.moox.com moox2020.com;
systemctl reloadn nginx

El segundo curso: configurar la información de análisis

Se agregó el análisis moox.com al archivo hosts en Windows

10.0.0.7 www.moox.com blog.moox.com bbs.moox.com moox2020.com

Papel:

  1. Escriba una prueba de acceso al sitio web: use un nombre de dominio corto para facilitar la prueba
  2. Localice el servidor web que desea visitar: con varios servidores, los diferentes nombres de dominio facilitan la localización

3) Use la función del módulo de estado nginx para monitorear el sitio web

Módulo de estado: ngx_http_stub_status_module
location = / basic_status {
stub_status;
}

El primer viaje: escriba el archivo de configuración
[root @ web01 conf.d] # vim status.conf
server {
listen 80;
server_name status.moox.com;
stub_status;
}

El segundo proceso: reinicie el servicio nginx y escriba el archivo de análisis
systemctl reload nginx
10.0.0.7 status.moox.com

Información de la página de estado del sitio

El tercer curso: monitoreo y prueba del sitio web , estado del navegador.moox.com, visualización

Active connections: 1 
server accepts handled requests
 		  70     70      97 
Reading: 0 Writing: 1 Waiting: 0 

El contenido mostrado también se puede extraer en Linux

## 增加域名解析
[root@web01 conf.d]# cat /etc/hosts
...
172.16.1.7      status.moox.com
...
## curl 访问
[root@web01 conf.d]# curl status.moox.com
Active connections: 1 
server accepts handled requests
 74 74 137 
Reading: 0 Writing: 1 Waiting: 0

Explicación:
Conexiones activas: el número de conexiones activas se puede establecer en 4000 usuarios, el umbral es de 3500
acepta: el número total de conexiones recibidas (integradas) conexiones TCP
manejadas: el número de conexiones procesadas (integradas)
solicitudes de conexiones TCP : el número total de solicitudes solicitudes de protocolo HTTP
Lectura: el servicio nginx lee la cantidad de mensajes de solicitud que ordenan 100 personas
. Escritura: el servicio nginx responde a la cantidad de información de mensajes que responde 100 personas. En
espera: se procesa el mecanismo de cola nginx (leer o responder para guardar para guardar) Elementos principales de monitoreo

4) configuración de la función de registro nginx

Registro de errores: /var/log/nginx/error.log ---
Registro de acceso a la funcionalidad principal : /var/log/nginx/access.log ngx_http_log_module

El directorio de registro de nginx / var / log / nginx existe en el empaquetado y corte automático de Zhizhi debido a los archivos de entrenamiento de rotación de registros

[root@web01 nginx]# ll /var/log/nginx
total 52
-rw-r----- 1 www   adm 24583 Apr 18 22:15 access.log
-rw-r----- 1 nginx adm   687 Apr 17 10:09 access.log-20200417.gz
-rw-r----- 1 www   adm  5429 Apr 18 15:23 access.log-20200418
-rw-r----- 1 www   adm  1233 Apr 18 21:38 error.log
-rw-r----- 1 nginx adm   726 Apr 17 10:08 error.log-20200417.gz
-rw-r----- 1 www   adm  2721 Apr 18 15:23 error.log-20200418
[root@web01 nginx]# ll /etc/logrotate.d/nginx 
-rw-r--r-- 1 root root 351 Aug 13  2019 /etc/logrotate.d/nginx
Servicio web archivos de registro-registros de error
  • Registro de errores: /var/log/nginx/error.log --- Funcionalidad central
    Sintaxis: archivo error_log [nivel]; Especifique la ruta del registro de errores y el nivel del nivel de registro de errores
    Valor predeterminado: error_log logs / error.log error;
    Contexto: principal , http, mail, stream, server, location

    En /etc/nginx/nginx.confel nivel de error especificado

    [root@web01 nginx]# cat /etc/nginx/nginx.conf
    user  www;
    worker_processes  1;
    error_log  /var/log/nginx/error.log warn; --- 指定错误级别及默认路径
    pid        /var/run/nginx.pid;
    

    Nivel de error:

    debug	:调试级别, 服务运行的状态信息和错误信息详细显示     信息越多
    info	:信息级别, 只显示重要的运行信息和错误信息
    notice	:通知级别: 更加重要的信息进行通知说明
    warn	:警告级别: 可能出现了一些错误信息,但不影响服务运行
    error	:错误级别: 服务运行已经出现了错误,需要进行纠正      推荐选择
    crit	:严重级别: 必须进行修改调整
    alert	:严重警告级别: 即警告,而且必须进行错误修改
    emerg	:灾难级别: 服务已经不能正常运行                      信息越少
    
Registro de acceso a archivos de registro de servicio web
  • Registro de acceso predeterminado: /var/log/nginx/access.log ngx_http_log_module
[root@web01 nginx]# cat /etc/nginx/nginx.conf
## 默认访问日志部分
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  /var/log/nginx/access.log  main;                              ##调用日志格式

$remote_addr   			显示用户访问源IP地址信息
$remote_user            显示认证的用户名信息
[$time_local]           显示访问网站时间
"$request"              请求报文的请求行信息
$status                 用户访问网站状态码信息
$body_bytes_sent        显示响应的数据尺寸信息
$http_referer           记录调用网站资源的连接地址信息(防止用户盗链)                    
                        老男孩nginx---access.log---莫文杰(荒原饮露---老男孩图片链接)---http_referer(链接)
$http_user_agent        记录用户使用什么客户端软件进行访问页面的  (谷歌 火狐 IE 安卓 iphone)
$http_x_forwarded_for   ??? 负载均衡

  • Registro de acceso al sitio web personalizado
## 根据自己的网站自定义访问日志,如只统计www的访问日志
[root@web01 nginx]# cat conf.d/www.conf 
server{
    listen	80;
    server_name www.moox.com moox2020.com;
    access_log  /var/log/nginx/www_access.log  main;  ## 定义访问日志
    location /{
        root  /html/www;
        #index index.html index.htm;
	auth_basic "please input passwd";
        auth_basic_user_file password/htpasswd; 
        autoindex on;
        charset utf-8;
    }
    location /AV {
        deny 10.0.0.0/24;
        allow 172.16.1.0/24;
	#root  /html/www;
        #index index.html index.htm;
    }
}

### 重启nginx服务
[root@web01 nginx]# systemctl reload nginx
# 浏览器访问 www.moox.com, 查看www.access.log的变化
[root@web01 nginx]# tail -f /var/log/nginx/www.accesslog
10.0.0.1 - oldboy [19/Apr/2020:15:23:27 +0800] "GET /CentOS6.7/ HTTP/1.1" 
200 399 "http://moox2020.com/" 
"Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36" "-"
## 对应关系---------------------------------------------------------------------------
'$remote_addr - $remote_user [$time_local] "$request" ' 
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
  • PD: la información del archivo de registro debe ser procesada por varios G

5) Descripción del rol de la ubicación del servicio nginx

Servicio de sitio web elegante pantalla función-ubicación

Descripción del módulo: la
ubicación de ngx_http_core_module para la
página de error de coincidencia (uri) se muestra correctamente

  • Las páginas de error se muestran con gracia
location /oldboy {
	root /html/www;
	error_page  404  /moox.jpg; -- 当访问页面出现404时,显示站点目录下的moox.jpg
}
location /oldgirl {
	root /html/www;
	error_page  404  /oldgirl.jpg;
}
## 效果测试
[root@web01 www]# cd /html/www
[root@web01 www]# ll
drwxr-xr-x 2 root root    22 Apr 19 16:29 moox
-rw-r--r-- 1 root root 12062 Apr 19 16:26 moox.jpg
[root@web01 moox]# mkdir /html/www/moox
[root@web01 moox]# cd /html/www/moox
[root@web01 moox]# ll
-rw-r--r-- 1 root root 777835 Apr 19 16:23 test.jpg

## 浏览器访问 www.moox.com/moox/test.jpg -- 正常
## 浏览器访问 www.moox.com/moox/test22222.jpg -- 由于没有test22222.jpg,发生404错误,优雅显示指定内容:/html/www/moox.jpg
Servicio de sitio web que combina función-ubicación

Configuración detallada de la ubicación:

## 语法
Syntax:	location [ = | ~ | ~* | ^~ ] uri { ... }
location @name { ... }
Default:	—
Context:	server, location
## 配置方法:
location = / {              --- 精确匹配    优先级01 最高 
	[ configuration A ] 	 
}
location / {                --- 默认匹配    优先级04 最低
	[ configuration B ]
}
location /documents/ {      --- 按照目录进行匹配    优先级03
	[ configuration C ]
}
location ^~ /images/ {      --- 优先匹配/不识别uri信息中符号信息       优先级02
	[ configuration D ]
}
location ~* \.(gif|jpg|jpeg)$ {  --- 不区分大小写进行匹配  优先级03
	[ configuration E ]
}
## 实例配置
vim /etc/nginx/conf.d/test_location.conf
[root@web01 conf.d]# cat /etc/nginx/conf.d/test_location.conf
server{
	listen		80;
	server_name test.moox.com;
	location = / { ## 浏览器访问	test.moox.com
		return 404;
	}
	location / {   ## 浏览器访问	test.moox.com/mm
		return 403;
	}
	location /documents/ {  ## 浏览器访问	test.moox.com/documents/
		return 501;
	}
	location ^~ /images/ {  ## 浏览器访问	test.moox.com/images/
		return 502;
	}
	location ~* \.(gif|jpg|jpeg)$ {   ## 浏览器访问	test.moox.com/xx.gif
		return 500;
	}
}
## 测试效果:
1.Windows hosts解析:10.0.0.7 www.moox.com  test.moox.com
2.浏览器访问	test.moox.com

6) Use nginx para lograr la función de salto de página

El sitio web realiza la función de salto-reescribir

El uso del módulo de reescritura es una función de salto: http_rewrite_module
realiza la función de curl moox.com para saltar a www.moox.com

  • Explicación gramatical
Syntax:	rewrite regex replacement [flag];   rewite  匹配的正则信息  替换成什么信息
Default:	—
Context:	server, location, if
	
rewrite www.oldboy.com/(.*) http://www.oldboy.com/$1 permanent;   重写规则配置
		^/(.*)								      $1 指代前半部分的(.*)
baidu.com/oldboy.html跳转到ww.baidu.com/oldboy.html    跳转方式

  • Modo de Salto:
    Permanente salto: permanentes 301 clientes se saltan la información se almacena en caché , de nuevo accediendo directamente a cliente Jump
    Jump temporal: redirección 302 cliente no almacena en caché información de salto, o también cuando se accede a los servicios Salto final

  • Cómo resolver el salto infinito:

Debido al salto permanente, el cliente almacenará en caché la dirección de salto del servidor.
Cuando la dirección del servidor cambia, la dirección a la que accede el cliente no cambiará.
Solución: 1. El cliente necesita borrar el caché 2. Procesamiento del servidor

## 第一种方法: 利用不同server区块配置打破循环,单独的server
server {
   server_name  oldboy.com;
   rewrite ^/(.*) http://www.moox.com/$1 permanent;
}
## 第二种方法: 利用if判断实现打破循环,放在server或location中,不使用单独的server
if ($host ~* "^moox.com$") {
  rewrite ^/(.*) http://www.moox.com/$1 permanent;
}

www.oldboy.com/oldboy01/oldboy02/oldboy.jpg   --- www.oldboy.com/oldboy.jpg

Ejercicios extendidos:

  1. Use el comando para recuperar el valor en la información de la página de estado
  2. Servicio de base de datos de entorno LNMP / servicio php

Supongo que te gusta

Origin www.cnblogs.com/moox/p/12732892.html
Recomendado
Clasificación