{"id":4584,"date":"2018-12-07T05:31:55","date_gmt":"2018-12-07T07:31:55","guid":{"rendered":"https:\/\/blog.clusterweb.com.br\/?p=4584"},"modified":"2018-12-07T05:31:55","modified_gmt":"2018-12-07T07:31:55","slug":"configurando-o-apache-para-deixar-dois-servidores-web-no-mesmo-link","status":"publish","type":"post","link":"https:\/\/blog.clusterweb.com.br\/?p=4584","title":{"rendered":"CONFIGURANDO O APACHE PARA DEIXAR DOIS SERVIDORES WEB NO MESMO LINK"},"content":{"rendered":"<h1>CONFIGURANDO O APACHE2 DO PRIMEIRO SERVIDOR<\/h1>\n<p>Vamos come\u00e7ar instalando o apache2 e algumas libs:<\/p>\n<p><strong><i class=\"fa fa-usd\"><\/i>\u00a0sudo apt-get install apache2 php7.2 libapache2-mod-php7.2<br \/>\n$ sudo apt-get install libapache2-mod-auth-mysql php7.2-mysql<br \/>\n$ sudo apt-get install apache2-prefork-dev<\/strong><\/p>\n<p>Habilitando os m\u00f3dulos do apache para o redirecionamento e para o proxy pass:<\/p>\n<p><strong><i class=\"fa fa-usd\"><\/i>\u00a0sudo a2enmod env proxy_ajp proxy_balancer proxy proxy_connect proxy_http rewrite ssl headers<\/strong><\/p>\n<p>Para desabilitar os mods basta usar:<\/p>\n<p><strong><i class=\"fa fa-usd\"><\/i>\u00a0sudo a2dismod [nome-dos-m\u00f3dulos]<\/strong><\/p>\n<p>Agora iremos criar o arquivo na pasta do apache2:<\/p>\n<p><strong><i class=\"fa fa-usd\"><\/i>\u00a0sudo nano \/etc\/apache2\/sites-available\/meuSite<\/strong><\/p>\n<p><!--more--><\/p>\n<p>NOTA: no caso se for o Ubuntu 16.04 ou 18.04 precisa colocar o &#8220;.conf&#8221; no final, ex.: meuSite.conf.<\/p>\n<p>Para habilitar um site utilize o comando:<\/p>\n<p><strong><i class=\"fa fa-usd\"><\/i>\u00a0sudo a2ensite meuSite\u00a0<\/strong><\/p>\n<p>e para desabilitar:<\/p>\n<p><strong><i class=\"fa fa-usd\"><\/i>\u00a0sudo a2dissite meuSite\u00a0<\/strong><\/p>\n<p>e para reiniciar o apache:<\/p>\n<p><strong><i class=\"fa fa-usd\"><\/i>\u00a0sudo service apache2 reload\u00a0<\/strong><\/p>\n<p>e em caso de travamento ou para reinici\u00e1-lo utilizar:<\/p>\n<p><strong><i class=\"fa fa-usd\"><\/i>\u00a0sudo service apache2 restart<\/strong><\/p>\n<p>Dentro do arquivo meuSite vamos colocar os seguintes itens:<\/p>\n<div>\n<div class=\"codigo\">&lt;VirtualHost *:80&gt;<br \/>\nServerName www.meuDominio.com<br \/>\nRewriteEngine On<br \/>\nRedirectMatch .* https:\/\/meuDominio.com\/$1<br \/>\nErrorLog ${APACHE_LOG_DIR}\/error.log<br \/>\nCustomLog ${APACHE_LOG_DIR}\/access.log combined<br \/>\n&lt;\/VirtualHost&gt;<\/p>\n<p>&lt;VirtualHost *:80&gt;<br \/>\nServerName meuDominio.com<br \/>\nRewriteEngine On<br \/>\nRewriteCond %{HTTPS} off<br \/>\nRewriteRule (.*) https:\/\/%{SERVER_NAME}\/$1 [R,L]<br \/>\n&lt;\/VirtualHost&gt;<\/p><\/div>\n<p>S\u00e3o duas formas diferentes de redirecionamento, e cada uma das duas est\u00e1 redirecionando do http para o https.<\/p>\n<p>Agora vamos fazer o proxy pass, essas linhas far\u00e3o parte do mesmo arquivo, indo abaixo do &lt;\/VirtualHost&gt; do segundo redirecionamento:<\/p>\n<div class=\"codigo\">&lt;VirtualHost *:443&gt;<br \/>\nServerName meuDominio.com<br \/>\nServerAlias meuDominio.com<br \/>\nErrorLog ${APACHE_LOG_DIR}\/error.log<br \/>\nCustomLog ${APACHE_LOG_DIR}\/access.log combined<br \/>\nSSLEngine On<br \/>\nSSLProxyEngine\u00a0\u00a0\u00a0\u00a0On<br \/>\nSSLProxyVerify none<br \/>\nSSLProxyCheckPeerCN off<br \/>\nSSLProxyCheckPeerExpire off<br \/>\n#SSLProxyCheckPeerName off<br \/>\nProxyPreserveHost On<br \/>\nProxyPass \/ http:\/\/192.168.2.15:8000\/<br \/>\nProxyPassReverse \/ http:\/\/192.168.2.15:8000\/<br \/>\nProxyVia On<br \/>\nProxyPreserveHost On<br \/>\nRequestHeader set X-Forwarded-Proto &#8216;https&#8217; env=HTTPS<br \/>\nSSLCertificateFile\u00a0\u00a0\u00a0\u00a0\/etc\/ssl\/certs\/ssl-cert-snakeoil.pem<br \/>\nSSLCertificateKeyFile \/etc\/ssl\/private\/ssl-cert-snakeoil.key<br \/>\n&lt;\/VirtualHost&gt;<\/div>\n<p>O ip do ProxyPass \u00e9 o ip do segundo servidor.<\/p>\n<p>Essas duas linhas de SSLCertificate est\u00e3o a\u00ed porque fiz um certificado com o openssl e ent\u00e3o deixei elas a\u00ed pois o cert-bot ir\u00e1 sobrescrev\u00ea-las depois.<\/p>\n<p>Nesse caso estamos utilizando a porta 8000 interna para mandar para o segundo servidor.<\/p>\n<p>Se houver uma mensagem como:<\/p><\/div>\n<div><\/div>\n<div>apache2: Could not determine the server&#8217;s fully qualified domain name, using 127.0.0.1 for ServerName.\u00c9 s\u00f3 colocar ServerName localhost no final do apache2.conf:<\/p>\n<p><strong><i class=\"fa fa-usd\"><\/i>\u00a0sudo nano \/etc\/apache2\/apache2.conf<\/strong><\/p>\n<p>Apertar pagedown at\u00e9 a \u00faltima linha e adicionar:<\/p>\n<div class=\"codigo\">ServerName localhost<\/div>\n<p>E reiniciar o Apache:<\/p>\n<p><strong><i class=\"fa fa-usd\"><\/i>\u00a0sudo service apache2 restart<\/strong><\/p>\n<\/div>\n<p>&nbsp;<\/p>\n<h1>CONFIGURANDO O APACHE2 DO SEGUNDO SERVIDOR<\/h1>\n<p>&nbsp;<\/p>\n<div>Iremos configurar o segundo servidor agora, come\u00e7aremos configurando as portas.<\/p>\n<p>Liberar portas para acesso interno:<\/p>\n<p><strong><i class=\"fa fa-usd\"><\/i>\u00a0sudo nano \/etc\/apache2\/ports.conf<\/strong><\/p>\n<p>Abaixo do &#8220;Listen 80&#8221; adicionar &#8220;Listen 8000&#8221; (ou qualquer outra porta que desejar, ex.: Listen 81, mas como deixamos a 8000 no arquivo do primeiro servidor teremos que deixar a 8000 aqui tamb\u00e9m, no caso poder\u00edamos at\u00e9 tirar a porta 80).<\/p>\n<p>Feito isso, vamos editar o arquivo do site:<\/p>\n<p><strong><i class=\"fa fa-usd\"><\/i>\u00a0sudo nano \/etc\/apache2\/sites-available\/nomeDoSite<\/strong><\/p>\n<p>Mudar o &lt;VirtualHost *:80&gt; para &lt;VirtualHost *:Porta que foi liberada&gt; ex: &lt;VirtualHost *:8000&gt;.<\/p>\n<p>Mudar o DocumentRoot para a pasta do seu sistema DocumentRoot \/CaminhoDoSistema\/ e a &lt;Directory \/CaminhoDoSistema\/&gt; salvar e reiniciar o apache2.<\/p>\n<p><strong><i class=\"fa fa-usd\"><\/i>\u00a0sudo service apache2 restart<\/strong><\/p>\n<p>Caso o site n\u00e3o esteja ativado, usar o:<\/p>\n<p><strong><i class=\"fa fa-usd\"><\/i>\u00a0sudo a2ensite NomeDoSite<\/strong><\/p>\n<p>Como utilizamos SSL no arquivo anterior, ent\u00e3o o site ter\u00e1 que utilizar o ssl tamb\u00e9m. Ent\u00e3o habilitaremos o mod ssl.<\/p>\n<p><strong><i class=\"fa fa-usd\"><\/i>\u00a0sudo a2enmod ssl<br \/>\n$ sudo service apache2 reload<\/strong><\/p>\n<p>Se utilizar o ssl (https) ter\u00e1 que colocar um certificado nos dois servidores.<\/p>\n<p>Caso n\u00e3o tenha um certificado e queira utilizar um gratuito, na pr\u00f3xima p\u00e1gina iremos instalar um certificado gratuito e automatizar a renova\u00e7\u00e3o dele.<\/p>\n<p><span id=\"ezoic-pub-ad-placeholder-113\" class=\"ezoic-adpicker-ad\"><\/span><\/p>\n<div id=\"google_ads_iframe_\/1254144\/vivaolinux_com_br-box-4_0__container__\"><\/div>\n<\/div>\n<h1><span id=\"ezoic-pub-ad-placeholder-128\" class=\"ezoic-adpicker-ad\"><\/span>INSTALANDO UM CERTIFICADO SSL E AUTOMATIZANDO A RENOVA\u00c7\u00c3O<\/h1>\n<p>&nbsp;<\/p>\n<div>Vamos utilizar um certificado gratuito do cert-bot.<\/p>\n<p>Entraremos no site do cert-bot e escolheremos as op\u00e7\u00f5es do sistema:<\/p>\n<ul>\n<li><a href=\"https:\/\/certbot.eff.org\/\" target=\"_blank\" rel=\"nofollow noopener\">https:\/\/certbot.eff.org\/<\/a><\/li>\n<\/ul>\n<p>No caso colocaremos &#8220;I&#8217;m using apache on ubuntu&#8221;, pois o servidor que estou utilizando \u00e9 Ubuntu, mas h\u00e1 outras op\u00e7\u00f5es.<\/p>\n<p>Baixaremos o software deles e daremos edi\u00e7\u00e3o de execu\u00e7\u00e3o:<\/p>\n<p><strong><i class=\"fa fa-usd\"><\/i>\u00a0wget https:\/\/dl.eff.org\/certbot-auto<br \/>\n$ chmod a+x certbot-auto<\/strong><\/p>\n<p>Agora escolheremos para instal\u00e1-lo no Apache:<\/p>\n<p><strong><i class=\"fa fa-usd\"><\/i>\u00a0sudo .\/path\/to\/certbot-auto &#8211;apache<\/strong><\/p>\n<p>Ir\u00e1 pedir para escolher os sites, se quiser todos basta marcar 0 ou poder\u00e1 escolher o site que quiser. Para o cert-bot funcionar o site precisar\u00e1 estar no ar j\u00e1, ou seja, funcionando com o dom\u00ednio certo.<\/p>\n<p>Marcar n\u00e3o para o redirecionamento, pois j\u00e1 fizemos isso no arquivo do primeiro servidor.<\/p>\n<p>Verificar se foi adicionado algumas linhas apontando para o certificado no final do arquivo de configura\u00e7\u00e3o do site\u00a0<em>\/etc\/apache2\/sites-available\/meuSite<\/em>, se sim ent\u00e3o est\u00e1 tudo OK.<\/p>\n<p>Para finalizar vamos fazer a renova\u00e7\u00e3o, o pr\u00f3prio site do cert-bot da um &#8220;script&#8221; para renova\u00e7\u00e3o:<\/p>\n<p><strong><i class=\"fa fa-usd\"><\/i>\u00a0sudo crontab -e<\/strong><\/p>\n<p>Colocar no final do crontab:<\/p>\n<div class=\"codigo\">0 0,12 * * * python -c &#8216;import random; import time; time.sleep(random.random() * 3600)&#8217; &amp;&amp; .\/path\/to\/certbot-auto renew<\/div>\n<p>Nesse caso o certificado ser\u00e1 renovado todos os dias \u00e0 meia noite e meio dia.<\/p>\n<p>Eu utilizo um script muito simples:<\/p>\n<p><strong><i class=\"fa fa-usd\"><\/i>\u00a0cd ~<br \/>\n$ sudo nano renew.sh<\/strong><\/p>\n<div class=\"codigo\"><span class=\"comentario\">#!\/bin\/bash<\/span><br \/>\nsudo .\/certbot-auto renew &#8211;renew-hook &#8220;service apache2 reload&#8221; -q &gt;&gt; \/home\/usuario\/certbot-renew.log<br \/>\nexit 0<\/div>\n<p>O -q silencia a sa\u00edda caso de tenho ocorrido tudo certo.<\/p>\n<p>Caso queira algo como &#8220;renovado com sucesso&#8221;, apenas coloque um echo &#8220;Renovado com sucesso&#8221; &gt;&gt; \/home\/usuario\/certbot-renew.log; Salvar e dar permiss\u00e3o de execu\u00e7\u00e3o:<\/p>\n<p><strong><i class=\"fa fa-usd\"><\/i>\u00a0sudo chmod +x renew.sh\u00a0<\/strong><br \/>\nou<br \/>\n<strong><i class=\"fa fa-usd\"><\/i>\u00a0sudo chmod 755 renew.sh<\/strong><\/p>\n<p><strong><i class=\"fa fa-usd\"><\/i>\u00a0sudo nano crontab -e<\/strong><\/p>\n<div class=\"codigo\">0 0 * * * \/home\/Usuario\/renew.sh<\/div>\n<p>Nesse caso o certificado ser\u00e1 renovado todo dia \u00e0 meia noite e zero minutos.<\/p>\n<h1>CONCLUS\u00c3O<\/h1>\n<p>Esse \u00e9 um m\u00e9todo que eu utilizei quando precisei deixar dois servidores web no mesmo link de internet, precisei fazer isso pois havia apenas um link dispon\u00edvel.<\/p>\n<p>N\u00e3o posso garantir que esse \u00e9 o m\u00e9todo 100% correto e eficaz, mas quando eu precisei ele veio a calhar muito bem e n\u00e3o deu nenhum problema.<\/p>\n<h1>REFER\u00caNCIAS<\/h1>\n<ul>\n<li><a href=\"https:\/\/certbot.eff.org\/lets-encrypt\/ubuntuother-apache\" target=\"_blank\" rel=\"nofollow noopener\">https:\/\/certbot.eff.org\/lets-encrypt\/ubuntuother-apache<\/a><\/li>\n<li><a href=\"https:\/\/letsencrypt.org\/\" target=\"_blank\" rel=\"nofollow noopener\">https:\/\/letsencrypt.org\/<\/a><\/li>\n<li><a href=\"https:\/\/httpd.apache.org\/\" target=\"_blank\" rel=\"nofollow noopener\">https:\/\/httpd.apache.org\/<\/a><\/li>\n<\/ul>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>CONFIGURANDO O APACHE2 DO PRIMEIRO SERVIDOR Vamos come\u00e7ar instalando o apache2 e algumas libs: \u00a0sudo apt-get install apache2 php7.2 libapache2-mod-php7.2 $ sudo apt-get install libapache2-mod-auth-mysql php7.2-mysql $ sudo apt-get install apache2-prefork-dev Habilitando os m\u00f3dulos do apache para o redirecionamento e para o proxy pass: \u00a0sudo a2enmod env proxy_ajp proxy_balancer proxy proxy_connect proxy_http rewrite ssl headers [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[455,477,1082,1,730,830,725,42,51,495,514,68,271,548,691],"tags":[131,718,1246,1247,953,1248,361,698,355,377,416],"class_list":["post-4584","post","type-post","status-publish","format-standard","hentry","category-apache2","category-backup-2","category-centos-7-rhel-7","category-viazap","category-clusterweb","category-debian","category-hospedagem","category-leitura-recomendada","category-linux-linuxrs","category-profissional-de-ti","category-programacao","category-redes-2","category-seguranca-2","category-ubuntu-2","category-virtualizacao-2","tag-apache","tag-configurando","tag-deixar","tag-dois","tag-link","tag-mesmo","tag-no","tag-o","tag-para","tag-servidores","tag-web"],"_links":{"self":[{"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/posts\/4584","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=4584"}],"version-history":[{"count":1,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/posts\/4584\/revisions"}],"predecessor-version":[{"id":4585,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/posts\/4584\/revisions\/4585"}],"wp:attachment":[{"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=4584"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=4584"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=4584"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}