Nginx sabe cuántas series (5) alojan proyectos .NET Core en Linux

Directorio

1. Introducción

2. Instalación

3. Archivo de configuración detallado

4. Principio de funcionamiento

5. Hospedaje de proyectos .NET Core en Linux

6. Equilibrio de carga del proyecto .NET Core en Linux

7. Alta disponibilidad de Nginx + Keepalived para el proyecto .NET Core en Linux (modo maestro-esclavo)

8. Proyecto .NET Core Nginx + Keepalived alta disponibilidad bajo Linux (modo maestro dual)

9. Clúster de alta disponibilidad LVS + Keepalived + Nginx para el proyecto .NET Core en Linux

10. Construye un servidor estático

11. Análisis de registro

12. Estrategia de optimización

13. Resumen

 

Aquí no voy a presentar cómo implementar .Net Core y procesar la supervisión de demonios en Linux. Si es necesario, puede ver los artículos publicados anteriormente. " Implementación de .NET Core Project en Linux (Centos7) (6) Lanzamiento de .NET Core Project en Linux ", " Implementación de .NET Core Project en Linux (Centos7) (7) Inicio y detención de .NET Core Project ", " .NET Core El proyecto se implementa en Linux (Centos7) (ocho) para crear la supervisión del tutor del proceso Supervisor para el proyecto .NET Core .

ASP.NET Core tiene un servidor Kestrel incorporado, pero la función es simple. No es un servidor web con todas las funciones. Se utiliza principalmente para SelfHost. Está diseñado para hacer que ASP.NET sea lo más rápido posible, pero su capacidad para administrar la seguridad y proporcionar archivos estáticos es limitada. La operación formal aún debe depender de IIS, Apache, Nginx y otros servidores con todas las funciones para proporcionar a los programas ASP.NET Core características o funciones avanzadas como almacenamiento en caché, solicitudes de compresión y terminales SSL. La relación entre estos dos servidores es: Nginx, IIS, etc. como servidor proxy inverso de Kestrel.

 

1. Configuración de mapeo de puertos

 

#Edit nginx.conf 
sudo vim /etc/nginx/nginx.conf #Después de 

ingresar el archivo, presione "i" o "a" para ingresar al modo de inserción, inserte la siguiente información de configuración

 

Entre y comente la configuración predeterminada del servidor en la configuración http

 

# Para obtener más información sobre la configuración, consulte: 
# * Documentación oficial en inglés: http://nginx.org/en/docs/ 
# * Documentación oficial en ruso: http://nginx.org/ru/docs/ 

user nginx; 
trabajador_procesos auto; 
error_log /var/log/nginx/error.log; 
pid /run/nginx.pid; 

