La puerta de enlace 502 no es correcta después de una pequeña prueba de carga en fastcgi-mono-server a través de nginx y ServiceStack
Estoy tratando de ejecutar una API de servicio web con ServiceStack bajo nginx y fastcgi-mono-server.
El servidor se inicia bien y la API está en funcionamiento. Puedo ver los tiempos de respuesta en el navegador a través del generador de perfiles de ServiceStack y se ejecutan en menos de 10 ms.
Pero tan pronto como hago una pequeña prueba de carga con "siege" (solo 500 solicitudes con 10 conexiones), comienzo a recibir 502 Bad Gateway. Y para recuperar, tengo que reiniciar el fastcgi-mono-server.
El servidor nginx está bien. El fastcgi-mono-server es el que deja de responder después de esta pequeña carga.
He intentado usar los sockets tcp y unix (soy consciente de un problema de permisos con el socket de unix, pero ya lo solucioné).
Aquí están mis configuraciones:
server {
listen 80;
listen local-api.acme.com:80;
server_name local-api.acme.com;
location / {
root /Users/admin/dev/acme/Acme.Api/;
index index.html index.htm default.aspx Default.aspx;
fastcgi_index Default.aspx;
fastcgi_pass unix:/tmp/fastcgi.socket;
include /usr/local/etc/nginx/fastcgi_params;
}
}
Para iniciar el fastcgi-mono-server:
sudo fastcgi-mono-server4 /applications=local-api.acme.com:/:/Users/admin/dev/acme/Acme.Api/ /socket=unix:/tmp/fastcgi.socket /multiplex=True /verbose=True /printlog=True
EDIT: olvidé mencionar un detalle importante: estoy ejecutando esto en Mac OS X.
También probé toda la configuración de servidor web posible para Mono: aplicación de consola, apache mod_mono, nginx fast_cgi y proxy_pass. Todos presentaron el mismo problema de fallar después de algunas solicitudes bajo Mono 3.2.3 + Mac OS X.
Pude probar la misma configuración en una máquina Linux y no tuve ningún problema allí.
Así que parece que es un problema Mono / ASP.NET cuando se ejecuta en Mac OS X.