Рейтинг:0

Что является хорошей практикой при настройке сервера с www или без www (apache)?

флаг us

Я попытался настроить веб-сайт без www в Ubuntu 18.04 с Apache 2.4, и мне удалось заставить все работать, мой https://example.me работает отлично. Но, www.example.me поддомен также активен (потому что я добавил ServerAlias). https://www.example.me также открывается и не показывает сертификата, что меня смущает - разве он не должен перенаправлять на https://example.com ? Что здесь является хорошей практикой - должен ли я иметь поддомены с www и без www и отдельный файл conf для каждого? Должен ли я использовать только один из них с постоянным перенаправлением? Почему здесь не работает перенаправление, нужна ли мне какая-то другая директива?

С уважением.

<VirtualHost *:443>
        SSLEngine on
        SSLCertificateFile /etc/apache2/ssl/mysite.me.crt
        SSLCertificateKeyFile /etc/apache2/ssl/mysite.me.key
        SSLCertificateChainFile /etc/apache2/ssl/mysite.me.crt
        DocumentRoot /var/www/html
        ServerName https://example.me
        ServerAlias www.example.me
        UseCanonicalName Off

        ProxyPreserveHost On
        ProxyRequests On
        ProxyVia On

        #ErrorLog /var/log/httpd/tomcat.error.log
        #CustomLog /var/log/httpd/tomcat.log combined

       <Proxy *>
               Order deny,allow
               Allow from all
       </Proxy>
        Include /etc/apache2/sites-available/redirect.conf

        ProxyPass / ajp://localhost:8009/
        ProxyPassReverse / ajp://localhost:8009/
</VirtualHost>

<VirtualHost *:80>
        ServerAdmin [email protected]
        ServerName example.me
        DocumentRoot /var/www/html
        UseCanonicalName Off
        Redirect permanent "/" "https://example.me/"

        ProxyPreserveHost On
        ProxyRequests On
        ProxyVia On

        #ErrorLog /var/log/httpd/tomcat.error.log
        #CustomLog /var/log/httpd/tomcat.log combined

       <Proxy *>
               Order deny,allow
               Allow from all
       </Proxy>
        Include /etc/apache2/sites-available/redirect.conf

        ProxyPass / ajp://localhost:8009/
        ProxyPassReverse / ajp://localhost:8009/

        #ProxyPass / http://localhost:8080/
        #ProxyPassReverse / http://localhost:8080/

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>
флаг in
Если вы хотите знать, почему перенаправление не работает, вы должны включить в вопрос файл конфигурации перенаправления.
c.mtd17 avatar
флаг us
Это перенаправление содержит около двух тысяч правил с перенаправлением со старого сайта на новый.
Рейтинг:0
флаг cn
Bob

Во-первых, обратите внимание, что постоянные редиректы кэшируются вашим веб-браузером, поэтому, если вы внесли изменения и тестируете измененную конфигурацию, примите меры предосторожности и/или скорректируйте методологию тестирования. Подробнее об этом здесь.


ИМХО ваша конфигурация тоже пронизана ошибками и неверными предположениями.


НЕ ВКЛЮЧАТЬ/РАЗРЕШАТЬ прокси-запросы!!!

    ProxyPreserveHost включен
    Прокси-запросы включены
    ProxyVia Вкл.
   <Прокси *>
           Отклонить заказ, разрешить
           Разрешить от всех
   </прокси>

Приведенные выше директивы предназначены для создания прямой прокси. Еще хуже, это открытым прокси, которым может и будет злоупотреблять любой, кто захочет скрыть свой IP-адрес с помощью вашего веб-сервера.

Ты не требуется Прокси-запросы включены для задний ход прокси и ПроксиПасс директивы к работе.

Пожалуйста, удалите их.


В вашем HTTP VirtualHost

Когда у вас есть только один VirtualHost, он становится VirtualHost по умолчанию (для этого порта и адреса). Более подробное описание здесь. Поэтому, если у вас не определены дополнительные блоки VirtualHost, эта единственная запись:

<Виртуальный хост *:80>
        Администратор сервера [email protected]
        Имя сервера example.me

будет использоваться для всех простых http-запросов, т.е. http://example.me/some-page.htm?foo=bar , http://www.example.me , http://ваш.ip-адрес/ и т. д. Этот VirtualHost будет использоваться, даже если нет явного Псевдоним сервера www.example.com обозначающий www.example.com как альтернативное имя хоста для этого конкретного VirtualHost.

 Постоянная переадресация "/" "https://example.me/"

Указывает, что все запросы приведут к перенаправлению ответа на https://example.me/ другими словами:

 http://example.me/some-page.htm?foo=bar ==> https://example.me/some-page.htm?foo=bar
 http://www.example.me ==> https://example.me/
 http://ваш.ip-адрес/bob/is.awe-some ==> https://example.me/bob/is.awe-some

Когда вы перенаправляете все, также нет смысла иметь какие-либо другие директивы, обычно предназначенные для отображения контента в этом виртуальном хосте, поэтому вы можете опустить DocumentRoot, ПроксиПасс и т. д. и оставьте очень простой http VirtualHost:

<VirtualHost *:80>
        ServerAdmin [email protected]
        ServerName example.me
        UseCanonicalName Off

        Redirect permanent "/" "https://example.me/"

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

В вашем HTTPS VirtualHost то же самое верно: если нет других виртуальных хостов, он будет использоваться по умолчанию для любого запроса.

Единственное, это, конечно, сертификат TLS сервера; это действительно только для включенных в него имен хостов, другие имена хостов приведут к ошибке/предупреждению о недопустимом сертификате.

Вам, вероятно, потребуется проверить содержимое файла, который вы включаете здесь:

Включить /etc/apache2/sites-available/redirect.conf
c.mtd17 avatar
флаг us
Спасибо Боб за такое подробное объяснение. На самом деле они используют прокси для tomcat и некоторых других приложений...Я «унаследовал» этот сервер от кого-то другого, и я пытаюсь понять, что является хорошей практикой, как его настроить и почему на www.example.me присутствует предупреждение о недопустимом сертификате. Может быть, вы видите его в этой конфигурации? Должен ли я добавить еще один виртуальный хост для www и связать сертификат там? Redirect.conf содержит около двух тысяч правил перенаправления данных со старого сайта на новый...
флаг cn
Bob
Вам не нужно включать прямой прокси-сервер при использовании обратного прокси-сервера или ajp.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.