Apache Proxypass는 하위 도메인을 포트 및 경로로 리디렉션합니다.

Apache Proxypass는 하위 도메인을 포트 및 경로로 리디렉션합니다.

좋아, 제목을 어떻게 표현해야 할지 잘 모르겠지만 내 상황을 설명하려고 노력하겠습니다.

나는 무엇보다도 "플렉스 미디어 서버"를 실행하는 데비안을 실행하는 홈 서버를 가지고 있습니다.

내가 소유한 도메인에 대한 하위 도메인을 사용하여 원격으로 내 서버에 액세스합니다. 이름을 "mydomain.com". 하위 도메인에서 내 서버에 액세스합니다. "home.mydomain.com"(현재는 일부 기본 HTML만 표시하고 있음)에서 "Plex 웹 인터페이스"에 액세스합니다."home.mydomain.com:32400/웹".

내가 원하는 것은 하위 도메인을 리디렉션하는 것입니다.plex.mydomain.com" 에게 "home.mydomain.com:32400/웹"를 사용하여 "플렉스 인터페이스"에 더 쉽게 액세스할 수 있습니다.


절반쯤 도달했지만 어떻게 진행해야 할지, 아니면 실제로 가능한지 잘 모르겠습니다.

현재 내 가상 호스트는 다음과 같습니다.

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName home.mydomain.com

    DocumentRoot /var/www/home.mydomain.com/public_html

    <Directory />
            Options FollowSymLinks
            AllowOverride None
    </Directory>
    <Directory /var/www/>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride None
            Order allow,deny
            allow from all
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
            AllowOverride None
            Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
            Order allow,deny
            Allow from all
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

<VirtualHost *:80>
    ServerName plex.mydomain.com
    ProxyRequests Off
    ProxyPreserveHost On
    ProxyPass / http://localhost:32400/
    ProxyPassReverse / http://localhost:32400/
</VirtualHost>

그러면 "에서 plex 인터페이스에 액세스할 수 있습니다.plex.mydomain.com/web", 하지만 나는 여전히 "를 제거하고 싶습니다./편물" 부분.

그래서 그렇게 하기 위해 다음을 시도했습니다.

ProxyPass / http://localhost:32400/web
ProxyPassReverse / http://localhost:32400/web

전혀 작동하지 않았습니다. "404 Not Found"가 표시됩니다.


그렇다면 제가 원하는 방식으로 해결될 수 있을까요? 그렇다면 어떻게 해야 할까요?

어떤 도움이라도 대단히 감사하겠습니다.

답변1

재작성 규칙을 사용하여 웹 컨텍스트를 제거할 수 있습니다.

ProxyRequests Off
ProxyPreserveHost On
ProxyPass / http://127.0.0.1:32400/
ProxyPassReverse / http://127.0.0.1:32400/

RewriteEngine on
RewriteCond %{REQUEST_URI} !^/web
RewriteCond %{HTTP:X-Plex-Device} ^$
RewriteRule ^/$ /web/$1 [R,L]

두 번째 섹션의 다시 쓰기 조건을 참고하세요.

참고로 여기에서 다음 설정을 얻었습니다.http://matt.coneybeare.me/how-to-map-plex-media-server-to-your-home-domain/

모든 핵심적인 세부사항을 확인해야 합니다. 특히 주목할 점은 호스트를 보호하기 위해 몇 가지 기본 인증을 설정하는 것입니다.

답변2

변경된 솔루션은 다음과 같습니다.

모든 트래픽을 80에서 32400으로 리디렉션하는 DNAT 규칙을 추가합니다.

iptables -t nat -I PREROUTING -p tcp -d X.X.X.X--dport 80 -J DNAT --to-destination X.X.X.X:32400

따라서 다음과 같이 보일 것입니다:

sudo iptables -t nat -I PREROUTING -p tcp -d 192.168.1.1 --dport 80 -j DNAT --to-destination 192.168.1.1:32400

방화벽 규칙을 기억하세요.

    iptables -I INPUT -p tcp --dport 32400 -j ACCEPT
    iptables -I INPUT -p tcp --dport 80 -j ACCEPT

그리고 방화벽 규칙을 저장하세요.

    service iptables save

관련 정보