2016-02-07 3 views
1

Это то, что я имею в настоящее время для apache и работает, но как я могу добавить, что http перенаправлен на https для plex?Как настроить apache для plex за поддоменом и https 443?

<VirtualHost *:80> 
    ServerName plex.mydomain.com 

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

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

это, как это работает для других субдоменов, но это не работает для сплетения:

<VirtualHost *:80> 
    ServerName somesub.mydomain.com 

    RewriteEngine on 
    RewriteCond %{HTTP_HOST} ^somesub.mydomain.com 
    RewriteRule (.*) https://%{SERVER_NAME} [R,L] 
</VirtualHost> 

<VirtualHost *:443> 
    ServerName somesub.mydomain.com 

    ProxyRequests Off 
    ProxyPreserveHost On 
    ProxyPass/http://localhost:5555/ 
    ProxyPassReverse/http://localhost:5555/ 
</VirtualHost> 

ответ

1

Это то, что я использую в настоящее время и работает (Ubuntu 17.04, Apache2.4)

<VirtualHost *:80> 
    ServerName my.sub.domain.com 
    Redirect permanent/https://my.sub.domain.com/ 
</VirtualHost> 

<IfModule mod_ssl.c> 
    <VirtualHost *:443> 
    ServerName my.sub.domain.com 
    ServerAlias "" 
    Options -Includes -ExecCGI 

    RewriteEngine On 
    RewriteCond %{THE_REQUEST} !HTTP/1.1$ 
    RewriteRule .* - [F] 

    LimitRequestBody 512000 

    SSLEngine    On 
    SSLCertificateFile /etc/letsencrypt/live/my.sub.domain.com/fullchain.pem 
    SSLCertificateKeyFile /etc/letsencrypt/live/my.sub.domain.com/privkey.pem 
    SSLProtocol   +TLSv1.2 

    Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains; preload" 
    Header always set X-Frame-Options DENY 
    FileETag None 
    TraceEnable off 
    #Header edit Set-Cookie ^(.*)$ ;HttpOnly;Secure 
    Header set X-XSS-Protection "1; mode=block" 
    Timeout 60 

    <Location /:/websockets/notifications> 
     ProxyPass wss://localhost:32400/:/websockets/notifications 
     ProxyPassReverse wss://localhost:32400/:/websockets/notifications 
    </Location> 

    <Proxy *> 
    Order deny,allow 
    Allow from all 
    </Proxy> 

    ProxyRequests Off 
    ProxyPreserveHost On 
    SSLProxyEngine On 
    RequestHeader set Front-End-Https "On" 

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

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

    </VirtualHost> 
</IfModule> 

Вам нужно изменить localhost (вероятно, нет) и my.sub.domain.com своим собственным ценностям и генерировать сертификаты SSL, прежде чем перезапустить службу Apache (я использовал LetsEncrypt)

Эта конфигурация vhost - это то, что я адаптировал из многочисленных сообщений (некоторые из них, некоторые из форума plex). Он может быть не полным или оптимизированным, но он работает

Для получения более подробной информации/альтернатив, посетите https://forums.plex.tv/