GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Deaktivieren Sie einen virtuellen Host im Ubuntu-Betriebssystem und CentOS für Apache und Nginx

Was ist, wenn Sie eine Website deaktivieren müssen, aber nicht sicher sind, wie? Es ist einfacher, als Sie vielleicht denken.Beachten Sie beim Lesen dieses Artikels Folgendes, bevor Sie beginnen:

  • Der Serverblock Ihres virtuellen Hosts (vhost) hat möglicherweise einen anderen Titel als domain.com.conf . Beispielsweise könnten Sie httpd.conf verwenden oder ssl.conf . Ersetzen Sie in diesem Fall domain.com.conf mit dem Namen Ihrer Konfigurationsdatei.

  • In diesem Artikel werden in einigen Beispielen Vhosts oder Serverblöcke verwendet, die Port 80 verwenden und nicht Secure Sockets Layer (SSL) sind. Beachten Sie, dass sich diese Schritte nicht unterscheiden, wenn Ihr Vhost oder Serverblock ein SSL-fähiger Vhost oder Serverblock ist, der Port 443 verwendet. Die Schritte sind identisch.

Betriebssystem Ubuntu und Apache

Beginnen wir mit dem Einfachsten. Ubuntu® enthält zwei Befehle speziell für die Verwaltung von vhosts in Apache®. Um einen vhost zu aktivieren, verwenden Sie den folgenden Befehl:

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

Wenn Sie verstehen, was diese Ansammlung von Buchstaben und einer Zahl in a2ensite bedeutet , dann ist es einfacher, sich daran zu erinnern, wie man einen Apache-vhost in Ubuntu aktiviert oder deaktiviert.

Hier ist die Aufschlüsselung des Befehls:

  • a2 :apache2 (was Ubuntu Apache nennt)
  • de :aktivieren
  • Website :Virtueller Website-Host

Um Ihre Website zu deaktivieren, verwenden Sie a2dissite Befehl, wie im folgenden Beispiel gezeigt:

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

Dieser Befehl hat die folgenden Komponenten:

  • a2 :apache2 (was Ubuntu Apache nennt)
  • dis :deaktivieren
  • Website :Virtueller Website-Host

Beachten Sie auch den Unterschied in den Verzeichnispfaden zwischen a2ensite und a2dissite . Wenn Sie einen virtuellen Host für Apache in Ubuntu aktivieren möchten, tun Sie dies über die sites-available Verzeichnis. Wenn Sie einen virtuellen Host in Ubuntu deaktivieren möchten, tun Sie dies über sites-enabled Verzeichnis.

Nachdem Sie den virtuellen Host deaktiviert haben, verwenden Sie den folgenden Befehl, um die Syntax Ihrer Apache-Konfiguration zu überprüfen:

apache2ctl -t

Erwartete Antwort:

Syntax OK

Um Apache neu zu starten oder neu zu laden, führen Sie einen der folgenden Befehle aus:

service apache2 restart

oder

service apache2 reload

restart bringt Apache komplett herunter und reload startet nahtlos einen neuen Apache-Dienst, bevor der ursprüngliche Dienst gestoppt wird. Normalerweise möchten Sie lieber neu laden als neu starten, wenn Sie die Möglichkeit haben.

Ubuntu-Betriebssystem und Nginx

Das Deaktivieren eines Nginx®-Serverblocks (was Nginx vhosts nennt) ist etwas anders. Nginx verwendet Symlinks zum Aktivieren oder Deaktivieren von Serverblöcken. Apache-Vhosts können auch Symlinks verwenden, aber a2ensite und a2dissite funktionieren nicht für Nginx.

Um einen Serverblock in Nginx in Ubuntu zu deaktivieren, müssen Sie den symbolischen Link zwischen sites-enabled entfernen und sites-available , wie im folgenden Beispiel gezeigt:

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

Der Befehl entfernt den symbolischen Link für Ihre Website domain.com . Verwenden Sie den folgenden Befehl, um die Nginx-Syntax zu überprüfen:

nginx -t

Erwartete Antwort:

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

Ihr Dateipfad wird im Platzhalter angezeigt. Nachdem Sie eine positive Antwort erhalten haben, müssen Sie Nginx bu mit einem der folgenden Befehle neu laden oder neu starten:

service nginx reload

oder

service nginx restart

Verwenden Sie wie zuvor, wann immer Sie die Möglichkeit dazu haben, reload statt restart damit Sie keine anderen Websites, die Sie haben, stören.

Hinweis :Wenn Sie php-fpm ausführen müssen Sie diesen Dienst ebenfalls neu starten, indem Sie den folgenden Befehl verwenden:

service php-fpm restart

CentOS und Apache

Das Deaktivieren eines virtuellen Hosts in Apache in CentOS® ist komplizierter, da CentOS keinen einfach zu verwendenden Befehl hat. In CentOS müssen Sie den vhost, den Sie deaktivieren möchten, manuell auskommentieren.

Hier ist ein Beispiel für eine domain.com vhost für Apache in CentOS:

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

Suchen Sie diesen virtuellen Host mit dem folgenden Befehl:

httpd -S | grep domain.com

