Назад | Перейти на главную страницу

CNAME: межсайтовые перенаправления на субдомены

Всем добрый день,

Я видел много документации о 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. он обслуживает содержимое этого локального поддомена.

И вуаля!