Назад | Перейти на главную страницу

Какова цель запуска nginx перед вашими серверами приложений на Amazon EC2?

Я много занимаюсь изучением серверной архитектуры. В настоящее время я использую сервер приложений django и сервер базы данных postgresql в веб-службах Amazon. Весь мой контент обслуживается через Gunicorn. Я хотел бы знать, почему серверы nginx расположены перед серверами приложений django. Какова их цель? Вот схема:

https://d36cz9buwru1tt.cloudfront.net/architecture_diagram_praekelt-1.jpg

Во многих стеках nginx часто помещается перед единорогом или пушкой для буферизации ответов медленным клиентам.

Дополнительную информацию см. В документации nginx:

http://wiki.nginx.org/HttpProxyModule#proxy_buffering

ELB не выполняет буферизацию, поэтому наличие nginx может спасти ваш бекон.

Обычно вы устанавливаете обратный прокси-сервер перед внутренними серверами, такими как gunicorn (или tomcat в мире Java), потому что они имеют больше функций и более устойчивы.

Например, с помощью nginx вы можете добавить детальный контроль доступа, отключить SSL и не быть настолько уязвимыми для атак DOS (это то, что Gunicorn специально упоминает в своих документах ( http://docs.gunicorn.org/en/latest/deploy.html ).

В EC2 вы можете заменить nginx и haproxy на ELB, если у вас нет специальных функций nginx или haproxy. Видеть http://harish11g.blogspot.com/2012/11/amazon-elb-vs-haproxy-ec2-analysis.html для сравнения ELB и haproxy.