Тази статия описва как да конфигурирате виртуален хостинг за Nginx. Ако търсите ръководство за Apache, щракнете тук.
Има няколко причини да искате да хоствате множество уебсайтове на един сървър. Ако използвате специален сървър / VPS и искате да хоствате множество приложения на отделен домейн и един сървър, тогава ще трябва да хоствате множество уебсайтове на един сървър. Можете да постигнете това с виртуален хостинг Apache / Nginx. Виртуалният хостинг ви позволява да използвате един VPS, за да хоствате всичките си домейни. Така че хостването на множество уебсайтове на един VPS сървър с помощта на виртуален хостинг е най-доброто решение за вас да намалите разходите за хостинг.
На теория няма ограничение за броя на сайтовете, които можете да хоствате на своя VPS с Apache или Nginx. Но се уверете, че вашият сървър има достатъчно дисково пространство, процесор и RAM.
В този урок ще научим как да настроим множество уебсайтове на Ubuntu VPS с Nginx.
Webdock не ви препоръчва да използвате нашите сървъри за споделен хостинг, тъй като това може да причини редица проблеми и да ви попречи да използвате някои от нашите инструменти за управление, а именно нашето лесно управление на Let's Encrypt / Certbot за SSL сертификати и управление на Wordpress. Щракнете тук, за да прочетете защо смятаме, че наистина трябва да използвате един VPS за всеки уебсайт / приложение.
Моля, обърнете внимание: Извършването на тези действия може да доведе до повреда на вашия сървър. Не правете това на жив сайт, без да знаете потенциалните последствия.
Забележка: Можете да се обърнете към Ръководството за DNS на Webdock, за да управлявате DNS записите.
В този раздел ще ви покажем как да хоствате два уебсайта с имена web1.webdock.io и web2.webdock.io на един Ubuntu VPS с уеб сървър на Nginx.
Преди да започнете, уверете се, че LEMP стекът е инсталиран на вашия VPS. Можете да проверите състоянието на Nginx сървъра със следната команда:
systemctl status nginxНай-добрият метод за хостване на множество уебсайтове е да създадете отделна основна директория на документа и конфигурационен файл за всеки уебсайт. Така че ще трябва да създадете структура на директория и за двата уебсайта в уеб корена на Nginx:
За да направите това, изпълнете следната команда за всеки уебсайт:
mkdir /var/www/html/web1.webdock.iomkdir /var/www/html/web2.webdock.ioСлед това ще трябва да създадете примерно съдържание на уебсайт за всеки уебсайт:
Първо създайте файл index.html за уеб сайта web1.webdock.io:
nano /var/www/html/web1.webdock.io/index.htmlДобавете следната HTML маркировка, която ще бъде сервирана, когато се свържете със сайта:
web1.webdock.ioДобре дошли в web1.webdock.io с уеб сървър Nginx.
Запазете и затворете файла.
След това създайте файл index.html за уеб сайта web2.webdock.io:
nano /var/www/html/web2.webdock.io/index.htmlДобавете следното HTML маркиране, което ще се показва, когато се свържете със сайта:
web2.webdock.ioДобре дошли в web2.webdock.io с уеб сървър Nginx.
Запазете и затворете файла. След това променете собствеността на двете директории на уебсайтове на www-data:
chown -R www-data:www-data /var/www/html/web1.webdock.iochown -R www-data:www-data /var/www/html/web2.webdock.ioСлед това ще трябва да създадете конфигурационен файл за виртуален хост за всеки уебсайт, който показва как уеб сървърът на Nginx ще отговаря на различни заявки за домейн.
Първо създайте конфигурационен файл за виртуален хост за уебсайта web1.webdock.io:
nano /etc/nginx/sites-available/web1.webdock.io.confДобавете следните редове:
сървър {listen 80;listen [::]:80;root /var/www/html/web1.webdock.io;index index.html index.htm;server_name web1.webdock.io; местоположение / {try_files $uri $uri/ =404; }}Запазете и затворете файла. След това създайте конфигурационен файл за виртуален хост за уебсайта web2.webdock.io:
nano /etc/nginx/sites-available/web2.webdock.io.confДобавете следните редове:
сървър {listen 80;listen [::]:80;root /var/www/html/web2.webdock.io;index index.html index.htm;server_name web2.webdock.io; местоположение / {try_files $uri $uri/ =404; }}Запазете и затворете файла. След това активирайте всеки виртуален хост със следната команда:
ln -s /etc/nginx/sites-available/web1.webdock.io.conf /etc/nginx/sites-enabled/ln -s /etc/nginx/sites-available/web2.webdock.io.conf /etc/ nginx/sites-enabled/След това проверете Nginx за синтактична грешка със следната команда:
nginx -tАко всичко върви добре, трябва да получите следния резултат:
nginx: синтаксисът на конфигурационния файл /etc/nginx/nginx.conf е oknginx: тестът на конфигурационния файл /etc/nginx/nginx.conf е успешенНакрая рестартирайте услугата Nginx, за да приложите промените в конфигурацията:
systemctl рестартирайте nginxСега отворете вашия уеб браузър и въведете URL адреса http://web1.webdock.io и http://web2.webdock.io. Трябва да видите и двата уебсайта със съдържанието, което създадохме по-рано:
web1.webdock.io
web2.webdock.io
PHP-FPM, известен също като „PHP-FastCGI Process Manager“, е FastCGI манипулатор за PHP скриптове и приложения. Позволява на уебсайта да се справя с големи натоварвания. PHP-FPM е по-бърз от традиционните CGI-базирани методи за многопотребителски PHP среди. PHP-FPM ви позволява да хоствате множество приложения, които използват различни версии на PHP.
Вероятно искате да активирате поддръжката на PHP, тъй като в противен случай неща като Wordpress няма да работят. Тъй като началната ви точка беше Webdock LEMP стек, тогава всичко вече е инсталирано и конфигурирано правилно за PHP версията във вашия стек. В този пример използваме php 7.3 - заменете номера на версията с това, което е подходящо за стека, с който сте започнали.
За да активирате поддръжката на PHP-FPM на уебсайта web1.webdock.io, отворете съществуващата конфигурация на webdock по подразбиране за вашия сървър в /etc/nginx/sites-enabled/webdock:
nano /etc/nginx/sites-enabled/webdockКопирайте следните редове - като внимавате номерът на версията на php-fpm по-долу да е правилен за вашия сървър::
местоположение ~ \.php$ {fastcgi_split_path_info ^(.+\.php)(/.+)$;fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;fastcgi_index index.php;включете fastcgi_params;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;fastcgi_intercept_errors off;fastcgi_buffer_size 16k;fastcgi_buffers 4 16k;fastcgi_connect_timeout 600;fastcgi_send_timeout 600;fastcgi_read_timeout 600;}След това отворете виртуалния хост Nginx конфигурационен файл за уебсайт web1.webdock.io със следната команда:
nano /etc/nginx/sites-available/web1.webdock.io.confПоставете всички редове, които сте копирали от конфигурационния файл на webdock, както е показано по-долу - като внимавате номерът на версията на php-fpm по-долу да е правилен за вашия сървър:
сървър {listen 80;root /var/www/html/web1.webdock.io;index index.html index.htm index.php;server_name web1.webdock.io;location ~ \.php$ {fastcgi_split_path_info ^(.+\ .php)(/.+)$;fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;fastcgi_index index.php;include fastcgi_params;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;fastcgi_intercept_errors off;fastcgi_buffer_size 16k;fastc gi_buffers 4 16k;fastcgi_connect_timeout 600;fastcgi_send_timeout 600;fastcgi_read_timeout 600;} местоположение / {try_files $uri $uri/ =404; }}Запазете и затворете файла. След това рестартирайте Nginx и правилната PHP-FPM услуга, за да приложите промените в конфигурацията:
systemctl рестартирайте nginxsystemctl рестартирайте php7.3-fpmПовторете същия процес за уебсайт web2.webdock.io
Поздравления! вече успешно настроихте уебсайта си да хоства два уебсайта на един Ubuntu VPS. Надяваме се, че вече имате достатъчно знания, за да хоствате неограничен брой уебсайтове на вашия собствен сървър. За повече информация относно виртуалния хостинг на Nginx можете да посетите Nginx Virtual Hosting.
Може също така да искате да защитите новите си уебсайтове с Let's Encrypt SSL сертификати. Стандартният контролен панел Webdock може да обработва само един уебсайт / webroot, така че ако искате да защитите всичките си сайтове на един и същ сървър, трябва да го направите и ръчно. Щракнете тук, за да научите как да издавате SSL сертификати за всички ваши уебсайтове.
PREV: Коя е/коя беше любимата ви битка за шеф на частен сървър?
NEXT: Идентификатор на събитие: 3003 (Възникна грешка при валидирането) [От страна на клиента ...