Подтвердить что ты не робот

Несколько сайтов на nginx и сайтах

При базовой установке nginx ваша папка sites-available имеет только один файл: default

Как работает папка sites-available и как я буду использовать ее для размещения нескольких (отдельных) веб-сайтов?

4b9b3361

Ответ 1

Чтобы добавить другой подход, вы можете использовать отдельный файл для каждого виртуального домена или сайта, на котором вы размещаете. Вы можете использовать копию по умолчанию в качестве отправной точки для каждого из них и настроить для каждого сайта.
Затем создайте символические ссылки в сайтах. Таким образом, вы можете размещать сайты вверх и вниз, просто добавляя или удаляя символическую ссылку и выгружая службу 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 поэтому недоступна.

Ответ 2

Если вы посмотрите nginx.conf, вы найдете include директиву, которая включает все файлы из каталога sites-enabled. Этот каталог хранит символические ссылки в файлах конфигурации из sites-available, чтобы было удобно включать и выключать части вашей конфигурации.

Как вы можете видеть, в этих каталогах нет волшебства.

Если вы хотите разместить несколько веб-сайтов, вы должны использовать несколько блоков server и/или server_name. Официальные руководства здесь: Имена серверов и Как nginx обрабатывает запрос.

Ответ 3

Вы символизируете файл по умолчанию с сайтов, доступных для разрешенных сайтов. Затем вы изменяете доступный сайт, чтобы включить два серверных блока, каждый с другим именем сервера. см. следующее. Предполагается, что у вас есть домены, называемые 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/;
    }

}