
하나의 VPS에서 여러 웹사이트를 호스팅하고 있으며 각 웹사이트를 chroot하고 싶습니다. /chroot/웹사이트1 /chroot/웹사이트2
저는 감옥을 만들고 라이브러리와 종속성을 복사하기 위해 높은 수준의 도구인 makejail을 사용하고 있습니다. 쉬워요.
각 웹사이트에는 nginx, php, mysql이 필요합니다. PHP의 경우 구성에 따라 실제로 chroot를 지원하는 php5-fpm을 사용하고 있지만 이것을 사용하지 않습니다(어쩌면 그래야 할까요?)
내 질문은 다음 세 가지 접근 방식 중 어떤 접근 방식이 더 나은지입니다.
1) 모든 웹사이트에는 nginx, php, mysql로 구성된 별도의 인스턴스가 있습니다. 단점은 각 웹서버와 PHP가 서로 다른 포트를 수신해야 한다는 것입니다. 또한 앞에는 "마스터" nginx 웹 서버가 필요하며 그 뒤에 있는 chroot 서버에 대한 역프록시가 필요합니다. 아마도 가장 안전할 뿐만 아니라 가장 발전된 것이기도 합니다.
2) 수동으로 chroot 감옥을 만들지 않습니다. 저는 다른 포트에서 PHP 요청을 php-fpm으로 프록시하는 하나의 nginx 웹 서버를 설정했습니다. 각각 자체 chroot 폴더가 있는 여러 개의 php-fpm 구성을 가질 수 있습니다. 이것은 매우 관리하기 쉽습니다. 그러나 PHP만 chroot됩니다. 실제 웹서버가 아닙니다. 이 정도면 안전할까요? 또한 이 옵션을 시도해 보았는데 MySQL에 연결하려면 소켓 대신 TCP를 사용해야 할 것 같습니다.
3) 당신은 나에게 말한다;)
나는 chroot 감옥을 처음 접했기 때문에 내 가정이 틀렸다면 정정해 주시기 바랍니다. 나는 찾을 수 있는 모든 튜토리얼을 읽었지만 chroot 가이드 시장이 매우 부족하다는 것을 알았습니다. 도움이나 의견을 보내주시면 감사하겠습니다!
답변1
결국 옵션 번호 2를 사용했습니다. 소켓(localhost) 대신 TCP(127.0.0.1)를 사용하면 대부분의 작업이 즉시 작동합니다.
sendmail과 외부 서비스 등 뭔가를 처리해야 합니다. sendmail의 경우 mini_sendmail을 사용할 수 있습니다. makejail(Debian/Ubuntu 패키지)을 사용하고 이 튜토리얼을 따르면 설정이 매우 쉽습니다. http://www.cyberciti.biz/tips/howto-setup-sendmail-php-mail-chrooted-apache-lighttpd.html