Плохой шлюз 502 после небольшого нагрузочного теста на fastcgi-mono-сервере через nginx и ServiceStack
Я пытаюсь запустить API веб-сервиса с ServiceStack под nginx и fastcgi-mono-server.
Сервер запускается нормально, и API работает. Я могу видеть время отклика в браузере через профилировщик ServiceStack, и они работают менее 10 мс.
Но как только я провожу небольшой нагрузочный тест, используя «осаду» (только 500 запросов, используя 10 соединений), я начинаю получать 502 Bad Gateway. И чтобы восстановить, я должен перезапустить fastcgi-mono-сервер.
Сервер nginx в порядке. Fastcgi-mono-сервер - тот, который перестает отвечать после этой небольшой нагрузки.
Я попытался использовать сокеты tcp и unix (я знаю о проблеме с разрешениями для сокета unix, но я уже исправил это).
Вот мои конфигурации:
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;
}
}
Чтобы запустить fastcgi-mono-сервер:
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
РЕДАКТИРОВАТЬ: я забыл упомянуть важную деталь: я запускаю это на Mac OS X.
Я также проверил все возможные конфигурации веб-сервера для Mono: консольное приложение, модули apache mod_mono, nginx fast_cgi и proxy_pass. Все представили одну и ту же проблему сбоя после нескольких запросов под Mono 3.2.3 + Mac OS X.
Я смог протестировать ту же конфигурацию на машине с Linux, и у меня там не было никаких проблем.
Похоже, это проблема Mono / ASP.NET при работе в Mac OS X.