La Red de Conocimientos Pedagógicos - Currículum vitae - Después de configurar nginx, aún no se puede conectar aunque sea concurrente.

Después de configurar nginx, aún no se puede conectar aunque sea concurrente.

nginx aún no puede funcionar después de configurar la concurrencia

Consulte lo siguiente

Configuración de nginx para alta concurrencia

1. En términos generales , nginx Los siguientes elementos en el archivo de configuración son más efectivos para la optimización:

1. work_processes 8;

Se recomienda especificar la cantidad de programas nginx de acuerdo con la cantidad de CPU , normalmente un múltiplo de él (por ejemplo, 2 CPU de cuatro núcleos se cuentan como 8).

2. Worker_CPU_Affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000;

Asignar una CPU a cada programa en el ejemplo anterior, se asignan 8 programas a 8 CPU. Puede escribir más uno o asignar un programa a varias CPU.

3.worker_rlimit_nofile 65535;

Este comando hace referencia al número máximo de descriptores de archivos que un programa nginx puede abrir. El valor teórico debe ser el número máximo de archivos abiertos

(ulimit -n) se divide por la cantidad de programas nginx, pero nginx asigna solicitudes de manera no tan uniforme, por lo que es mejor mantener el valor consistente con ulimit -n.

Ahora la cantidad de archivos abiertos bajo el núcleo Linux 2.6 es 65535, y trabajador_rlimit_nofile debe completarse con 65535 en consecuencia.

Esto se debe a que la asignación de solicitudes a programas durante la programación de nginx no está tan equilibrada, por lo que si completa 10240 y la concurrencia total alcanza 30 000-40 000, el programa puede exceder 10240 y luego regresará. Error 502.

Cómo ver el descriptor de archivos del sistema Linux:

[root@web001 ~]# sysctl -a | grep fs.file

fs.file-max = 789972

fs.file-nr = 510 0 789972

4. use epoll;

use el modelo de E/S de epoll

(

Notas adicionales:

Similar a Apache, nginx tiene diferentes modelos de eventos para diferentes sistemas operativos

A) Modelo de eventos estándar

p>

Seleccionar y sondear pertenecen al modelo de eventos estándar. Si no hay un método más efectivo en el sistema actual, nginx elegirá seleccionar o sondear

B) Modelo de eventos eficiente

Kqueue. : Se utiliza en FreeBSD 4.1+, OpenBSD 2.9+, NetBSD 2.0 y MacOS X. El uso de kqueue en un sistema MacOS X de doble procesador puede provocar una falla del núcleo.

Epoll: utilizado en sistemas versión 2.6 del kernel de Linux y posteriores.

/dev/poll: utilizado en Solaris 7 11/99+, HP/UX 11.22+ (eventport), IRIX 6.5.15+ y Tru64 UNIX 5.1A+.

Eventport: utilizado en Solaris 10. Para evitar fallos del núcleo, es necesario instalar parches de seguridad.

)

5. Workers_connections 65535;

El número máximo de conexiones permitidas por cada programa. Teóricamente, el número máximo de conexiones por servidor nginx es Workers_processes*. conexiones_trabajadores.

6. keepalive_timeout 60;

tiempo de espera de keepalive.

7. client_header_buffer_size 4k;

El tamaño del búfer del encabezado de solicitud del cliente. Esto se puede configurar de acuerdo con el tamaño de paginación del sistema. Generalmente, el tamaño de un encabezado de solicitud no excederá. 1k Sin embargo, dado que la paginación general del sistema es mayor que 1k, el tamaño de paginación se establece aquí.

El tamaño de paginación se puede obtener con el comando getconf PAGESIZE.

[root@web001 ~]# getconf PAGESIZE

4096

Pero también hay casos en los que client_header_buffer_size supera los 4k, pero el valor de client_header_buffer_size debe establecerse en "sistema paginando un múltiplo integral de" tamaño ".

8. open_file_cache max=65535 inactive=60s;

Esto especificará el caché para abrir archivos. El valor predeterminado no está habilitado. max especifica el número de cachés, recomienda y abre archivos. El número es consistente e inactivo se refiere a cuánto tiempo no se ha solicitado el archivo antes de que se elimine el caché.

9. open_file_cache_valid 80s;

Esto se refiere a la frecuencia con la que se verifica la caché para obtener información válida.

10. open_file_cache_min_uses 1;

El número mínimo de usos del archivo dentro del tiempo de argumento inactivo del comando open_file_cache. Si se excede este número, el descriptor del archivo siempre se abre en. el caché. Como en el ejemplo anterior, si un archivo no se utiliza dentro del tiempo de inactividad, se eliminará.

