VirtualHost: mudanças entre as edições

De Wiki Projeto Root
Ir para navegação Ir para pesquisar
Sem resumo de edição
 
(7 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 11: Linha 11:
https://youtu.be/9LMSTJBbOq8
https://youtu.be/9LMSTJBbOq8


<embedvideo service="youtube">https://youtu.be/dC54uP9ZADs</embedvideo>
https://youtu.be/dC54uP9ZADs


= Configurações =
=Configurações=
 
=== Ubuntu Server/Debian ===
=== Ubuntu Server/Debian ===


Linha 83: Linha 84:


* XX representa a porta que deseja (exemplo: 81,82,8080,etc..)
* XX representa a porta que deseja (exemplo: 81,82,8080,etc..)
=== CentOS ===
* Criando estrutura de Vhosts
  mkdir -p /var/www/dominio/html /var/www/dominio/log
* Criando página de exemplo
  nano /var/www/dominio/html/index.html
  <html>
    <head>
      <title>Página do Joao!</title>
    </head>
    <body>
    <nowiki><h1>Successo! O site joao.local está funcionando com vhost!</h1>
</nowiki>    </body>
  </html>
* Criando local para armazenar as configs de vhosts
  mkdir /etc/httpd/sites-available /etc/httpd/sites-enabled
* Ajustando conf do http para carregar vhost
 
  nano /etc/httpd/conf/httpd.conf
  IncludeOptional sites-enabled/*.conf
* Criando conf de vhost para dominio
  nano /etc/httpd/sites-available/joao.conf
  <VirtualHost *:80>
      ServerName joao.local
      ServerAlias joao.local
      DocumentRoot /var/www/joao/html
      ErrorLog /var/www/joao/log/error.log
      CustomLog /var/www/joao/log/requests.log combined
  </VirtualHost>
* Criando link simbólicos para ativar o vhost
  ln -s /etc/httpd/sites-available/joao.conf /etc/httpd/sites-enabled/joao.conf
* Para remover vhost
  rm -rf /etc/httpd/sites-enabled/joao.conf
=== SELinux ===
* Definir uma política universal para o Apache
  setsebool -P httpd_unified 1
* Verificar Contexto do SELinux na pasta
  ls -dZ /var/www/joao/log/
Saída: unconfined_u:object_r:httpd_log_t:s0 /var/www/joao/log/
* Ajustar contexto para armazenar os logs
  semanage fcontext -a -t httpd_log_t "/var/www/joao/log(/.*)?"
  restorecon -R -v /var/www/joao/log
* Verificar Contexto do SELinux na pasta
  ls -dZ /var/www/joao/log/
Saída: unconfined_u:object_r:httpd_log_t:s0 /var/www/joao/log/
* Reiniciando o serviço httpd
  systemctl restart httpd
* Verificar se o apache (httpd) criou arquivos de log
  ls -lZ /var/www/joao/log/
  -rw-r--r--. 1 root root system_u:object_r:httpd_log_t:s0  584 out  1 16:55 error.log
  -rw-r--r--. 1 root root system_u:object_r:httpd_log_t:s0 1742 out  1 16:56 requests.log
=== Alterar Portas ===
* Liberar no Fw
  firewall-cmd --zone=public --permanent --add-port 81/tcp
  firewall-cmd --reload
* Editar Configuração do Apache (HTTPD)
  nano /etc/httpd/conf/httpd.conf
  Listen IP:PORTA
* SELinux
Listar Portas liberadas
  semanage port -l
Liberar porta 81 (exemplo)
  semanage port -a -t http_port_t -p tcp 81
=== Redirect ===
* Em alguns casos precisamos fazer o redirecionamento, então para estes casos podemos utilizar o exemplo abaixo.
  <VirtualHost *:80>
  ServerName admin.seusite.com
  RedirectPermanent / http://seusite.com/wp-admin
  </VirtualHost>

Edição atual tal como às 21h09min de 12 de março de 2021

Sobre

Olá! Visitante, reunimos aqui, informações sobre a configuração de VirtualHost para webserver com o apache, esta configuração permite que apenas um único servidor web, armazene e disponibilize múltiplos sites para serem acessados, está é uma técnica bastante utilizada em Redes de Computadores e na administração de redes corporativas, uma vez que podemos disponibilizar através do mesmo servidor vários sistemas web,sites e intranet.

Modelo de VirtualHost

Requisitos

Instalação do LAMP em: (https://wiki.projetoroot.com.br/index.php?title=LAMP)

Vídeos

https://youtu.be/9LMSTJBbOq8

https://youtu.be/dC54uP9ZADs

Configurações

Ubuntu Server/Debian

criar Vhosts (joao) com o conteúdo do default

 cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/joao.conf

Modificar a home do joao

 nano /etc/apache2/sites-available/joao.conf
 ServerAlias joao.local

Habilitar o joao - a2ensite

 a2ensite joao.conf

Criar HTML de exemplo

<html>
 <a href=http://IP_Do_Server/html /a> Clique aqui para entrar em html
 <p>
 <a href=http://joao.local /a> Clique aqui para entrar em Joao
 <p>
 <a href=http://maria.local /a> Clique aqui para entrar em Maria
 <p>
 <a href=https://google.com.br /a> Clique aqui para pesquisar
 </html>

Desabilitar joao a2dissite

 a2dissite joao

Autenticação

 nano /etc/apache2/sites-available/default
 <Directory "/var/www/joao/html">
    Options FollowSymlinks Indexes
    AllowOverride AuthConfig 
    Order allow,deny
    Allow from all
 </Directory>


Criar .htaccess

 nano /var/www/joao/html/.htaccess
 AuthName "Insira seu Usuario e Senha:"
 AuthType Basic
 Require valid-user
 AuthUserFile /etc/apache2/joao/acesso

Criar Arquivo de autenticação

 touch /etc/apache2/joao/acesso

Alterar a permissão do arquivo

 chown apache:apache(www-data:www-data) /etc/apache2/joao/acesso
 

Criar usuário para autenticação

 htpasswd -c /etc/apache2/joao/acesso usuario


Alteração das portas padrões

  • Editar o arquivo de conf (VirtualHost) que deseja alterar a porta e deixar como o exemplo:
 Listen XX
 
 <VirtualHost *:XX>
  • XX representa a porta que deseja (exemplo: 81,82,8080,etc..)


CentOS

  • Criando estrutura de Vhosts
 mkdir -p /var/www/dominio/html /var/www/dominio/log
  • Criando página de exemplo
 nano /var/www/dominio/html/index.html
  <html>
   <head>
     <title>Página do Joao!</title>
   </head>
   <body>
   <h1>Successo! O site joao.local está funcionando com vhost!</h1>
    </body>
 </html>
  • Criando local para armazenar as configs de vhosts
 mkdir /etc/httpd/sites-available /etc/httpd/sites-enabled
  • Ajustando conf do http para carregar vhost
 nano /etc/httpd/conf/httpd.conf
 IncludeOptional sites-enabled/*.conf
  • Criando conf de vhost para dominio
 nano /etc/httpd/sites-available/joao.conf
 <VirtualHost *:80>
     ServerName joao.local
     ServerAlias joao.local
     DocumentRoot /var/www/joao/html
     ErrorLog /var/www/joao/log/error.log
     CustomLog /var/www/joao/log/requests.log combined
 </VirtualHost>


  • Criando link simbólicos para ativar o vhost
 ln -s /etc/httpd/sites-available/joao.conf /etc/httpd/sites-enabled/joao.conf
  • Para remover vhost
 rm -rf /etc/httpd/sites-enabled/joao.conf

SELinux

  • Definir uma política universal para o Apache
 setsebool -P httpd_unified 1
  • Verificar Contexto do SELinux na pasta
 ls -dZ /var/www/joao/log/

Saída: unconfined_u:object_r:httpd_log_t:s0 /var/www/joao/log/

  • Ajustar contexto para armazenar os logs
 semanage fcontext -a -t httpd_log_t "/var/www/joao/log(/.*)?"
 restorecon -R -v /var/www/joao/log
  • Verificar Contexto do SELinux na pasta
 ls -dZ /var/www/joao/log/

Saída: unconfined_u:object_r:httpd_log_t:s0 /var/www/joao/log/

  • Reiniciando o serviço httpd
 systemctl restart httpd
  • Verificar se o apache (httpd) criou arquivos de log
 ls -lZ /var/www/joao/log/
 -rw-r--r--. 1 root root system_u:object_r:httpd_log_t:s0  584 out  1 16:55 error.log
 -rw-r--r--. 1 root root system_u:object_r:httpd_log_t:s0 1742 out  1 16:56 requests.log

Alterar Portas

  • Liberar no Fw
 firewall-cmd --zone=public --permanent --add-port 81/tcp
 firewall-cmd --reload
  • Editar Configuração do Apache (HTTPD)
 nano /etc/httpd/conf/httpd.conf
 Listen IP:PORTA


  • SELinux

Listar Portas liberadas

 semanage port -l

Liberar porta 81 (exemplo)

 semanage port -a -t http_port_t -p tcp 81

Redirect

  • Em alguns casos precisamos fazer o redirecionamento, então para estes casos podemos utilizar o exemplo abaixo.
 <VirtualHost *:80>
 ServerName admin.seusite.com
 RedirectPermanent / http://seusite.com/wp-admin
 </VirtualHost>