# apache2 설치 시도 중

**URL:** https://meta.discourse.org/t/trying-to-install-apache2/152592
**Category:** Self-hosting
**Created:** [5월 25, 2020, 10:20오전 UTC](https://meta.discourse.org/t/trying-to-install-apache2/152592 "2020-05-25T10:20:29Z")
**Posts on this page:** 1
**Showing post:** 7

<div class="post-metadata">

### Author: ![neounix](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/neounix/32/215617_2.png) [@neounix](https://meta.discourse.org/u/neounix)
#### Post date: [5월 25, 2020, 1:29오후 UTC](https://meta.discourse.org/t/trying-to-install-apache2/152592/7 "2020-05-25T13:29:26Z")

</div>

> [@nekodroid](#):
>
> 그렇다면 apache2.conf의 포트를 다른 것으로 변경해야 하는 건가요? 이 웹서버에서 앞으로 실행될 사이트들에 문제가 생기지 않을까요?

그렇기도 하고, 아니기도 합니다. 한 발짝 물러서서 이 문제를 살펴봅시다.

이전에는 Apache를 사용하여 여러 웹사이트를 실행하고 있었던 것으로 보입니다. Apache는 80과 443 포트에서 요청을 수신하고, 이를 "가상 호스트(virtual hosts)"로 "프록시(redirect)"하여 동일한 서버에서 여러 웹사이트를 같은 포트(80과 443)로 실행할 수 있게 했습니다. 이것이 "LAMP 101"이라 불리는 가상 호스트 방식입니다.

이제 공식적인 OOTB(Out Of The Box) 방식으로 Discourse를 설치한다고 가정해 봅시다. OOTB Discourse는 동일한 포트에 바인드(bind)하려고 시도하지만, Apache가 이미 해당 포트를 사용(바인드)하고 있으므로 실패합니다. 선택지는 다음과 같습니다:

1. Discourse를 유닉스 도메인 소켓(unix domain socket)으로 실행하고, Apache를 설정하여 Discourse 앱을 가상 호스트로 리버스 프록시(reverse proxy)하도록 합니다.

참고: 이 방법은 테스트를 통해 작동하는 것을 확인했습니다. 하지만 이는 Discourse에서 공식적으로(또는 비공식적으로) 지원되지 않습니다.

1. Apache에서 nginx로 전환하여 모든 웹 서버를 nginx로 실행하고, Discourse-docker 프로덕션 앱을 위한 유닉스 도메인 소켓을 사용하여 Discourse 앱을 가상 호스트로 리버스 프록시합니다.

참고: 이 방법도 Discourse에서 공식적으로 지원되지 않습니다. Apache 사이트를 운영하는 대부분의 사용자는 Apache2의 `mod_rewrite` 및 인코딩된 `geo-ip` 모듈 관련 설정을 nginx로 이식하는 것이 다소 까다롭다고 느낄 수 있습니다. 하지만 물론 가능은 합니다. 특히 애플리케이션이 nginx와 Apache2 모두를 지원하도록 구축된 경우라면 더 쉽지만, 여전히 공식적으로 지원되지는 않습니다.

1. 80과 443이 아닌 다른 포트에 Discourse docker 컨테이너를 노출합니다.

참고: 이 방법도(실제로는) 권장되지 않습니다(다만 기억이 정확하다면 공식적으로는 지원됩니다). 하지만 대부분의 사용자는 `https://my-great-discourse-app.org:3334`와 같이 포트 번호를 입력해야 하는 웹 앱에 접근하는 것을 원하지 않기 때문에, 프로덕션 환경에서는 이렇게 하지 않는 경우가 많습니다. 개발 환경은 별개의 이야기입니다.

“모든 세부 사항을 알지 못하는” 상태에서, LAMP와 이제 점점 더 많은 Discourse를 사용해 온 사람으로서의 제 추천은, Discourse를 별도의 서버에서 실행하는 것입니다(이것은 Discourse에서 공식적으로 지원됩니다). 하지만 예산이 정말 빠듯하여 모두 같은 서버에서 실행해야 하거나(또는 그저 복잡한 서버 하나를 운영하는 것을 선호한다면), Apache2를 설정하여 유닉스 도메인 소켓을 통해 Discourse 앱으로 리버스 프록시하도록 하는 방법을 배워야 합니다.

이것을 테스트해 보았는데, Apache2를 설정하여 유닉스 도메인 소켓을 사용해 Discourse로 리버스 프록시하는 것은 가능합니다. 하지만 이 솔루션은 공식적으로(전혀) 지원되지 않습니다.

참고: Apache2를 HAProxy와 함께 설정하는 링크는 쉽게 작동하게 만들 수 없었던 솔루션이라서 포기했습니다(HAProxy만 사용할 필요는 없으며, 이를 수행하는 "기존 방식"들이 있습니다). 하지만 대신 이 Discourse 튜토리얼을 따르는 것이 더 나을 수 있습니다.

> [@Set up Discourse on a server with existing Apache sites](https://meta.discourse.org/t/how-to-set-up-discourse-on-a-server-with-existing-apache-sites/30013):
>
> It’s not as daunting as it sounds! While this may sound a bit intimidating at first, it’s really not all that bad. You basically need to do two things: Install HAProxy (or an alternative) which will take over port 80 and then divert your Discourse traffic to your docker container, and all your other sites to your usual Apache set-up. Let Apache know which port to listen for. While this is only a rough guide, it should do a good job of pointing you in the right direction. Let’s get star…

조금이나마 도움이 되길 바랍니다, @nekodroid

---

_[View the full topic](https://meta.discourse.org/t/trying-to-install-apache2/152592)._