2. Respecto a la optimización de los parámetros principales:

.ipv4.tcp_max__buckets = 6000

El número predeterminado de tiempo de espera es 180000.

.ipv4.ip_local_port_range = 1024 65000

El rango de puertos permitido por el sistema.

.ipv4.tcp__recycle = 1

Habilita el reciclaje rápido en tiempo de espera.

.ipv4.tcp__reuse = 1

Habilitar la reutilización. Permite reutilizar los sockets TIME-WAIT para nuevas conexiones TCP.

.ipv4.tcp_syncookies = 1

Habilite las cookies SYN Cuando se produzca un desbordamiento de la cola de espera SYN, habilite las cookies para manejarlo.

.core.somaxconn = 262144

El trabajo pendiente de la función de escucha en la aplicación web limita de forma predeterminada el .core.somaxconn del argumento principal a 128, mientras que el NGX_LISTEN_BACKLOG definido por El valor predeterminado de nginx es 511, por lo que es necesario ajustar este valor.

.core.dev_max_backlog = 262144

El número máximo de paquetes que se permite enviar a la cola cuando cada interfaz de red recibe paquetes más rápido de lo que el núcleo puede procesarlos.

.ipv4.tcp_max_orphans = 262144

El número máximo de sockets TCP en el sistema que no están asociados con ningún código de control de archivos de usuario. Si se excede este número, la conexión huérfana se restablecerá inmediatamente y se imprimirá un mensaje de advertencia.

Este límite es sólo para evitar ataques DoS simples. No puede confiar demasiado en él ni reducir artificialmente este valor. Debe aumentar este valor (si aumenta la memoria).

.ipv4.tcp_max_syn_backlog = 262144

El número máximo de solicitudes de conexión registradas que aún no han recibido información de confirmación del cliente. Para sistemas con 128 M de memoria, el valor predeterminado es 1024 y para sistemas con poca memoria, es 128.

.ipv4.tcp_timestamps = 0

Las marcas de tiempo pueden evitar el ajuste del número de secuencia. Un enlace de 1 Gbps definitivamente encontrará números de secuencia que se han utilizado antes. La marca de tiempo permite que el núcleo acepte dichos paquetes "anormales". Es necesario apagarlo aquí.

.ipv4.tcp_synack_retries = 1

Para abrir la conexión con el par, el núcleo necesita enviar un SYN con un ACK en respuesta al SYN anterior. Este es el segundo apretón de manos del llamado apretón de manos de tres vías. Esta configuración determina la cantidad de paquetes SYN+ACK enviados por el núcleo antes de abandonar la conexión.

.ipv4.tcp_syn_retries = 1

El número de paquetes SYN enviados antes de que el núcleo deje de establecer la conexión.

.ipv4.tcp_fin_timeout = 1

Si el extremo local solicita cerrar el socket, este parámetro determina cuánto tiempo permanece en el estado FIN-WAIT-2. El interlocutor puede cometer errores y no cerrar nunca la conexión, o incluso bloquearse inesperadamente. El valor predeterminado es 60 segundos. 2.2 El valor habitual para el núcleo es 180 segundos. Puede presionar esta configuración, pero recuerde que incluso si la máquina es un servidor WEB con poca carga, existe el riesgo de desbordamiento de memoria debido a una gran cantidad de sockets inactivos. FIN-WAIT-2 es menos peligroso que FIN-WAIT-1, porque sólo puede consumir hasta 1,5 K de memoria, pero su período de supervivencia es más largo.

.ipv4.tcp_keepalive_time = 30

Cuando keepalive está habilitado, la frecuencia con la que TCP envía mensajes de keepalive. El valor predeterminado es 2 horas.

3. A continuación se publica una configuración de optimización principal completa:

vi /etc/sysctl.conf En CentOS5.5, todo el contenido se puede borrar y reemplazar directamente con el siguiente contenido:

p>

.ipv4.ip_forward = 0

.ipv4.conf.default.rp_filter = 1

.ipv4.conf.default.aept_source_route = 0

kernel.sysrq = 0

kernel.core_uses_pid = 1

.ipv4.tcp_syncookies = 1

kernel.msgmnb = 65536

kernel.msgmax = 65536

kernel.shmmax = 68719476736

kernel.shmall = 4294967296

.ipv4.tcp_max__buckets = 6000

.ipv4.tcp_sack = 1

.ipv4.tcp_window_scaling = 1

.ipv4.tcp_rmem = 4096 87380 4194304

.ipv4 .tcp_wmem = 4096 16384 4194304

.core.wmem_default = 8388608

.core.rmem_default = 8388608

.core.rmem_max = 16777216

.core.wmem_max = 16777216

.core.dev_max_backlog = 262144

