GNU/Linux >> Znalost Linux >  >> Linux

Zakažte virtuálního hostitele v operačním systému Ubuntu a CentOS pro Apache a Nginx

Co když potřebujete deaktivovat web, ale nevíte jak? Je to jednodušší, než si možná myslíte. Než začnete, mějte při čtení tohoto článku na paměti následující:

  • Blok vašeho virtuálního hostitele (vhost) serveru může mít jiný název než domena.com.conf . Můžete například použít httpd.conf nebo ssl.conf . V takovém případě nahraďte domena.com.conf s názvem vašeho konfiguračního souboru.

  • Tento článek používá vhosts nebo bloky serveru v některých příkladech, které používají port 80 a nejsou to Secure Sockets Layer (SSL). Všimněte si, že tyto kroky se neliší, pokud váš vhost nebo serverový blok je vhost nebo serverový blok s povoleným SSL, který používá port 443. Kroky jsou stejné.

Operační systém Ubuntu a Apache

Začněme tím nejjednodušším. Ubuntu® přichází se dvěma příkazy speciálně pro správu vhostů v Apache®. Chcete-li povolit vhost, použijte následující příkaz:

sudo a2ensite /etc/apache2/sites-available/domain.com.conf

Když pochopíte, co tato sbírka písmen a čísel znamená v a2ensite , pak je snazší si zapamatovat, jak povolit nebo zakázat Apache vhost v Ubuntu.

Zde je rozpis příkazu:

  • a2 :apache2 (co Ubuntu nazývá Apache)
  • cs :povolit
  • web :virtuální hostitel webu

Chcete-li deaktivovat svůj web, použijte a2dissite příkaz, jak ukazuje následující příklad:

sudo a2dissite /etc/apache2/sites-enabled/domain.com.conf

Tento příkaz má následující součásti:

  • a2 :apache2 (co Ubuntu nazývá Apache)
  • dis :zakázat
  • web :virtuální hostitel webu

Všimněte si také rozdílu v adresářových cestách mezi a2ensite a a2dissite . Pokud chcete povolit virtuálního hostitele pro Apache v Ubuntu, můžete tak učinit z webů-dostupných adresář. Když chcete deaktivovat virtuálního hostitele v Ubuntu, můžete tak učinit z povolených webů adresář.

Po zakázání virtuálního hostitele použijte následující příkaz k ověření syntaxe konfigurace Apache:

apache2ctl -t

Očekávaná odpověď:

Syntax OK

Chcete-li restartovat nebo znovu načíst Apache, spusťte jeden z následujících příkazů:

service apache2 restart

nebo

service apache2 reload

restart úplně stáhne Apache a reload hladce spustí novou službu Apache před zastavením původní služby. Obvykle chcete znovu načíst, než restartovat, když máte možnost.

Operační systém Ubuntu a Nginx

Zakázání bloku serveru Nginx® (co Nginx nazývá vhosts) je trochu jiné. Nginx používá symbolické odkazy k povolení nebo zakázání bloků serveru. Apache vhosts mohou také používat symbolické odkazy, ale a2ensite a a2dissite nefungují pro Nginx.

Chcete-li zakázat blokování serveru v Nginx v Ubuntu, musíte odstranit symbolický odkaz mezi povolenými weby a stránky-dostupné , jak ukazuje následující příklad:

sudo rm /etc/nginx/sites-enabled/domain.com.conf

Příkaz odstraní symbolický odkaz pro váš web, domena.com . Pomocí následujícího příkazu ověřte syntaxi Nginx:

nginx -t

Očekávaná odpověď:

nginx: the configuration file <file-path> syntax is ok
nginx: configuration file <file-path> test is successful

Cesta k souboru se zobrazí v zástupném symbolu . Poté, co obdržíte kladnou odpověď, musíte znovu načíst nebo restartovat Nginx bu pomocí jednoho z následujících příkazů:

service nginx reload

nebo

service nginx restart

Stejně jako dříve, kdykoli k tomu budete mít možnost, použijte reload spíše než restart abyste nenarušili žádné další webové stránky, které máte.

Poznámka :Pokud spustíte php-fpm , musíte restartovat i tuto službu pomocí následujícího příkazu:

service php-fpm restart

CentOS a Apache

Deaktivace virtuálního hostitele v Apache v CentOS® je složitější, protože CentOS nemá jednoduchý příkaz k použití. V CentOS musíte ručně zakomentovat vhost, kterého chcete zakázat.

Zde je příklad domény.com vhost pro Apache v CentOS:

<VirtualHost *:80>
ServerName domain.com
ServerAlias www.domain.com
DocumentRoot /var/www/vhosts/domain.com/public
</VirtualHost>

Najděte tohoto virtuálního hostitele pomocí následujícího příkazu:

httpd -S | grep domain.com

Výstup zobrazuje umístění virtuálního hostitele, které je podobné následujícímu výstupu:

/etc/httpd/vhost.d/domain.com.conf

V závislosti na vašem konkrétním nastavení může předchozí výstup vypadat jinak. Cesta, kterou hledáte, by však měla končit podobně jako domena.com.conf .

Až budete mít umístění virtuálního hostitele, otevřete konfigurační soubor vhost pomocí oblíbeného textového editoru. Zde jsou dva příklady použití vim a nano :

sudo vim /etc/httpd/vhost.d/domain.com.conf

nebo

sudo nano /etc/httpd/vhost.d/domain.com.conf

