Создание дополнительного виртуального хоста Ubuntu Server 16.04.3

В настоящее время у меня один веб-сайт отлично работает на моем сервере LAMP (Ubuntu Server 16.04.3).
Теперь я хотел бы добавить еще один на сервер. Поэтому я сначала зашел в файл / etc / apache2 / sites-available и скопировал файл 000-default.conf в тот же каталог, изменив имя на mydomainname.com.conf.
Затем я отредактировал этот файл следующим образом:

<VirtualHost mydomain.com:80>
   ServerName mydomain.com
   ServerAlias www.mydomain.com
   ServerAdmin admin.mydomain.com
   DocumentRoot /var/www/mydomain.com/public_html
   ErrorLog ${APACHE_LOG_DIR}/error.log
   CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Затем я набрал команду a2ensite mydomain.com.conf
Затем я перезапустил apache.
Затем я mkdir /var/www/mydomain.com/public.html (также изменил разрешения)
После этого я отредактировал файл / etc / hosts и добавил:

127.0.0.1 mydomain.com.
myinternalIP mydomain.com 
myStaticIp mydomain.com 

Затем я добавил внутренний IP-адрес для нового сайта, а также общедоступный IP-адрес для нового сайта.
Затем я перешел к файлу / etc / network / interfaces:

The loopback network interface
auto lo
iface lo inet loopback

- The primary network interface(this is for the virtual host already on the server)

auto eno1
iface eno1 inet static
     address 192.168.11.199
     netmask 255.255.255.0
     network 192.168.11.0
     broadcast 192.168.11.255
     gateway 192.168.11.59
     dns-nameservers 8.8.8.8
     dns-search currentsite.com

-Second IP interface(This is for the new virtual host)<br>
iface eno1:1 inet static
   address 192.168.11.200
   netmask 255.255.255.0

Вывод, когда я выполняю Ifconfig:

eno1: Link encap: Ethernet HWaddr xx:xx:xx:xx:xx:xx 
      inet addr:192.168.11.199 Bcast:192.168.11.255 Mask:255.255.255.0 
      inet6 addr: xxxx::xxxx:xxxx:xxxx:xxxx/64 Scope:link 
      UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 
      TX packets:6085 errors:0 dropped:0 overruns:0 carrier:364 
      collisions:381 txqueuelen:1000 
      RX bytes:563896 (563.8 KB) TX bytes:5541282 (5.5 MB) 
      Interrupt:20 Memory:f7c00000-f7c20000

eno1:1 Link encap: Ethernet HWaddr xx:xx:xx:xx:xx:xx 
       inet addr:192.168.11.200 Bcast:192.168.11.255 Mask:255.255.255.0 
       UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 
       Interrupt:20 Memory:f7c00000-f7c20000

lo    Link encap:Local Loopback 
      inet addr:127.0.0.1 Mask:255.0.0.0 
      inet6 addr: ::1/128 Scope:Host 
      UP LOOPBACK RUNNING MTU:65536 Metric:1 
      RX packets:9856 errors:0 dropped:0 overruns:0 frame:0 
      TX packets:9856 errors:0 dropped:0 overruns:0 carrier:0 
      collisions:0 txqueuelen:1 
      RX bytes:731051 (731.0 KB) TX bytes:731051 (731.0 KB) 

Вывод для ifconfig После перезагрузки сервера я не вижу eno1: 1, который я вставил в файл / etc / network / interfaces

eno1: Link encap: Ethernet HWaddr xx:xx:xx:xx:xx:xx 
      inet addr:192.168.11.199 Bcast:192.168.11.255 Mask:255.255.255.0 
      inet6 addr: xxxx::xxxx:xxxx:xxxx:xxxx/64 Scope:link 
      UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 
      RX packets:77 errors:0 dropped:0 overruns:0
      TX packets:76 errors:0 dropped:0 overruns:0 carrier:0  
      collisions:0 txqueuelen:1000 
      RX bytes:8760 (8.7 KB) TX bytes:10725 (10.7 KB) 
      Interrupt:20 Memory:f7c00000-f7c20000

 lo   Link encap:Local Loopback 
      inet addr:127.0.0.1 Mask:255.0.0.0 
      inet6 addr: ::1/128 Scope:Host 
      UP LOOPBACK RUNNING MTU:65536 Metric:1 
      RX packets:190 errors:0 dropped:0 overruns:0 frame:0 
      TX packets:190 errors:0 dropped:0 overruns:0 carrier:0 
      collisions:0 txqueuelen:1 
      RX bytes:14760 (14.7 KB) TX bytes:14760 (14.7 KB) 