.core.somaxconn = 262144

.ipv4.tcp_max_orphans = 3276800

.ipv4.tcp_max_syn_backlog = 262144

.ipv4.tcp_timestamps = 0

.ipv4.tcp_synack_retries = 1

.ipv4.tcp_syn_retries = 1

.ipv4.tcp__recycle = 1

.ipv4.tcp__reuse = 1

.ipv4.tcp_mem = 94500000 915000000 927000000

.ipv4. tcp_fin_timeout = 1

.ipv4.tcp_keepalive_time = 30

.ipv4.ip_local_port_range = 1024 65000

Para que la configuración surta efecto inmediatamente, utilice el siguiente comando:

/ *** in/sysctl -p

4. Lo siguiente trata sobre la optimización del número de conexiones del sistema

El valor predeterminado de los archivos abiertos y el máximo de procesos de usuario en Linux es 1024

# ulimit -n

1024

#ulimit –u

1024

Descripción del problema: el servidor solo permite abrir 1024 archivos al mismo tiempo. 1024 programas de usuario procesados.

Utilice ulimit -a para ver todos los valores límite del sistema actual y utilice ulimit -n para ver el número máximo actual de archivos abiertos.

El Linux recién instalado solo tiene 1024 de forma predeterminada. Cuando se utiliza como servidor con una carga pesada, es fácil encontrar un error: demasiados archivos abiertos. Por lo tanto, es necesario hacerlo más grande.

Solución:

Utilice ulimit –n 65535 para modificarlo inmediatamente, pero no será válido después de reiniciar. (Tenga en cuenta que ulimit -SHn 65535 es equivalente a ulimit -n 65535, -S se refiere a suave y -H se refiere a duro)

Hay tres métodos de modificación:

1. En /etc/ Agregue una línea ulimit -SHn 65535

a rc.local 2. Agregue una línea ulimit -SHn 65535

a /etc/profile 3. Al final de / etc/security/limits.conf Añadido:

* soft nofile 65535

* hard nofile 65535

* soft nproc 65535

* hard nproc 65535

¿Cuál usar específicamente? El primer método no tiene efecto en CentOS, el tercer método tiene efecto y el segundo método tiene efecto en Debian

# ulimit -n

65535

# ulimit -u

65535

Nota: El comando ulimit en sí tiene configuraciones suaves y duras Agregar -. H para configuraciones estrictas, agregar -S significa que el valor predeterminado suave muestra el límite suave

El límite suave se refiere al valor de configuración vigente en el sistema actual. Los usuarios normales pueden reducir el límite estricto. Pero no se puede aumentar. El límite flexible no se puede establecer por encima del límite estricto. Sólo los usuarios root pueden aumentar el valor del límite estricto.

5. El siguiente es un archivo de configuración de nginx simple:

usuario ;

trabajador_procesos 8;

trabajador_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000

01000000;

error_log log/nginx_error.log crit;

pid /usr/local/nginx/nginx.pid ;

trabajador_rlimit_nofile 204800;

eventos

{

usar epoll;

trabajador_conexiones 204800;

}

{

incluye mime.types;

aplicación default_type/octet-stream;

conjunto de caracteres utf-8 ;

server_names_hash_bucket_size 128;

client_header_buffer_size 2k;

large_client_header_buffers 4 4k;

client_max_body_size 8m;

sendfile activado;

tcp_nopush activado;

keepalive_timeout 60;

fastcgi_cache_path /usr/local/nginx/fastcgi_cachelevels=1:2

llaves_zone=PRUEBA:10m

inactivo=5m;

fastcgi_connect_timeout 300;

fastcgi_send_timeout 300;

fastcgi_read_timeout 300;

fastcgi_buffer_size 4k;

fastcgi_buffers 8 4k;

fastcgi_busy_buffers_size 8k;

fastcgi_temp_file_write_size 8k;

fastcgi_cache PRUEBA;

fastcgi_cache_valid 200 302 1h;

fastcgi_cache_valid 301 1d;

fastcgi_cache_valid cualquier 1m;

fastcgi_cache_min_uses 1;

fastcgi_cache_use_stale error tiempo de espera invalid_header _500;

open_file_cache max=204800 inactive=20s;

open_file_cache_min_uses 1;

open_file_cache_valid 30s;

tcp_nodelay on;

gzip activado;

gzip_min_length 1k;

gzip_buffers 4 16k;

gzip__version 1.0;

gzip_p_level 2;

gzip_types texto/aplicación simple/ x-javascript texto/aplicación css/xml;

gzip_vary activado;

servidor

{

escucha 8080;

nombre_servidor backup.aiju.;

index index.php index.htm;

raíz //;

ubicación /estado

{

stub_status on;

}

ubicación ~ .*\.(php|php5)?$

{

fastcgi_pass 127.0.0.1:9000;

fastcgi_index index.php;

incluye fcgi.conf;

}

ubicación ~ .*\.(gif|jpg|jpeg|png|bmp|swf|js|css)$

{

caduca 30 días;

}

log_format aess '$remote_addr -- $remote_user [$time_local] "$request" '

'$status $body_bytes_sent "$_referer" '

'"$_user_agent" $_x_forwarded_for';

aess_log log/aess.log aess;

}

} Python ha modificado la configuración de ss, pero aún No puedo iniciar sesión. Vaya a

