Настройка ServerName для подавления предупреждающего сообщения Apache с несколькими доменами

Вы можете попробовать использовать некоторые динамические dns сервисы, например noip.com. Тогда вы сможете получить доступ к ресурсам по dns-имени, которое будет меняться в зависимости от вашего ip.

Вообще, ваш провайдер может NAT с пулом адресов. И каждый curl https://ipinfo.io/ip запрос будет возвращать случайный адрес из этого пула, в зависимости от настроек NAT.

Для отслеживания посещений сайта лучше использовать другие методы. Например, cookies.

Вот небольшой python-код для установки в cron и сбора адресов:

#!/usr/bin/env python

from datetime import datetime
import os
import requests

LOG = '/tmp/ip.log'
URL = 'https://ipinfo.io/ip'

r = requests.get(URL)
if r.status_code == 200:
    ip = r.content.decode('ascii').rstrip('\n')
    last_ip = None
    if os.path.exists(LOG):
        f = open(LOG, 'r')
        last_ip = f.readlines()[-1].split()[-1]
        f.close()
    if ip != last_ip:
        f = open(LOG, 'a')
        f.write("{} {}\n".format(datetime.now(), ip))
0
10.08.2016, 04:21
3 ответа

Вы можете просто установить его на localhost . Отредактируйте /etc/apache2/conf.d/httpd.conf :

ServerName localhost

Директиву ServerName можно использовать в двух контекстах: конфигурация сервера или ] виртуальный хост .

  • В контексте конфигурации сервера директива ServerName используется при создании URL-адресов перенаправления.
  • В контексте виртуального хоста директива ServerName используется для уникальной идентификации виртуального хоста.

Таким образом, вы должны установить ServerName в разделе VirtualHost для каждой конфигурации домена, чтобы идентифицировать два домена. Глобальное значение приведет к исчезновению предупреждающего сообщения и не повлияет на идентификацию между двумя доменами.

1
29.04.2021, 00:29

В CentOS 7x файл находится по адресу /etc/httpd/conf/httpd.conf.

-1
29.04.2021, 00:29

Неважно, какое имя сервера вы выберете глобально, любое из них будет подавлять это предупреждение.

Просто добавьте строку к вашему полному имени хоста в конфигурацию apache:

LINE='ServerName www.example.com'
FILE='/etc/apache2/apache2.conf'
grep -qF -- "$LINE" "$FILE" || echo "$LINE" >> "$FILE"
service apache2 restart

Если ваш основной сервер не имеет домена, используйте вместо него localhost.

Если вам действительно нужны эти несколько доменов, задайте их в каждом разделе VirtualHost для каждой конфигурации домена.

0
29.04.2021, 00:29

Теги

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