Die Ausgabe zeigt den Speicherort des virtuellen Hosts, ähnlich der folgenden Ausgabe:

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

Abhängig von Ihrem speziellen Setup sieht die vorherige Ausgabe möglicherweise anders aus. Der Pfad, nach dem Sie suchen, sollte jedoch ähnlich wie domain.com.conf enden .

Nachdem Sie den Speicherort des virtuellen Hosts haben, öffnen Sie die vhost-Konfigurationsdatei mit Ihrem bevorzugten Texteditor. Hier sind zwei Beispiele mit vim und nano :

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

oder

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

Bearbeiten Sie die Konfigurationsdatei und fügen Sie vor jeder Zeile für den vhost-Eintrag ein Nummernzeichen (#) ein. Wenn Sie vim verwenden , geben Sie Einfügen ein Modus zuerst. Ihre vhost-Konfiguration sollte jetzt so aussehen:

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

Speichern Sie die Datei und beenden Sie den Texteditor.

Jetzt müssen Sie die Apache-Syntax mit dem folgenden Befehl überprüfen:

httpd -t

Erwartete Antwort:

Syntax OK

Zum Schluss Apache neu laden oder neu starten. Wenn Sie CentOS 7 oder höher verwenden, können Sie systemctl verwenden für diesen Befehl. Verwenden Sie andernfalls service . Die folgenden Beispiele zeigen beide Befehle:

Verwenden von service :

sudo service httpd reload

oder

sudo service httpd restart

Verwenden von systemctl :

sudo systemctl reload httpd

oder

sudo systemctl restart httpd

Hinweis :Während systemctl funktioniert nur in CentOS 7 oder höher, diese Versionen unterstützen auch service , wenn das einfacher ist. Das System verlinkt auf systemctl automatisch.

Derselbe Prozess funktioniert auch für SSL, Port 443, vhosts.

Wenn Sie die Möglichkeit haben, verwenden Sie wie zuvor reload statt restart .

CentOS und Nginx

Nginx bezeichnet vhosts als Serverblöcke. Verwenden Sie denselben Prozess zum Auskommentieren von Serverblöcken für Nginxin CentOS, den Sie für Apache verwendet haben.

Zuerst müssen wir jedoch den Serverblock finden, den wir deaktivieren möchten. Sie tun dies mit dem folgenden Befehl:

nginx -T | grep domain.com

Suchen Sie erneut nach einem Pfad, der mit .conf endet für Ihre Domäne. Es sieht ähnlich aus wie im folgenden Beispiel:

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

Öffnen Sie nun diese Datei mit Ihrem bevorzugten Texteditor, indem Sie einen der folgenden Befehle verwenden:

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

oder

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

Die Datei sieht ähnlich aus wie im folgenden Beispiel:

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

Sie sollten diesen gesamten Serverblock auskommentieren. Wenn Sie vim verwenden , vergewissern Sie sich, dass Sie sich in Einfügen befinden Modus zuerst. Ihr Serverblock sollte so aussehen:

#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;
#    }
#}

Speichern Sie die Datei und beenden Sie den Texteditor.

Überprüfen Sie nun die Nginx-Syntax mit dem folgenden Befehl:

nginx -t

Erwartete Antwort:

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

Ihr Dateipfad wird im Platzhalter angezeigt. Nachdem Sie eine positive Antwort erhalten haben, müssen Sie Nginx mit einem der folgenden Befehle neu laden oder neu starten:

sudo service nginx reload

oder

sudo service nginx restart

Wenn Sie php-fpm ausführen , starten Sie diesen Dienst mit dem folgenden Befehl neu:

sudo service php-fpm restart

Sie können Nginx auch neu starten oder neu laden, indem Sie systemctl verwenden statt service , wie in den folgenden Beispielen gezeigt:

sudo systemctl reload nginx

oder

sudo systemctl restart nginx

Starten Sie php-fpm neu mit systemctl :

sudo systemctl restart php-fpm

Jetzt wissen Sie, wie Sie Vhosts oder Serverblöcke sowohl in CentOS als auch im Ubuntu-Betriebssystem für Apache und Nginx deaktivieren.


Linux
  1. Ändern Sie den SSH-Port im Betriebssystem Linux Ubuntu

  2. Konfigurieren Sie Apache auf dem Ubuntu-Betriebssystem

  3. Konfigurieren Sie den MySQL-Server auf dem Ubuntu-Betriebssystem

  4. Gewähren Sie sudo Zugriff in Debian und dem Ubuntu-Betriebssystem

  5. Planen Sie Neustarts im Ubuntu-Betriebssystem

So konfigurieren Sie Nginx als Webserver und Reverse Proxy für Apache unter CentOS 8

Installieren Sie Varnish Cache 6 für Apache/Nginx auf CentOS 8

So richten Sie den virtuellen Host Apache unter CentOS 8 ein

So richten Sie virtuelle Apache-Hosts unter Ubuntu 20.04 ein

So richten Sie Nginx als Reverse Proxy für Apache auf Ubuntu 18.04 VPS ein

So installieren Sie NGINX als Reverse Proxy für Apache unter Ubuntu 18.04