1. Instale Python

Preste atención a las nuevas variables de entorno.

2. Instale ss,

De forma predeterminada, Python tiene pip instalado, por lo que puede usar el comando de instalación directamente en Python:

pip install simplejson(este (No es necesario instalarlo)

pip install shadowsocks

3. Verificar y configurar ss

pip frozen es un comando de verificación

El El directorio de configuración es:

python_path/lib/site-packages/shadowsocks/config.json

El contenido es el siguiente:

{

"servidor": "0.0 .0.0",

"server_port":8388,

"local_port":1080,

"contraseña":" xoxxoo",

"timeout":600,

"método":"aes-256-cfb"

}

4 Utilice lo siguiente en la interfaz de línea de comando cmd Inicio del comando

ssserver -c python_path\Lib\site-packages\shadowsocks\config.json

Dado que el puerto 8388 del servidor está configurado arriba. , podemos usar el comando stat para detectar el puerto 8388 Si se debe habilitar

stat -ano|findstr "8388"

Instalación de Python Configuración del lado del servidor SS Configuración del lado del servidor completada . ¿Cómo configurar el número concurrente de proyectos en tongweb5.0 en Linux?

¿Qué es tomcat 5.0 en tongweb5.0? El paquete aún no puede acceder a Internet

¿La razón por la que el móvil? la tarjeta telefónica no puede acceder a Internet Las posibilidades son las siguientes:

1. No se puede encontrar señal de red en la ubicación

2. La tarjeta del teléfono móvil no está habilitada para acceder a Internet; ;

3. El terminal móvil no es compatible con la red del operador utilizada.

Puedes probar las siguientes soluciones:

1. Enciende y apaga el teléfono para probarlo.

2. Cambia la ubicación y busca señales de red; nuevamente;

p>

3. Si la tarjeta del teléfono móvil no tiene la función de acceso a Internet, debe habilitar la función de acceso a Internet y encender el interruptor de datos en el teléfono móvil

p>

p>

4. Si el terminal de telefonía móvil no es compatible con la red del operador utilizado, se recomienda cambiar la tarjeta por una prueba de teléfono móvil.

Si el método anterior aún no consigue solucionar el problema, se recomienda contactar con el servicio de atención al cliente del operador local o consultar con el servicio de atención al cliente oficial del teléfono móvil. MMM todavía no puede conectarse

El mantenimiento del sistema es normal, así que no se preocupe. La plataforma ha estado en funcionamiento durante cuatro años. El mantenimiento está suspendido y el sistema está actualizado. Atrévete a comer y jugar. En un abrir y cerrar de ojos todo fue normal. WeChat cambió el número de móvil. Simplemente no se puede acceder al número original. ¿Qué debo hacer si envié el código de verificación muchas veces y aún no puedo iniciar sesión?

Ir a modificar mi cuenta personal ¿Por qué no puedo iniciar sesión en Google después de configurar XX?

No uso una VPN ni la uso en el extranjero. No,

Porque está restringida en China,

Incluso si la solicité recientemente. o, por lo general, no se puede usar con frecuencia.

Y te ayudé a registrarla. Las personas pueden cambiar la contraseña en cualquier momento, lo cual no es seguro y no está garantizado.

Si realmente quieres usarlo, los métodos y pasos son:

1. 51vpn solo admite países extranjeros.

2. Después de conectar la VPN, puedes abrir Google, registrarte y usarlo.

Solo si el software principal del cartel está conectado a un servidor proxy externo puede ser útil iniciar sesión en el sitio web.

¿El XX del autor se conectó exitosamente al servidor proxy en línea?

Recientemente vi un artículo en Internet y vuelvo a publicar el resto. Este es un artículo de 2002. Ese año fue un año importante para la industria de los motores de búsqueda, porque desde ese año, Google lo es. ya no es "fácil de usar". Al buscar, a menudo aparece "No se puede acceder a esta página" y luego no podrá conectarse temporalmente a Google. La función de instantánea web de Google incluso se bloqueará hasta...