2015-06-23 6 views
0

У нас есть существующее имя доменаКак указать домен HostGator в EC2 AWS

(Исх. Webdev.com)

расположен в Hostgator и у нас есть сервер в AWS. Мы хотели использовать доменное имя, которое мы купили у Hostgator

(webdev.com)

на нашем сервере AWS.

Что мы сделали, в хосгаторе мы создали DNS (project1.webdev.com), и адрес указывает на наш AWS-сервер (ex 150.12.1.0). В нашем AWS, мы развернуть project1 под порт 4000.

Теперь, если мы получаем доступ к

project1.webdev.com

мы в конечном итоге на страницу Апач по умолчанию. Как мы могли направлять его в наш порт 4000, так что каждый раз, когда мы получаем доступ к project1.webdev.com он указал на наш проект

150.12.1.0:4000

.

вот наш виртуальный хост конфигурации:

<VirtualHost *:4000> 
ServerName project1.webdev.com 
ServerAdmin [email protected] 
DocumentRoot "/var/www/html/project1/web" 

<Directory "/var/www/html/project1/web"> 
     Options Indexes FollowSymLinks MultiViews 
     AllowOverride All 
     Order allow,deny 
     Allow from all 
    </Directory> 

ErrorLog ${APACHE_LOG_DIR}/4000-error_log 
CustomLog ${APACHE_LOG_DIR}/4000-access_log common 

Мы искали несколько информации, но мы не нашли ни одного из возможных решений. Ждем вашей помощи.

Благодаря

ответ

2

Вы путаете DNS, которая имеет отношение к IP-адресации, с портами, которые не имеют ничего общего с DNS. DNS работает только с преобразованием между удобочитаемыми именами и IP-адресами. DNS не предоставляет каких-либо условий для выполнения такой задачи, как «когда пользователь хочет, чтобы HTTP-запрос использовал порт 4000 вместо порта 80».

Если сервис прослушивает порт 4000, но вы используете протокол HTTP (который всегда использует порт 80 по умолчанию), то вам нужно будет иметь дело с этим в одном из следующих способов:

  • Требовать все URL, чтобы явно указать порт 4000, например: http://project1.webdev.com:4000
  • Изменить определение VirtualHost для прослушивания порта 80 вместо 4000
  • Добавить новое определение VirtualHost в Apache для порта 80, который proxies all requests к порту 4000
+0

Привет @Bruce, спасибо за ответ. Если мы сделаем такой подход, это заставит наш сервер ограничивать только прослушивание на порте 4000, мы могли бы развернуть другой проект (project2.webdev.com) и в порт 3000. Возможно ли в Linux создать логику в apache, т. е. фильтровать адрес/домен dns и перенаправлять на конкретный порт ?. – chkm8

+0

Чтобы сделать что-то подобное, вы хотели бы настроить несколько директив VirtualHost, которые все прослушивают на порту 80 (для этого предназначены виртуальные хосты). Виртуальный хост A на порту 80 проксирует все подключения к порту 3000, Virtual Host B на порту 80 будет проксировать все подключения к порту 4000 и т. Д. –

+0

Эй, @ Брюс, Большое вам спасибо. вы спасли наш день. :). Мы создали два экземпляра из 80 портов, и каждый из них перенаправлен в конкретный каталог нашего проекта. – chkm8

0

Разделяя решение, которое мы создали. Спасибо @Bruce за помощь нам. Как он предложил в комментариях выше, мы создадим виртуальный хост, поместивший до 80 (который является по умолчанию апачем). Затем мы отправим порт 80 в наш конкретный проект.

<VirtualHost *:80> 
    # The ServerName directive sets the request scheme, hostname and port that 
    # the server uses to identify itself. This is used when creating 
    # redirection URLs. In the context of virtual hosts, the ServerName 
    # specifies what hostname must appear in the request's Host: header to 
    # match this virtual host. For the default virtual host (this file) this 
    # value is not decisive as it is used as a last resort host regardless. 
    # However, you must set it for any further virtual host explicitly. 
    #ServerName www.example.com 
    ServerName project1.webdev.com 
    ServerAdmin [email protected] 
    DocumentRoot "/var/www/html/project1/web" 

    # Available loglevels: trace8, ..., trace1, debug, info, notice, warn, 
    # error, crit, alert, emerg. 
    # It is also possible to configure the loglevel for particular 
    # modules, e.g. 
    #LogLevel info ssl:warn 

    ErrorLog ${APACHE_LOG_DIR}/project1-error.log 
    CustomLog ${APACHE_LOG_DIR}/project1-access.log combined 

    # For most configuration files from conf-available/, which are 
    # enabled or disabled at a global level, it is possible to 
    # include a line for only one particular virtual host. For example the 
    # following line enables the CGI configuration for this host only 
    # after it has been globally disabled with "a2disconf". 
    #Include conf-available/serve-cgi-bin.conf 
</VirtualHost> 

Если у вас несколько DNS, просто создайте другой экземпляр порта 80 и пройдите к проекту.

Убедитесь, что доменное имя в HostGator совпадает с именем ServerName, созданным на виртуальном хосте.

Смежные вопросы