# Cargar módulos dinámicos. Ver /usr/share/doc/nginx/README.dynamic. 
incluir /usr/share/nginx/modules/*.conf; 

eventos { 
    trabajador_conecciones 1024; 
} 

http { 
    log_format main '$ remote_addr - $ remote_user [$ time_local] "$ request"' 
                      '$ status $ body_bytes_sent "$ http_referer"' 
                      '"$ http_user_agent" "

    access_log /var/log/nginx/access.log main; 

    enviar archivo; 
    tcp_nopush en; 
    tcp_nodelay on; 
    keepalive_timeout 65; 
    tipos_hash_max_size 2048; 

    incluir /etc/nginx/mime.types; 
    default_type application / octet-stream; 

    # Cargue archivos de configuración modular desde el directorio /etc/nginx/conf.d. 
    # Consulte http://nginx.org/en/docs/ngx_core_module.html#include 
    # para obtener más información. 
    incluir /etc/nginx/conf.d/*.conf; 

# server { 
# listen 80 default_server; 
# listen [::]: 80 default_server; 
# nombre del servidor _;
# root / usr / share / nginx / html; 
# 
# # Carga archivos de configuración para el bloque de servidor predeterminado. 
# include /etc/nginx/default.d/*.conf; 
# 
# ubicación / { 
#} 
# 
# error_page 404 /404.html; 
# location = /40x.html { 
#} 
# 
# error_page 500 502 503 504 /50x.html; 
# location = /50x.html { 
#} 
#} 

# Configuración para un servidor habilitado para TLS. 
# 
# servidor { 
# escucha 443 ssl http2 default_server; 
# listen [::]: 443 ssl http2 default_server; 
# nombre del servidor _;
# root / usr / share / nginx / html; 
# #
# ssl_certificate "/etc/pki/nginx/server.crt"; 
# ssl_certificate_key "/etc/pki/nginx/private/server.key"; 
# ssl_session_cache compartido: SSL: 1m; 
# ssl_session_timeout 10m; 
# ssl_ciphers HIGH:! aNULL:! MD5; 
# ssl_prefer_server_ciphers en; 
# 
# # Carga archivos de configuración para el bloque de servidor predeterminado. 
# include /etc/nginx/default.d/*.conf; 
# 
# ubicación / { 
#} 
# 
# error_page 404 /404.html; 
# ubicación = /40x.html { 
#} 
#  
# error_page 500 502 503 504 /50x.html;
# ubicación = /50x.html { 
#} 
#} 

}

 

# Presione ESC, ingrese el comando para guardar el archivo de configuración 
: wq (guardar la salida de la operación de edición) 
: wq! (Guardar la salida de la fuerza de edición) 
: w! Sudo tee%

 

Después de anotar la asignación original, necesitamos crear un nuevo archivo DemoNetCore.conf para el proyecto .Net Core en la carpeta /etc/nginx/conf.d. La configuración del archivo es la siguiente

 


#Introduzca la carpeta conf.d cd /etc/nginx/conf.d #Cree el 

archivo de configuración 
sudo touch DemoNetCore.conf 
# Edite el 
archivo de 

configuración sudo vim DemoNetCore.conf # 
Servidor de 
información del archivo de configuración { 
    listen 80; 
    location / { 
    proxy_pass http: / / localhost: 8081; 
    proxy_http_version 1.1; 
    proxy_set_header Upgrade $ http_upgrade; 
    proxy_set_header Connection keep-alive; 
    proxy_set_header Host $ host; 
    proxy_cache_bypass $ http_upgrade; 
    } 
}

 

Después de la configuración, reinicie Nginx. Al reiniciar, puede informar directamente un error, como se muestra a continuación

 

# 重启 Nginx 
sudo systemctl restart nginx

 

  

En este momento, primero encontramos el proceso relacionado con Nginx, luego matamos directamente y luego comenzamos

 

#Ver proceso Nginx 
ps aux | grep nginx # 
matar 

procesos relacionados sudo kill -9 2058 
sudo kill -9 2059 #reiniciar 

Nginx 
sudo systemctl restart nginx

 

 

2. Verificar el efecto

 

  

Aquí se muestra 502 Bad Gateway, el motivo es el problema de la configuración de SELinux

 

 Security-Enhanced Linux (SELinux para abreviar) es un módulo de kernel de Linux y un subsistema de seguridad de Linux.
SELinux fue desarrollado principalmente por la Agencia de Seguridad Nacional. Los módulos SELinux se han integrado en los núcleos de Linux de la versión 2.6 y superiores.
La estructura y configuración de SELinux es muy complicada, y hay muchas cosas conceptuales, es más difícil de aprender. Muchos administradores de sistemas Linux cerraron SELinux debido a problemas.
Si puede dominar SELinux y usarlo correctamente, creo que todo el sistema básicamente puede llegar al punto de "irrompible" (recuerde siempre que no hay seguridad absoluta).
Dominar los conceptos básicos y los métodos de configuración simples de SELinux es un curso obligatorio para todos los administradores de sistemas Linux.

 

Entonces, hay dos soluciones a este problema:

 

①, cierra SELinux directamente

 

# Ingrese el directorio SELinux 
cd / etc / selinux 
# Edite el 

archivo de configuración de configuración de selinux 
sudo vim config 
# Modifique la configuración: SELINUX = deshabilitado, guarde y salga

 

Después de guardar, cambie de forzado o permisivo a diableado, que debe reiniciarse para que surta efecto. Cuando reiniciamos, podemos ver que la siguiente imagen es normal.

 

  

② Agregue Nginx a la lista blanca de SELinux

 

yum -y instalar policycoreutils-python   
cat /var/log/audit/audit.log | grep nginx | grep denegado | audit2allow -M mynginx   
semodule -i mynginx.pp

 

 

Supongo que te gusta

Origin www.cnblogs.com/jayjiang/p/12687144.html
Recomendado
Clasificación