![]() |
Здравствуйте, гость ( Авторизация | Регистрация )
![]() |
![]() Сообщение
#1
|
|
![]() Почетный ![]() ![]() ![]() ![]() ![]() ![]() ![]() Текущее настроение: ![]() Вст. ник | Цитата Группа: Супер Стар Сообщений: 3097 Регистрация: 29.12.2009 Пользователь №: 33839 Награды: 15 Подарки: 41 Пол: М Репутация: ![]() ![]() ![]() |
Ни думал, ни гадал, что когда-нибудь возьмусь за такое занятие. Во-первых, у меня не было идеи, о чём должен быть сайт. Во-вторых, я никогда не делал сайты, и у меня нет соответствующих навыков. Но тут у друга появилась идея для сайта, которая мне понравилась. А у меня начало появляться свободное время, которое нужно было использовать. Начинать что-то новое я никогда не боялся, поэтому решил начать. Тем более, что общие навыки программирования у меня есть. Сразу скажу: Идею сайта пока рассказывать не буду, не просите! Даже если просто поржать
![]() Честно говоря, я уже начал делать сайт, и есть кое-какие наработки. Можно было, конечно, не создавать эту тему, а просто продолжать делать своё дело. Но я человек ленивый, и если не с кем пообщаться на эту тему, то работоспособность у меня почему-то снижается. А если на форуме в теме будет с кем поговорить, то это дело должно стать более захватывающим для меня и пойти веселее ![]() Обычно я веду беседы совсем на другие темы, не связанные с техникой, что может стать неожиданностью для участников, знакомых со мной на форуме. В связи с этим я считаю необходимым сделать следующее предупреждение. ПРЕДУПРЕЖДЕНИЕ: В данной теме предполагается углубленное рассмотрение информационно-алгоритмических подробностей с использованием сложных и неоднозначных для обычных людей понятий, применяемых в этой области. Это способно вызвать у неподготовленного читателя состояние трудно-идентифицируемой дезориентации, во избежание чего, во время прочтения данной темы рекомендуется не пытаться осознать сразу всё, что написано, а также рекомендуется делать перерывы и пить больше жидкости. За психическое состояние читателей автор ответственности не несёт. Продолжение следует... -------------------- -------------------- Подарки: (Всего подарков: 41 ) |
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
|
|
|
![]() |
![]() Сообщение
#2
|
|
![]() Почетный ![]() ![]() ![]() ![]() ![]() ![]() ![]() Текущее настроение: ![]() Вст. ник | Цитата Группа: Супер Стар Сообщений: 3097 Регистрация: 29.12.2009 Пользователь №: 33839 Награды: 15 Подарки: 41 Пол: М Репутация: ![]() ![]() ![]() |
Чтобы работало несколько сайтов, нужно настроить веб-сервер nginx. А именно, в настройках нужно для каждого сайта создать свой раздел "server". Где у нас находится раздел "server"? В файле /etc/nginx/sites-enabled/default. И вот как он выглядит:
Код server { Этот один раздел server соответствует одному сайту. Значит для ещё одного сайта нам нужно создать ниже ещё один такой же раздел. Такой же, да не такой. А какой? Чтобы разобраться в этом, давайте рассмотрим каждую строчку...listen 80 default_server; listen [::]:80 default_server; root /var/www/html; index index.html index.htm index.nginx-debian.html; server_name _; location / { try_files $uri $uri/ =404; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php7.0-fpm.sock; } } listen 80 default_server; — Означает, что веб-сервер работает на порту № 80. Это стандартный порт для протокола HTTP, на котором работают все сайты. То есть, когда в строке браузера мы пишем, например: tochek.net, то подразумевается, что используется 80-й порт. И если мы напишем tochek.net:80, то это будет то же самое, и браузер откроет нам наш любимый форум. А вот если мы напишем, например, tochek.net:81 или поставим какое-нибудь другое число вместо 80, то форум нам не ответит, т.к. он работает на порту № 80. Кроме того, слова default_server в строке означают "сайт по умолчанию". То есть, этот сайт откроется, если веб-сервер не смог определить, какой сайт нужен пользователю. listen [::]:80 default_server; — Эта строка нужна для поддержки протокола IPv6, который нужен для будущего, но он пока ещё недостаточно распространён в сети. Просто оставляем эту строчку как есть. root /var/www/html; — Это каталог на сервере, в котором расположены файлы данного сайта. То есть, для другого сайта нужно будет указать другой каталог, в котором находятся файлы этого другого сайта. index index.html index.htm index.nginx-debian.html; — Здесь после слова index указывается, с какого файла сервер должен начать обзор сайта, если в браузере указано, например, просто tochek.net. В данном случае веб-сервер должен начать обзор сайта с файла index.html. А если такого файла нет, то начать с файла index.htm. И так далее, по порядку, если указано несколько файлов. server_name _; — Это домен. То есть, имя и одновременно адрес сайта, по которому пользователи будут заходить на сайт. Например, для сайта tochek.net здесь должно быть указано tochek.net. В данном случае у нас указано имя "_". Такого домена не существует, поэтому на сайт можно зайти только если ввести в браузере IP-адрес сервера. Вопрос: Почему же тогда мы можем зайти на сайт по домену? Ответ: Потому что указана директива default_server, и попытка зайти на любой домен, привязанный к хостингу, но неизвестный для веб-сервера nginx, будет отправлять пользователя на данный сайт. Далее идёт блок: Код location / { Который означает, что все файлы, находящиеся в каталоге /var/www/html и в его подкаталогах, должны отправляться браузеру.try_files $uri $uri/ =404; } Следующий блок: Код location ~ \.php$ { Означает, что все файлы с расширением .php, прежде чем отправляться браузеру, должны быть обработаны интерпретатором PHP (php-fpm), который является одним из трёх основных компонентов для работы сайта.include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php7.0-fpm.sock; } Так, разобрались. Значит, для двух разных сайтов, нам нужно сделать два таких раздела server с указанием 1) двух разных доменов и 2) двух разных каталогов с файлами, соответствующих каждому сайту. Для начала давайте создадим два разных каталога. Допустим, у нас два сайта: 1) site1.ru, 2) site2.ru. Не будем ничего усложнять и в каталоге /var/www создадим два подкаталога: 1) site1.ru, 2) site2.ru. В первый каталог поместим файлы первого сайта, а во второй, соответственно, второго. Создать эти каталоги можно, например, из установленной нами на сервере программы Midnight Commander, если с её помощью зайти в каталог /var/www, нажать там кнопку F7 и ввести название нового каталога, например, site1.ru. Только обратите внимание, что создавать каталоги нужно от имени пользователя kamikadze9705, чтобы у веб-сервера не было проблем с доступом к файлам сайтов. То есть, в программу Midnight Commander нужно заходить не так: sudo mc, а так: mc. После этого можно создавать каталоги и копировать файлы сайтов. Теперь в файле /etc/nginx/sites-enabled/default сделаем копию всего раздела server, чтобы получилось их два одинаковых. Вот так: » Кликните сюда для просмотра оффтоп текста.. « А затем исправим значения на нужные нам.То есть, в первой копии раздела server:
2) заменим server_name _; на server_name site1.ru;, 3) в строке index index.html index.htm index.nginx-debian.html; оставим только index index.html;, т.к. index.html будет единственный главный файл на нашем сайте.
2) заменим server_name _; на server_name site2.ru;, 3) в строке index index.html index.htm index.nginx-debian.html; оставим только index index.html;, т.к. index.html будет единственный главный файл на нашем сайте. 4) уберём слова default_server, т.к. сайт по умолчанию должен быть только один, и в нашем случае это будет site1.ru. » Кликните сюда для просмотра оффтоп текста.. « Сохраняем файл с этими настройками. И, внимание, копируем его не в папку /etc/nginx/sites-enabled, а в папку /etc/nginx/sites-available. Потому что в первой папке на самом деле находится не сам файл, а ссылка на него. А сам файл находится во второй папке. И если мы изменим файл во второй папке, то автоматически изменится и в первой, т.к. это просто ссылка. Так сделано для удобства управления сайтами — чтобы легче было включать и выключать определённые сайты.После изменения этих настроек, нужно перезапустить веб-сервер nginx: Код systemctl restart nginx Таким образом мы создали на сервере два сайта: site1.ru и site2.ru. И если всё было сделано правильно, то из браузера мы сможем зайти как на первый наш сайт, так и на второй. То есть, мы платим за один хостинг, а сайта у нас два. Классно! ![]() Продолжение следует... -------------------- -------------------- Подарки: (Всего подарков: 41 ) |
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
|
|
|
![]() ![]() |
Текстовая версия | Сейчас: 16.06.2025 - 6:52 |