Создание веб-сервера с доступом только к доменному имени с помощью apache2

У меня есть доменное имя example.com и VPS со статическим IP-адресом 123.123.123.123.
Я хочу, чтобы браузеры указывали доменное имя для доступа к содержимому сайта.

На практике я хочу, чтобы люди видели мой сайт, только если они наберут exemple.com, а не 123.123.123.123 в строке url своего браузера.

Поэтому в каталоге /var/www/ я создал два подкаталога.
/var/www/default (для содержимого, которое будут видеть те, кто не указал dn) и
/var/www/exemple для фактического содержимого сайта.
Я отредактировал свой файл /etc/apache2/sites-enabled/000-default.conf следующим образом.

<VirtualHost *:80>
    DocumentRoot /var/www/default
</VirtualHost>

<VirtualHost *:80>
    ServerName example.com
    ServerAlias example.com

    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/exemple

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

По моему мнению, это должно работать. На практике сервер выдает мне содержимое /var/www/default, если я ввожу 123.123.123.123 и exemple.com в строку url браузера. Почему?

0
22.03.2017, 17:41
2 ответа

Apache будет направлять трафик на первый соответствующий VirtualHost , который он видит в конфигурации. Поскольку первый определенный не определяет ServerName или ServerAlias ​​, он настроен на перехват любого трафика на любое связанное имя хоста или любой связанный IP-адрес на порту 80.

{{1 }}
0
28.01.2020, 04:47

Вы забыли назвать VirtualHost, выделенный для example.com. Вот мои модификации (с некоторыми добавленными предложениями):

<VirtualHost *:80>
    DocumentRoot /var/www/default
</VirtualHost>

<VirtualHost 123.123.123.123:80>                              # <= Should fix your issue
    ServerName example.com
    ServerAlias www.example.com                               # <= Suggested modification

    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/exemple

    ErrorLog ${APACHE_LOG_DIR}/error-example.log              # <= Suggested modification
    CustomLog ${APACHE_LOG_DIR}/access-example.log combined   # <= Suggested modification
</VirtualHost>

Конечно, не забудьте перезагрузить Apache.

0
28.01.2020, 04:47

Теги

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