일부 AWS Linux 서버를 재구축하는 작업 중입니다. 회사 서버가 Apache 웹 서버 인스턴스와 Tomcat에서 APR(Apache Portable Runtime)을 다운로드하는 것을 봅니다.
여러 다른 위치/소프트웨어(예: APR에서 Tomcat 및 Apache 웹 서버로)에 설치를 구성하면 어떤 의미가 있습니까?
실행 ./configure --prefix=/opt/tomcat/
한 다음 다시 실행 하면 ./configure --prefix=/opt/apache2/
이 위치에 패키지가 다운로드되는 것을 볼 수 있습니다.
괜찮나요? 이렇게 해도 문제가 없나요?
저는 OpenSSL이 Apache와 Tomcat에도 다운로드된 이전 서버에서 이 작업이 수행되는 것을 본 적이 있으며 동일한 방식으로 수행되었다고 가정합니다. 하지만 이 접근 방식이 왜 괜찮은지 나쁜지에 대한 좋은 설명을 듣고 싶었습니다.
답변1
네, 할 수 있어요. 그것이 접두사의 요점입니다! 그러나 이러한 서버를 실행할 때 라이브러리와 실행 파일이 실제로 다른 접두사에서 가져오도록 PATH
, 및 기타 환경 변수를 적절하게 조정해야 합니다 .LD_LIBRARY_PATH
추가로 설치하세요동일한두 곳에 바이너리를 두는 것은 별 의미가 없습니다(저장 및 관리 문제 외에는 비용이 들지 않습니다). 서로 다른 구성으로 하나의 서버만 실행할 수 있습니다. 정확한 작동 방식은 개별 서비스에 따라 다릅니다.
하지만 솔직히 말해서, 그러한 표준 소프트웨어를 직접 컴파일하는 것은 약간 이상합니다.알다왜 이 작업을 수행해야 합니까? 특히 서버/클라우드 세계에서는 일반적으로 하나의 서비스만 있고 가능한 한 간단하게 설치합니다. 어떤 이유로 동일한 서비스의 두 인스턴스가 필요한 경우 둘 다 컨테이너에 넣고 호스트와 연결된 데이터 디렉터리를 공유할 수 있습니다. 체계.
따라서 이 질문에 대해서는 다음 사항을 이해해야 한다고 생각합니다.
- 이 서비스는 실제로 무엇을 하고 있나요?
- 소스에서 빌드되는 이유는 무엇이며 두 개의 별도 설치가 필요한 이유는 무엇입니까?
- 두 인스턴스가 공유해야 하는 리소스는 무엇입니까? 예를 들어 두 웹 서버는 동일한 IP 주소의 TCP 포트 80에 동시에 응답할 수 없으므로 작동하지 않습니다. 두 개의 서로 다른 Tomcat 애플리케이션이 여전히 데이터베이스를 공유하려고 할 수 있습니다. 이는 문제가 되지 않습니다. 하지만 모두가 동일한 로그 파일에 쓰려고 하면 상황이 빨리 악화될 수 있습니다.
- AWS의 모든 서비스에서 두 개의 서비스 인스턴스가 각 컨테이너에서 서로 격리되지 않는 이유는 무엇입니까?