12P by neo 8달전 | favorite | 댓글 3개
  • 리버스 프록시, 정적 애셋 서빙, 웹앱 실행등으로 사용
  • 다양한 언어의 어플리케이션 코드 실행 가능: Go, Java, Node.js, Perl, PHP, Python, Ruby, WebAssembly
  • 최신 어플리케이션 스택의 여러 계층을 성능/레이턴시/확장성에 초점을 두고 하나의 솔루션으로 압축
  • 복잡도에 관계없이 모든 웹 아키텍처를 지원하도록 설계되어, 대규모 기업부터 개인 홈페이지까지 지원
  • 프로덕션 수준의 부하에도 안정적인 스케일링 지원
  • RESTful JSON API를 통해 중단없이 설정의 동적 업데이트 가능 (OpenAPI 스펙 제공)
  • NGINX Unit의 아키텍처는 비동기/멀티스레드로, 보안과 견고성을 보장하면서 현대 컴퓨팅 플랫폼의 사용을 최대화하기 위해 여러 프로세스로 구성
  • macOS, Docker, Amazon Linux, Fedora, RedHat, Debian, Ubuntu에 대한 빠른 설치 옵션을 제공
Hacker News 의견
  • PHP와 함께 사용될 때 Nginx Unit이 Nginx과 php-fpm의 조합을 능가한다는 보고.
  • Docker 환경에서 Nginx Unit을 통해 PHP를 실행하면 http와 fpm을 위한 별도의 컨테이너가 더 이상 필요하지 않아, Apache의 mod_php와 유사해짐.
  • Nginx Unit은 이진 컴파일 언어, Go, JavaScript (Node.js), Java, Perl, PHP, Python, Ruby, WebAssembly를 포함한 다양한 언어를 지원.
  • 일부 사용자들은 API를 통한 설정에 대한 강조를 의문시하며, 예측 가능한 시작 상태를 위해 파일을 통해 앱 서버를 설정하는 것을 선호.
  • Nginx Unit은 스택에서 php-fpm을 제거할 수 있게 해주며, 이는 PHP 앱을 컨테이너에 넣을 때 유익.
  • 사용자들은 복잡한 PHP Laravel 앱을 Nginx Unit으로 테스트할 때 상당한 속도 향상을 보고함.
  • Nginx Unit은 별도의 Docker 컨테이너가 필요 없이 각각 다른 언어 런타임/버전을 사용하는 여러 앱을 실행할 수 있게 해줌.
  • 일부 사용자들은 Nginx가 Nginx Unit이 Nginx과 어떻게 다른지, 그리고 왜 별도의 것이어야 하는지 설명하는 페이지를 제공해야 한다고 제안.
  • Nginx Unit의 구성 인터페이스는 JSON에 많이 의존하며, 일부 사용자들은 이를 번거롭게 느낌.
  • "Universal" 라벨에도 불구하고 Nginx Unit은 C++, Rust, ASP.NET을 지원하지 않지만 Perl은 지원.
  • 일부 사용자들은 여전히 Nginx Unit이 표준 Nginx보다 어떤 이점이 있는지, 그리고 Curl을 통한 JSON 제어와 내장 언어 지원에 대해 의문을 제기.
  • Nginx Unit은 자동 TLS 인증서를 포함하지 않으며, 이는 여전히 Certbot으로 수동으로 수행됨.
  • PHP와 함께 사용될 때 Nginx Unit이 Nginx과 php-fpm의 조합을 능가
  • Docker 환경에서 Nginx Unit을 통해 PHP를 실행하면 http와 fpm을 위한 별도의 컨테이너가 더 이상 필요하지 않아, Apache의 mod_php와 유사해짐

이 두 부분이 흥미롭네요.

이 방식이 조커 컨테이너에서 권장하는 컨테이너당 한 개의 서비스와도 더 맞아서 시도해봤었는데, 한 앱 내에서 라라벨 같은 라우팅 방식 앱과 단순 php 파일 서빙을 같이 할 수는 없는 제약이 있어서 포기한 적이 있습니다.
기본적으로 러닝 커브가 가파르다고 느껴지기도 했습니다.