Как я настраиваю Перезапись URL к экземпляру Heroku?

Для запуска я осуществил бы квоты для корневых каталогов и исключил бы *.mp3, *.mp4, *.ogg, *.wma *.whatever-other-stuff Вы не хотите сохраненный.

4
задан 19 December 2012 в 02:20
2 ответа

Конфигурация Apache для статического сайта проста (я исключил стандартные нерелевантные строки)

<VirtualHost *:80>
    ServerName foo.example.edu
    DocumentRoot /var/www/foo.example.edu   
</VirtualHost>

Перенаправление bar.example.edu может соответствовать рекомендациям apache для перенаправления ssl . Я бы использовал встроенное перенаправление, поскольку в этом простом случае использования mod_rewrite не требуется.

<VirtualHost *:80>
    ServerName bar.example.edu
    Redirect permanent / https://bar.example.edu/
 </VirtualHost>

А для перенаправления на Heroku я бы использовал mod_proxy_http для перенаправления. Зашифрованный виртуальный хост может быть чем-то вроде

ProxyRequests Off
<Proxy *>
    AddDefaultCharset off
    Order deny,allow
    Deny from none
</Proxy>
ProxyVia On
<VirtualHost *:443>
    ServerName bar.example.edu
    SSLEngine On 
    SSLCertificateFile    /etc/ssl/certs/ssl-cert-snakeoil.pem
    SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
    ProxyPass / https://bar-example-edu.herokuapp.com/
    ProxyPassReverse  / https://bar-example-edu.herokuapp.com/
    ProxyPassReverseCookieDomain  / https://bar-example-edu.herokuapp.com/
 </VirtualHost>

На стороне Heroku в исходном коде приложения вы должны создать приложение с:

 heroku create bar-example-edu

И настроить их надстройку Custom Domain с помощью

 heroku domains:add bar.example.edu

Немного адаптировано из раздела документа, который я написал о проксировании в Heroku.

0
ответ дан 3 December 2019 в 03:59

Предполагая, что у вас уже есть вся необходимая директива VirtualHost Apache, вам в основном нужно добавить следующие директивы VirtualHost для порта 80 и порта 443 для bar.example.com ... (выберите одно или другое)

ВАРИАНТ 1. Правило перезаписи Поскольку вы указали, что ищете правило перезаписи, я опубликую его, но, как указано в ссылке ниже, это не лучший способ сделать это.

RewriteEngine on
RewriteRule ^(.*)$   https://bar-example-edu.herokuapp.com/$1   [P]

СПРАВОЧНИК: http: // httpd. apache.org/docs/current/rewrite/flags.html#flag_p

ВАРИАНТ 2: напрямую использовать mod_proxy

ProxyPass / https://bar-example-edu.herokuapp.com/
ProxyPassReverse  / https://bar-example-edu.herokuapp.com/

ССЫЛКА: http://httpd.apache.org/docs/current/mod/mod_proxy. html # proxypass

... кстати, учитывая, что приложение heroku использует https (SSL), вам, вероятно, следует просто поместить конфигурацию прокси в директиву VirtualHost порта 443 (ssl) и указать следующую строку в порт 80 VirtualHost:

Redirect / https://bar.example.edu/

... который должен направлять ваших посетителей на https перед их запуском.

2
ответ дан 3 December 2019 в 03:59

Теги

Похожие вопросы