При базовой установке nginx ваша папка sites-available
имеет только один файл: default
Как работает папка sites-available
и как я буду использовать ее для размещения нескольких (отдельных) веб-сайтов?
При базовой установке nginx ваша папка sites-available
имеет только один файл: default
Как работает папка sites-available
и как я буду использовать ее для размещения нескольких (отдельных) веб-сайтов?
Чтобы добавить другой подход, вы можете использовать отдельный файл для каждого виртуального домена или сайта, на котором вы размещаете.
Вы можете использовать копию по умолчанию в качестве отправной точки для каждого из них и настроить для каждого сайта.
Затем создайте символические ссылки в сайтах. Таким образом, вы можете размещать сайты вверх и вниз, просто добавляя или удаляя символическую ссылку и выгружая службу nginx reload.
Вы можете получить объявление и использовать этот метод для перенаправления сайтов на страницу режима обслуживания во время обслуживания сайта.
Итак, структура выглядит так:
/sites-available/ (you can use obvious file names like this)
|
|-> a.mysite.com
|-> b.mysite.com
|-> someOtherSite.com
/sites-enabled/ (these are just symlinks to the real files in /sites-available)
|
|-> a.mysite.com
|-> b.mysite.com
Обратите внимание: поскольку только первые две записи являются единственными символическими элементами в sites-enabled
, третья запись someOtherSite.com
поэтому недоступна.
Если вы посмотрите nginx.conf
, вы найдете include
директиву, которая включает все файлы из каталога sites-enabled
. Этот каталог хранит символические ссылки в файлах конфигурации из sites-available
, чтобы было удобно включать и выключать части вашей конфигурации.
Как вы можете видеть, в этих каталогах нет волшебства.
Если вы хотите разместить несколько веб-сайтов, вы должны использовать несколько блоков server
и/или server_name
. Официальные руководства здесь: Имена серверов и Как nginx обрабатывает запрос.
Вы символизируете файл по умолчанию с сайтов, доступных для разрешенных сайтов. Затем вы изменяете доступный сайт, чтобы включить два серверных блока, каждый с другим именем сервера. см. следующее. Предполагается, что у вас есть домены, называемые example.com и example2.com. Вы также указали бы @records на ip-адрес сервера, на котором вы установили nginx.
Symlink доступный сайт к разрешенному сайту
sudo ln -s /etc/nginx/sites-available/default /etc/nginx/sites-enabled/default
отредактируйте файл с помощью выбранного вами редактора (vim для меня)
sudo vi /etc/nginx/sites-available/default
Здесь содержимое рабочей nginx conf, если вы используете веб-приложения на портах 4567 и 4568.
server {
server_name www.example.com
location / {
proxy_pass http://localhost:4567/;
}
}
server {
server_name www.example2.com
location {
proxy_pass http://localhost:4568/;
}
}