Upravte konfigurační soubor a přidejte před každý řádek pro položku vhost znak křížku (#). Pokud používáte vim , zadejte Vložit nejprve režim. Vaše konfigurace vhost by nyní měla vypadat takto:

#<VirtualHost *:80>
#   ServerName domain.com
#   ServerAlias www.domain.com
#   DocumentRoot /var/www/vhosts/domain.com/public
#</VirtualHost>

Uložte soubor a ukončete textový editor.

Nyní musíte zkontrolovat syntaxi Apache pomocí následujícího příkazu:

httpd -t

Očekávaná odpověď:

Syntax OK

Nakonec buď znovu načtěte nebo restartujte Apache. Pokud používáte CentOS 7 nebo novější, můžete použít systemctl pro tento příkaz. V opačném případě použijte service . Následující příklady ukazují oba příkazy:

Pomocí service :

sudo service httpd reload

nebo

sudo service httpd restart

Pomocí systemctl :

sudo systemctl reload httpd

nebo

sudo systemctl restart httpd

Poznámka :Zatímco systemctl funguje pouze v CentOS 7 nebo novějším, tyto verze také podporují service ,pokud je to jednodušší. Systém odkazuje na systemctl automaticky.

Stejný proces funguje také pro SSL, port 443, vhosts.

Stejně jako dříve, pokud máte možnost, použijte reload spíše než restart .

CentOS a Nginx

Nginx označuje vhosts jako serverové bloky. Pro komentování bloků serveru pro Nginxin CentOS použijte stejný proces, jaký jste použili pro Apache.

Nejprve však musíme najít blok serveru, který chceme zakázat. Učiníte tak pomocí následujícího příkazu:

nginx -T | grep domain.com

Opět hledejte cestu končící na .conf pro vaši doménu. Vypadá to podobně jako v následujícím příkladu:

/etc/nginx/conf.d/domain.com.conf

Nyní tento soubor otevřete ve svém oblíbeném textovém editoru pomocí jednoho z následujících příkazů:

sudo vim /etc/nginx/conf.d/domain.com.conf

nebo

sudo nano /etc/nginx/conf.d/domain.com.conf

Soubor vypadá podobně jako v následujícím příkladu:

server {
listen 80;
server_name domain.com www.domain.com;
access_log /var/log/nginx/domain.com.access.log;
error_log /var/log/nginx/domain.com.error.log;
root /var/www/domain.com/httpdocs;
location / {
index index.html index.htm index.php;
try_files $uri =404;
}
location ~ \.php$ {
    include /etc/nginx/fastcgi_params;
    fastcgi_pass  127.0.0.1:9000; #this means php-fpm will run on a port
    # fastcgi_pass unix:/run/php-fpm/domain.com.sock; or you could have php-fpm running on a socket
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME /var/www/html/domain.com$fastcgi_script_name;
    }
}

Měli byste zakomentovat celý tento blok serveru. Pokud používáte vim , ujistěte se, že jste v Vložit nejprve režim. Váš blok serveru by měl vypadat takto:

#server {
#   listen 80;
#   server_name domain.com www.domain.com;
#   access_log /var/log/nginx/domain.com.access.log;
#   error_log /var/log/nginx/domain.com.error.log;
#   root /var/www/domain.com/httpdocs;
#location / {
#   index index.html index.htm index.php;
#   try_files $uri =404;
#   }
#location ~ \.php$ {
#   include /etc/nginx/fastcgi_params;
#    fastcgi_pass  127.0.0.1:9000; #this means php-fpm will run on a port
#    # fastcgi_pass unix:/run/php-fpm/domain.com.sock; or you could have php-fpm running on a socket
#   fastcgi_index index.php;
#    fastcgi_param SCRIPT_FILENAME /var/www/html/domain.com$fastcgi_script_name;
#    }
#}

Uložte soubor a ukončete textový editor.

Nyní zkontrolujte syntaxi Nginx pomocí následujícího příkazu:

nginx -t

Očekávaná odpověď:

nginx: the configuration file <file-path> syntax is ok
nginx: configuration file <file-path> test is successful

Cesta k souboru se zobrazí v zástupném symbolu . Poté, co obdržíte kladnou odpověď, musíte znovu načíst nebo restartovat Nginx pomocí jednoho z následujících příkazů:

sudo service nginx reload

nebo

sudo service nginx restart

Pokud spustíte php-fpm , restartujte tuto službu pomocí následujícího příkazu:

sudo service php-fpm restart

Nginx můžete také restartovat nebo znovu načíst pomocí systemctl místo service , jak je znázorněno v následujících příkladech:

sudo systemctl reload nginx

nebo

sudo systemctl restart nginx

Restartujte php-fpm pomocí systemctl :

sudo systemctl restart php-fpm

Nyní víte, jak deaktivovat vhosts nebo serverové bloky v CentOS i operačním systému Ubuntu pro Apache a Nginx.


Linux
  1. Změňte port SSH v operačním systému Linux Ubuntu

  2. Povolte vzdálené přihlášení root pomocí SSH na CentOS a operačním systému Ubuntu

  3. Nainstalujte IMAP pro PHP 7.1 na operační systém Ubuntu

  1. Nainstalujte MySQL Server na operační systém Ubuntu

  2. Nastavte virtuální hostitele Apache v operačním systému Ubuntu

  3. Jak nainstalovat nejnovější nginx na Debian a Ubuntu

  1. Nakonfigurujte Apache v operačním systému Ubuntu

  2. Nakonfigurujte server MySQL na operačním systému Ubuntu

  3. Udělte přístup sudo v Debianu a operačním systému Ubuntu