Каждый раз, когда я вхожу в систему, я получаю сообщение «Запрещено. У вас нет прав доступа/на этом сервере»

Похоже, вы путаете записи DNS A и виртуальные хосты Apache. Они работают на совершенно разных уровнях и на самом деле не взаимозаменяемы.

Для Apache, когда вы назначаете строфу <VirtualHost>, вы сообщаете apache, что делать, когда он получает запросы на любой из ServerNames в этой строфе. Однако до тех пор, пока эти имена не будут указывать на ваш сервер в DNS, никто из внешнего мира никогда не запросит их у вашего сервера, поэтому вам нужны оба.

(Да, я знаю, что пропускаю здесь подстановочные знаки, я пытаюсь сделать это простым для тех, кто явно плохо знаком с DNS и веб-хостингом)

Приведем пример. :Скажем, у вас есть запись A, указывающая www.foo.comна ваш сервер по адресу 1.2.3.4. И у вас есть следующая VirtualHostстрофа:

<VirtualHost *:80>
    ServerName www.foo.com
    DocumentRoot /var/www/html
    -- etcetera ---
</VirtualHost>

Это сообщает вашему серверу Apache, что любые контакты на порту 80, запрашивающие www.foo.com, должны обрабатываться в соответствии с инструкциями в этом разделе.

Теперь предположим, что вы добавили субдомен:

<VirtualHost *:80>
    ServerName sub.foo.com
    ServerAlias sub2.foo.com

    DocumentRoot /var/www/subdomain/html
    --- etc ---
</VirtualHost>

Теперь вы сообщили своему серверу Apache, как отвечать на запросы sub.foo.comи sub2.foo.com. Однако до тех пор, пока вы не добавите запись A, указывающую sub.foo.comна 1.2.3.4, никто не узнает, на , что запросит у вашего сервера этот домен.

-1
02.08.2021, 10:41
0 ответов

Теги

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