odoo의 iptables를 변경한 후 웹메일 문제를 해결하는 방법은 무엇입니까?

odoo의 iptables를 변경한 후 웹메일 문제를 해결하는 방법은 무엇입니까?

Amazon EC2 인스턴스 OS를 사용하고 있습니다: ubuntu 14.04

먼저 odoo 서버를 사용하여 웹사이트를 디자인합니다. 이는 액세스하여 수행됩니다.http://example.com:8069

그런 다음 Vesta 패널을 설치하고 내 도메인에 대한 메일 계정을 만들었습니다. 이 계정은 roundcube이며 다음을 통해 액세스할 수 있습니다.http://example.com/webmail

odoo에서 웹사이트를 개발한 후 rc.local에 규칙을 추가했습니다: iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8069

내 메인 도메인에서 odoo 웹사이트에 접속할 수 있지만, 그 이후부터 해당 URL로 이동하면 odoo 404 페이지가 전송되고 웹메일에 접속할 수 없습니다.

작업하려면 odoo와 웹메일이 필요하며 도움을 주시면 대단히 감사하겠습니다.

답변1

문제는 roundcube가 포트 80에 바인딩된다는 것입니다. iptables를 사용하여 모든 포트 80 트래픽을 oodo로 리디렉션하기 전까지는 잘 작동합니다. 이렇게 하면 oodo 트래픽이 제대로 작동하지만 roundcube용 트래픽도 iptables에 의해 캡처되어 oodo로 전송됩니다(따라서 roundcube에 액세스하려고 하면 oodo 404 페이지가 표시됩니다).

대부분의 Linux 시스템과 마찬가지로 이 문제를 해결하는 방법은 여러 가지가 있지만 요청을 처리하기 위해 역방향 프록시를 설정하는 것이 좋습니다. 프록시는 동일한 서버에서 실행될 수 있으며 포트 80으로 들어오는 요청을 처리할 수 있습니다. 요청을 분석하고 필요에 따라 roundcube 또는 oodo에 전달합니다.

아마도 Nginx를 프록시로 사용하고 다음과 같이 할 것입니다.

  1. roundcube를 포트 8000(또는 아직 사용하지 않는 다른 높은 포트)에 바인딩합니다. 이는 프록시 서버를 위해 포트 80을 확보해야 하기 때문입니다.
  2. Nginx를 설치하고 포트 80에 바인딩된 역방향 프록시로 구성합니다. 외관에 대한 일부 정보는 다음과 같습니다.http://nginx.com/resources/admin-guide/reverse-proxy/
  3. Nginx 구성에는 /webmail에 대한 모든 요청을 캡처하고 이를 localhost:8000(roundcube 설치)으로 프록시하는 위치 블록이 있습니다.
  4. 다른 모든 요청은 localhost:8069(oodo 설치)로 프록시 전달됩니다.

어떤 프록시를 사용하는지는 귀하가 선호하는 것에 따라 달라집니다. 저는 Nginx를 사용할 가능성이 높지만 Squid, Apache 또는 기타 여러 도구도 사용할 수 있습니다. 웹 서버로 기본적으로 roundcube가 사용하는 것이 무엇인지는 모르지만 다른 것을 설치하지 않고도 oodo 요청을 프록시하는 데 사용할 수 있습니다.

이것이 적어도 당신이 올바른 방향으로 갈 수 있기를 바랍니다.

관련 정보