GNU/Linux >> Znalost Linux >  >> Panels >> Panels

Virtuální hostitel Nginx – blok serveru Nginx

Ukážeme vám, jak vytvořit virtuálního hostitele Nginx, známého také jako blok serveru Nginx. V jednom z našich předchozích tutoriálů jsme vysvětlili, jak nainstalovat a nakonfigurovat server LNMP (Nginx, MySQL a PHP) na Debian 6 (squeeze) VPS, nyní se podíváme na to, jak nastavit nový blok serveru (virtuální hostitel ) pro každou novou doménu.

Poznámka:„VirtualHost“ je termín Apache. Nginx nemá virtuální hostitele, má „bloky serveru“, které používají direktivy server_name a listen k navázání na tcp sockety.

Následující skript lze použít k nastavení nového bloku serveru na vašem serveru Nginx.

#!/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"

Zde je to, co to dělá, v kostce:

  1. Vytvoří nový adresář pro stránky (/var/www/DOMAIN.COM/public_html)
  2. Vytvoří nový adresář pro soubory protokolu (/var/www/DOMAIN.COM/logs)
  3. Nastaví správného vlastníka/skupinu.
  4. Vytvoří jednoduchý soubor index.html, který ukáže, že web funguje.
  5. Požádá o restart.

Chcete-li použít typ skriptu:

./nginx_vhost.sh  newdomain.com

Skript by měl fungovat na Debianu, Ubuntu a úzce souvisejících distribucích.

Pokud používáte jeden z našich plánů hostování Ubuntu VPS, nemusíte virtuální hostitel Nginx vytvářet sami, můžete jednoduše požádat naše zkušené administrátory Linuxu, aby vám vytvořili blok serveru Nginx. Jsou k dispozici 24×7 a okamžitě se postarají o váš požadavek.

PS. Pokud se vám tento příspěvek o tom, jak vytvořit virtuální hostitele Nginx, líbil, sdílejte jej se svými přáteli na sociálních sítích pomocí tlačítek vlevo nebo jednoduše zanechte odpověď níže. Děkuji.


Panels
  1. nginx - 413 entita požadavku je příliš velká

  2. Jak vytvořit virtuální hostitele Nginx (blok serveru)

  3. Konfigurace virtuálního hostitele Apache – Linux

  1. Nainstalujte webový server Apache na Linux Mint 13 / Linux Mint 14

  2. Nainstalujte Nginx a nakonfigurujte virtuálního hostitele v Ubuntu 20.04

  3. Hostujte WordPress v Ubuntu 20.04, Mysql 8, Ubuntu 20.04, Nginx

  1. Jak nainstalovat LEMP na Ubuntu 16.04

  2. Jak nainstalovat Nginx na Ubuntu 18.04

  3. Nainstalujte Nginx na Windows