ServerName 포트로 리디렉션되도록 Apache를 설정하는 방법은 무엇입니까?

ServerName 포트로 리디렉션되도록 Apache를 설정하는 방법은 무엇입니까?

방금 apache2와 haproxy를 새로 Ubuntu에 설치했습니다. Haproxy는 포트 80에서 수신 대기하고 Apache는 3080에서 수신하며 후자는 외부에서 숨겨집니다.

내 문제는 후행 슬래시 없이 폴더 이름을 사용할 때, 예를 들어 example.com/some/folderApache가 자동으로 슬래시가 있는 동일한 주소로 리디렉션되지만 잘못된 포트인 example.com:3080/some/folder/!

Apache 문서에서는 내 문제가 CanonicalName/Port 구성에 있다고 제안했지만 이들 조합이 작동하지 않는 것 같습니다. 내가 무엇을 오해할 수 있겠는가?

내 가상 호스트:

<VirtualHost *:3080>

    ServerName http://example.com:80
    UseCanonicalName On
    UseCanonicalPhysicalPort On

    DirectoryIndex index.php index.html
    DocumentRoot /var/www/main

    <Directory /var/www/main>
        Options -Indexes
        Options -FollowSymLinks
        AllowOverride All

        <Files ~'^\.'>
            Order allow,deny
            Deny from all
            Satisfy all
        </Files>
    </Directory>
</VirtualHost>

답변1

둘 다 사용하지 마십시오.

UseCanonicalName Off
UseCanonicalPhysicalPort Off

HAProxy는 (일반적으로) 전송된 헤더를 처리하지 않으므로 Host이 구성에는 올바른 Location헤더를 사용하여 생성된 리디렉션이 있어야 합니다. 이것이 도움이 되지 않으면 Location응답으로 전송되는 정확한 헤더를 제공하시겠습니까?

그건 그렇고, ServerName귀하의 가상 호스트가 수신 대기하지 않는 포트가 없어야 하며 단순화할 수 있습니다.

ServerName example.com

관련 정보