Всем добрый день,
Я видел много документации о cname, но это не могло не определить, что не так с моим подходом.
Я застрял на проблеме с CNAME. Буду рад вашим советам и советам. ниже приведен пример того, к чему я стремлюсь.
Предположим, у меня есть домен example.com, IP 000.000.000.000. У меня есть клиент, скажем client1.com, чей IP-адрес 111.111.111.111. (IP полностью теоретический, как и все остальные).
Это только один из многих клиентов, которым я предоставляю некоторые услуги (онлайн-каталоги или что-то еще). вот почему на моем сервере я создал поддомен через cpanel: client1.example.com, куда я поместил все сценарии, относящиеся к этому client1.
Чтобы он получил доступ к этим службам, я предлагаю ему создать перенаправление на этот поддомен. Поэтому он создал запись CNAME (через CPANEL): services.client1.com 26000 client1.example.com
Проблема: кажется, что эта запись cname указывает на правильный IP-адрес (000.000.000.000). Если кто-либо использует свой браузер для доступа к services.client1.com, он попадает на сервер example.com (относительно IP). Однако, оказавшись на сервере example.com, он не знает, где именно приземлиться: поэтому он попадает на страницу домена по умолчанию. подводить итоги:
пользователь вводит url-адрес services.client1.com -> приходит на 111.111.111.111 -> сервер указывает, что это cname для client1.example.com -> приходит на 000.000.000.000 -> сервер не знает, что для выполнения этого запроса -> обслуживает страницу домена по умолчанию (некоторый cgi-скрипт cpanel).
Мой вопрос: возможно ли, без каких-либо дополнительных действий со стороны клиента (то есть явного перенаправления), я настрою сервер example.com так, чтобы он указывал на любой запрос CNAMEed, такой как [l] http://services.client1.com в сторону выделенного поддомена client1.example.com? Я думал о каком-то виртуальном хосте, созданном на сервере example.com, но не смог его проработать.
Для этой цели я использую виртуальный сервер Centos, на котором установлен CPanel (а также сервер apache, php и некоторые другие вещи).
Я надеюсь быть ясным, и любая подсказка может просветить меня!
Удачи,
Wisebes
Когда клиент пытается загрузить services.client1.com
со своим браузером он свяжется с IP-адресом вашего сервера, однако браузер все равно будет отправлять заголовок хоста, содержащий services.client1.com
. Скорее всего, это не соответствует ни одному настроенному виртуальному хосту на вашем сервере, поэтому apache предоставляет сайт по умолчанию.
Вам необходимо изменить конфигурацию apache vhost, чтобы не только совпадать с именем хоста. client1.example.com
но также services.client1.com
Я понял, как это сделать.
В самом деле, как указал leepfrog, вам нужно изменить файл конфигурации vhosts, чтобы это произошло. шаги следующие (CENTos):
0- создать поддомен client1.example.com
1- перейдите к файлу httpd.conf (/etc/httpd/conf/httpd.conf) и раскомментируйте часть «include» для client1.example.com. действительно, вы не можете добавить псевдоним в этот файл, так как он может регулярно обновляться. Однако вы можете включать внешние файлы. строка include позволяет вам включить любой файл с расширением .conf, который будет расположен по указанному пути.
2- проверьте, что путь существует, или создайте его, если необходимо, и создайте там file.conf. Подойдет любое имя, если оно заканчивается на ".conf". Вы можете записать в этот файл следующее:
DocumentRoot /home/user/public_html/client1
ServerAdmin webmaster@example.com
ServerName client1.example.com
ServerALias client1.example.com service.client1.com
NB: вместо "user" в корне документа это будет ваш пользователь cpanel
3- перезапустить apache: / sbin / service httpd restart
с этого момента любой запрос к service.client1.com будет рассматриваться как псевдоним IP 000.000.000.000. Оказавшись там, сервер проверяет виртуальные хосты, сравнивает и видит, что service.client1.com является псевдонимом для поддомена client1.example.com. он обслуживает содержимое этого локального поддомена.
И вуаля!