Criando host virtual adicional Ubuntu Server 16.04.3

2

Atualmente, tenho um site funcionando perfeitamente no meu servidor LAMP (Ubuntu Server 16.04.3).
Agora gostaria de adicionar outro ao servidor. Então eu fui primeiro ao arquivo / etc / apache2 / sites-available e copiei o arquivo 000-default.conf para o mesmo diretório enquanto mudava o nome para mydomainname.com.conf.
Então eu editei este arquivo para o seguinte:

<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>

Em seguida eu digitei o comando a2ensite mydomain.com.conf
Do que eu reiniciei o apache.
Então eu mkdir /var/www/mydomain.com/public.html (também mudou as permissões)
Depois disso eu editei o arquivo / etc / hosts e adicionei:

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

Em seguida, adicionei o IP interno do novo site e também o IP público do novo site aqui.
Então eu fui para o arquivo / 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

Saída quando eu faço um 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) 

Saída para ifconfig Depois que eu reiniciei o servidor - não consigo ver o eno1: 1 que eu inseri no arquivo / 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) 


Então eu faço ifup -v eno1: 1 e então o eno1: 1 volta quando eu faço um ifconfig. Eu também posso agora procurar localmente para 192.168.11.200 no entanto, ele redireciona para o outro site no servidor.


Saída para início da rede de serviço

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


Saída para o status da rede de serviço

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

Outpu para ip route -

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

Depois eu adicionei uma nova entrada no firewall (usando o Mikrotik Firewall) para a porta 80 para permitir o tráfego para o HTTP para o domínio. Eu também reiniciei o firewall para estar seguro.

Então eu fui para o meu provedor de domínio e criei um registro A apontando meu IP estático para o novo domínio e também criei o registro WWW apontando meu IP estático para o novo domínio. Tudo está bem deste lado.
Eu pesquisei por aí, mas parece que não consigo acertar. Passei por muitas postagens e ainda não consigo ver meu novo domínio no navegador.
Eu fiz desta maneira ao colocar o primeiro site no servidor e tudo está funcionando corretamente.
Se isso for respondido em algum lugar, por favor me guie até lá.

    
por Deez Nutz 03.05.2018 / 14:46

1 resposta

3

1. Você não precisa do segundo endereço IP para servir mais de um host virtual no servidor. Algo mais como entendi corretamente, você tem apenas um IP estático. Portanto, se você não tiver outros requisitos especiais, aconselho-o a reverter as alterações relacionadas às interfaces de rede.

2. Não é obrigatório fazer nada com /etc/hosts . Este arquivo serve como DNS local e se você quiser acessar seu nome de domínio (FQDN) localmente (da própria máquina, quando você não tem acesso à Internet ou configuração de DNS) uma nova linha como a próxima é suficiente:

127.0.0.1 example.com www.example.com second-example.com www.second-example.com
  • Por favor, note que dentro da pergunta está escrito 127.0.0.1 example.com. - provavelmente o ponto até o final é copiar / colar.

3. Como os hosts virtuais funcionam?

No lado do cliente, quando você digita qualquer FQDN no navegador (por exemplo http://example.com ) ele verifica [1] se há um registro para este FQDN em /etc/hosts . Se não for apresentado tal registro, ele pergunta ao seu DNS (fornecido em /etc/network/interfaces ou em /etc/resolv.conf , ou por DHCP) o endereço IP do FQDN solicitado. E o DNS retorna o A record para o solicitado nome do domínio. Em seguida, o navegador envia uma solicitação HTTP para o endereço IP fornecido. O cabeçalho da solicitação contém o IP, o nome de domínio totalmente qualificado, etc .

  • [1] não é exatamente o navegador, mas eu não quero estender a resposta.

No lado do servidor, quando uma solicitação chega ao endereço IP do servidor em determinada porta, essa solicitação será tratada pelo serviço que escuta essa porta. O padrão HTTP / HTTPS port é 80 / 443 e o Apache ouça-os - isso é definido em /etc/apache2/ports.conf .

Quando o Apace manipula a solicitação, ele lê o cabeçalho da solicitação e redireciona a solicitação para o host virtual que corresponde ao nome do domínio no cabeçalho da solicitação.

4. Não use a tag VirtualHost desta maneira: <VirtualHost mydomain.com:80> . Este é um erro de digitação . Em vez disso, use-o como está por padrão: <VirtualHost *:80> . Na verdade, o asterisco * significa todas as interfaces de rede disponíveis (endereços IP manipulados pelo servidor).

5. De acordo com o acima, a configuração do seu Apache deve ficar assim:

<VirtualHost *:80>
   ServerName example.com
   ServerAlias www.example.com
   ServerAdmin [email protected]

   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 [email protected]

   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>
  • Normalmente, as definições dos diferentes hosts virtuais são colocadas em arquivos .conf separados para serem a2ensite / a2dissite facilmente.

  • Não é obrigatório separar os arquivos de log (isso é mostrado no exemplo). Esta é apenas outra ideia.

  • Na pergunta está escrito ServerAdmin admin.example.com , você deve fornecer e-mail com esta diretiva.

por pa4080 03.05.2018 / 17:28