Затем я делаю ifup -v eno1: 1, а затем eno1: 1 возвращается, когда я делаю ifconfig. Я также могу теперь искать локально для 192.168.11.200, однако он перенаправляет на другой сайт на сервере.


Выход для запуска сервисной сети

failed to start network.service: Unit network.service not found.


Выход для статуса сервисной сети

network.service
 Loaded:not-found (Reason: No such file or directory)
 Active: inactive (dead)

Outpu для IP-маршрута

default via 192.168.11.59 dev eno1 onlink 
192.168.11.0/24 dev eno1 proto kernel scope link src 192.168.11.199

Впоследствии я добавил новую запись в брандмауэр (используя Mikrotik Firewall) для порта 80, чтобы разрешить трафик в HTTP для домен. Я также перезапустил брандмауэр, чтобы быть в безопасности.

Затем я пошел к своему провайдеру домена и создал запись A, указывающую мой статический ip на новый домен, а также создал запись WWW, указывающую мой статический ip на новый домен. С этой стороны все хорошо.
Я погуглил, но, похоже, не могу понять это правильно. Я просмотрел много сообщений и до сих пор не вижу свой новый домен в браузере.
Я сделал это таким образом, когда выкладывал первый веб-сайт на сервер, и все работает правильно.
Если где-то ответили, пожалуйста, ведите меня туда.

2
задан 3 May 2018 в 17:26

1 ответ

1. Вам не нужен второй IP-адрес для обслуживания больше чем одного виртуального хоста на сервере. Что-то больше, поскольку я понял правильно Вас, имеет только один статический IP. Таким образом, если у Вас нет никаких других особых требований, я был бы совет Вы для возвращения изменений, связанных с сетевыми интерфейсами.

2. Это не обязательно, чтобы сделать что-либо с /etc/hosts. Этот файл служит локальным DNS и если Вы хотите получить доступ к своему доменному имени (FQDN) локально (от самой машины, когда у Вас нет доступа в Интернет или установки DNS), одна новая строка, как следующее достаточно:

127.0.0.1 example.com www.example.com second-example.com www.second-example.com
  • Отметьте в вопросе, записан 127.0.0.1 example.com. - вероятно, точка в конец является скопировать/вставить опечаткой.

3. Как виртуальные хосты работают?

На стороне клиента, когда Вы вводите любой FQDN в браузере (например, http://example.com) это проверяет [1], существует ли запись для этого FQDN в /etc/hosts. Если там не представлен такая запись, она спрашивает Ваш DNS (обеспеченный в /etc/network/interfaces или в /etc/resolv.conf, или DHCP) для IP-адреса требуемого FQDN. И DNS возвращается A запись для требуемого доменного имени. Затем браузер отправляет Запрос HTTP в обеспеченный IP-адрес. Заголовок запроса содержит IP, полностью определенное доменное имя, и т.д.

  • [1] не точно браузер, но я не хочу расширять ответ.

На стороне сервера, когда запрос прибывает в IP-адрес сервера на определенном порте, этот запрос будет обработан сервисом, которые слушают этот порт. Значение по умолчанию HTTP/HTTPS порт 80/443 и Apache слушает его - это определяется в /etc/apache2/ports.conf.

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

4. Не используйте тег VirtualHost таким образом: <VirtualHost mydomain.com:80>. Это - опечатка. Вместо этого используйте его, как это по умолчанию: <VirtualHost *:80>. На самом деле звездочка * средства все доступные сетевые интерфейсы (IP-адреса, обработанные сервером).

5. Согласно выше конфигурации Вашего Apache должен быть похожим на это:

<VirtualHost *:80>
   ServerName example.com
   ServerAlias www.example.com
   ServerAdmin admin@example.com

   DocumentRoot "/var/www/example.com/public_html"

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

<VirtualHost *:80>
   ServerName second-example.com
   ServerAlias www.second-example.com
   ServerAdmin admin@second-example.com

   DocumentRoot "/var/www/second-example.com/public_html"

   ErrorLog ${APACHE_LOG_DIR}/second-example.com.error.log
   CustomLog ${APACHE_LOG_DIR}/second-example.com.access.log combined
</VirtualHost>
  • Обычно определения различных виртуальных хостов помещаются в отдельный .conf файлы, чтобы быть a2ensite/a2dissite легко.

  • Это не обязательно для разделения, файлы журнала (в нем показан в примере). Это - просто другая идея.

  • В вопросе записан ServerAdmin admin.example.com, необходимо предоставить электронной почте эту директиву.

6. Если все хорошо работает, можно пойти далее и установить свободный HTTPS (SSL/TLS) сертификат справкой, Давайте зашифруем (Certbot):

3
ответ дан 2 December 2019 в 02:43

Другие вопросы по тегам:

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