V tomto tutoriálu vám poskytneme pokyny krok za krokem, jak nastavit bloky serveru nginx na Ubuntu 16.04 a CentOS 7. Bloky serveru Nginx se často používají ke spuštění více webových stránek na jedné IP adrese.
Všimněte si, že tento tutoriál je pouze pro Nginx. Pokud používáte Apache, budete muset nastavení virtuálních hostitelů
1. Nainstalujte Nginx na Ubuntu
Ujistěte se, že jsou balíčky operačního systému vašeho serveru plně aktuální:
apt-get update apt-get upgrade
Zastavte a odeberte Apache a poté nainstalujte nginx pomocí následujících příkazů:
service apache2 stop apt-get remove apache2 apt-get autoremove apt-get install nginx
Odeberte výchozí konfigurační soubor nginx:
rm /etc/nginx/sites-enabled/default
Povolte spuštění služby nginx při spouštění a spusťte ji:
systemctl enable nginx systemctl start nginx.service
2. Nainstalujte Nginx na CentOS
Ujistěte se, že jsou všechny balíčky OS aktuální spuštěním následujících příkazů:
yum clean all yum update
Zastavte a odeberte Apache, pokud je nainstalován a spuštěn na vašem virtuálním serveru:
systemctl stop httpd systemctl disable httpd yum remove httpd
Nainstalujte nginx:
yum install nginx
Možná budete chtít nainstalovat PHP a MariaDB, takže spusťte následující příkaz:
yum install nginx mariadb mariadb-server php php-fpm php-cli php-curl php-gd php-mbstring php-mysql php-xml
Upravte konfigurační soubor /etc/php-fpm.d/www.conf a změňte:
user = apache group = apache
komu:
user = www-data group = www-data
Spusťte následující příkaz:
chown www-data: -R /var/lib/php/session
Spusťte služby PHP-FPM, Nginx a MariaDB a povolte jejich spuštění při spouštění:
systemctl start php-fpm systemctl start nginx systemctl start mariadb
systemctl enable php-fpm systemctl enable nginx systemctl enable mariadb
3. Nakonfigurujte nginx a nastavte bloky serveru nginx
Pojďme nakonfigurovat základní direktivy v hlavním konfiguračním souboru nginx s názvem ‚nginx.conf‘. Měl by být umístěn v adresáři /etc/nginx/ na vašem serveru.
vi /etc/nginx/nginx.conf
user www-data; worker_processes 4; pid /var/run/nginx.pid;
uživatel – uživatel, který bude vlastnit a provozovat server nginx.
pracovní_procesy – obecně je nejlepší nastavit konfiguraci nginx worker_processes na počet CPU. Pokud například používáte náš plán SSD 4 VPS, nastavte worker_processes na 4.
Chcete-li zkontrolovat počet CPU na vašem serveru, můžete použít následující příkaz:
#cat /proc/cpuinfo | grep processor | wc -l 4
pid – umístění, kam nginx zapíše ID hlavního procesu neboli PID.
Pokud používáte CentOS, vytvořte pro svůj web nový konfigurační soubor Nginx:
vi /etc/nginx/conf.d/domain1.com.conf
Přidejte následující obsah:
server { server_name www.domain1.com domain1.com; listen 80; root /var/www/html/domain1.com; access_log /var/log/nginx/domain1.com-access.log; error_log /var/log/nginx/domain1.com-error.log; index index.php; location / { try_files $uri $uri/ /index.php?$args; } location ~* \.(jpg|jpeg|gif|css|png|js|ico|html)$ { access_log off; expires max; } location ~ \.php$ { try_files $uri = 404; fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include /etc/nginx/fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } location ~ /\.ht { deny all; } }
Pokud potřebujete hostovat více než jednu webovou stránku na stejném serveru (pomocí stejné IP adresy), můžete vytvořit nový blok serveru. Nejlepší je vytvořit nový konfigurační soubor pro každý web.
Vytvořte například druhý konfigurační soubor nginx s názvem /etc/nginx/conf.d/domain2.com.conf a přidejte stejný obsah jako /etc/nginx/conf.d/domain1.com.conf , ale nezapomeňte jej nahradit domain1.com s druhým názvem domény včetně kořenového adresáře dokumentu vašeho webu, umístění souborů protokolu atd.:
server { server_name www.domain2.com domain2.com; listen 80; root /var/www/html/domain2.com; access_log /var/log/nginx/domain2.com-access.log; error_log /var/log/nginx/domain2.com-error.log; index index.php; location / { try_files $uri $uri/ /index.php?$args; } location ~* \.(jpg|jpeg|gif|css|png|js|ico|html)$ { access_log off; expires max; } location ~ \.php$ { try_files $uri = 404; fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include /etc/nginx/fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } location ~ /\.ht { deny all; } }
Pokud používáte operační systém Ubuntu, vytvořte konfigurační soubor nginx ‚domain1.com.conf‘ do adresáře /etc/nginx/sites-available.
vi /etc/nginx/sites-enabled/domain1.com.conf
(přidejte stejný obsah jako obsah uvedený výše, tj. /etc/nginx/conf.d/domain1.com.conf na serveru CentOS).
Poté z tohoto souboru vytvořte symbolický odkaz na adresář s povolenými weby:
ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
Opakujte stejný postup a vytvořte nové konfigurační soubory pro všechny ostatní webové stránky hostované na serveru.
4. Otestujte konfiguraci Nginx
nginx -t
Pokud je test úspěšný, restartujte službu Nginx:
systemctl restart nginx
Nahrajte soubory svých webových stránek do adresářů /var/www/html/domain1.com , /var/www/html/domain2.com /var/www/html/domainN.com.
Uživatel webového serveru (www-data) musí mít přístup k adresářům /var/www/html/domain1.com , /var/www/html/domain2.com , /var/www/html/domainN.com. To lze snadno provést provedením následujícího příkazu:
chown -R www-data:www-data /var/www/html/
Samozřejmě nemusíte Jak nastavit Nginx Server Blocks na Ubuntu a CentOS, pokud používáte jednu z našich hostingových služeb Nginx VPS, v takovém případě můžete jednoduše požádat naše zkušené administrátory Linuxu, aby nastavili server nginx bloky pro tebe. Jsou k dispozici 24×7 a okamžitě se postarají o váš požadavek.
PS. Pokud se vám líbil tento příspěvek o tom, jak nastavit Nginx Server Blocks na Ubuntu a CentOS, 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.