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

Virtueller Nginx-Host – Nginx-Serverblock

Wir zeigen Ihnen, wie Sie einen virtuellen Nginx-Host erstellen, der auch als Nginx-Serverblock bekannt ist. In einem unserer vorherigen Tutorials haben wir erklärt, wie man einen LNMP-Server (Nginx, MySQL und PHP) auf einem Debian 6 (Squeeze) VPS installiert und konfiguriert, jetzt werden wir uns ansehen, wie man einen neuen Serverblock (virtueller Host ) für jede neue Domain.

Hinweis:„VirtualHost“ ist ein Apache-Begriff. Nginx hat keine virtuellen Hosts, es hat „Server-Blöcke“, die die Direktiven server_name und listen verwenden, um sich an TCP-Sockets zu binden.

Das folgende Skript kann verwendet werden, um einen neuen Serverblock auf Ihrem Nginx-Server einzurichten.

#!/usr/bin/env bash
#
# Nginx - new server block
# http://rosehosting.com

# Functions
ok() { echo -e '\e[32m'$1'\e[m'; } # Green
die() { echo -e '\e[1;31m'$1'\e[m'; exit 1; }

# Variables
NGINX_AVAILABLE_VHOSTS='/etc/nginx/sites-available'
NGINX_ENABLED_VHOSTS='/etc/nginx/sites-enabled'
WEB_DIR='/var/www'
WEB_USER='www-data'

# Sanity check
[ $(id -g) != "0" ] && die "Script must be run as root."
[ $# != "1" ] && die "Usage: $(basename $0) domainName"

# Create nginx config file
cat > $NGINX_AVAILABLE_VHOSTS/$1 <<EOF
server {
  server_name $1;
  listen 80;
  root $WEB_DIR/$1/public_html;
  access_log $WEB_DIR/$1/logs/access.log;
  error_log $WEB_DIR/$1/logs/error.log;
  index index.html index.php;
  location / {
    try_files \$uri \$uri/ @rewrites;
  }
  location @rewrites {
    rewrite ^ /index.php last;
  }
  location ~* \.(jpg|jpeg|gif|css|png|js|ico|html)$ {
    access_log off;
    expires max;
  }
  location ~ /\.ht {
    deny  all;
  }
  location ~ \.php {
    fastcgi_index index.php;
    fastcgi_split_path_info ^(.+\.php)(.*)$;
    include /etc/nginx/fastcgi_params;
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_param SCRIPT_FILENAME \$document_root\$fastcgi_script_name;
  }
}
EOF

# Creating {public,log} directories
mkdir -p $WEB_DIR/$1/{public_html,logs}

# Creating index.html file
cat > $WEB_DIR/$1/public_html/index.html <<EOF
<!DOCTYPE html>
<html lang="en">
<head>
        <title>$1</title>
        <meta charset="utf-8" />
</head>
<body class="container">
        <header><h1>$1<h1></header>
        <div id="wrapper"><p>Hello World</p></div>
        <footer>© $(date +%Y)</footer>
</body>
</html>
EOF

# Changing permissions
chown -R $WEB_USER:$WEB_USER $WEB_DIR/$1

# Enable site by creating symbolic link
ln -s $NGINX_AVAILABLE_VHOSTS/$1 $NGINX_ENABLED_VHOSTS/$1

# Restart
echo "Do you wish to restart nginx?"
select yn in "Yes" "No"; do
    case $yn in
        Yes ) /etc/init.d/nginx restart ; break;;
        No ) exit;;
    esac
done

ok "Site Created for $1"

Hier ist, was es tut, in Kürze:

  1. Erstellt ein neues Verzeichnis für die Site (/var/www/DOMAIN.COM/public_html)
  2. Erstellt ein neues Verzeichnis für Protokolldateien (/var/www/DOMAIN.COM/logs)
  3. Legt den richtigen Besitzer/die richtige Gruppe fest.
  4. Erstellt eine einfache index.html-Datei, um zu zeigen, dass die Seite funktioniert.
  5. Bitte um Neustart.

Um den Skripttyp zu verwenden:

./nginx_vhost.sh  newdomain.com

Das Skript sollte auf Debian, Ubuntu und eng verwandten Distributionen funktionieren.

Wenn Sie eines unserer Ubuntu VPS-Hosting-Pläne verwenden, müssen Sie den virtuellen Nginx-Host nicht selbst erstellen. Sie können einfach unsere erfahrenen Linux-Administratoren bitten, einen Nginx-Serverblock für Sie zu erstellen. Sie sind rund um die Uhr erreichbar und kümmern sich umgehend um Ihr Anliegen.

PS. Wenn Ihnen dieser Beitrag zum Erstellen eines virtuellen Nginx-Hosts gefallen hat, teilen Sie ihn bitte mit Ihren Freunden in den sozialen Netzwerken über die Schaltflächen auf der linken Seite oder hinterlassen Sie einfach unten eine Antwort. Danke.


Panels
  1. nginx - 413 Anforderungsentität zu groß

  2. So erstellen Sie einen virtuellen Nginx-Host (Serverblock)

  3. Apache Virtual Host-Konfigurationen – Linux

  4. Installieren Sie den Apache-Webserver unter Linux Mint 13 / Linux Mint 14

  5. Installieren Sie Nginx und konfigurieren Sie den virtuellen Host in Ubuntu 20.04

So installieren Sie Nginx unter Ubuntu 20.04

So installieren Sie Nginx unter CentOS 8

Nginx unter Ubuntu 14.04 und 16.04 installieren

Installieren Sie Nginx unter CentOS 7 / RHEL 7

So hosten Sie eine Website auf dem NGINX-Webserver

So richten Sie einen virtuellen Nginx-Host ein