좋아, 제목을 어떻게 표현해야 할지 잘 모르겠지만 내 상황을 설명하려고 노력하겠습니다.
나는 무엇보다도 "플렉스 미디어 서버"를 실행하는 데비안을 실행하는 홈 서버를 가지고 있습니다.
내가 소유한 도메인에 대한 하위 도메인을 사용하여 원격으로 내 서버에 액세스합니다. 이름을 "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