Учебник, на который вы ссылаетесь, дает очень конкретный пример для gitbucket.
Если вы настраиваете сайты с помощью nginx, вы должны иметь в виду, что у каждого сайта есть множество настроек и что существует логика, которая будет определять, что и когда будет иметь приоритет. Эта цифровая статья об океане под названием «Понимание алгоритмов выбора сервера Nginx и блока местоположения» о том, как это определяется.
Из того, что вы объяснили в ваших комментариях, вы получили два файла сайта. Один из них является файлом по умолчанию, в котором вы устанавливаете свой обычный root для своего сайта, а другой - для gitbucket, который просто содержит блок местоположения gitbucket и (что важно) директиву listen и директиву имени сервера.
Первый шаг, который nginx делает, чтобы определить, какой сайт доставить, - это выяснить, какой блок сервера использовать. В настоящее время у вас есть два серверных блока с одинаковым определением. Ваш блок по умолчанию и блок gitbucket прослушивают порт 80 для одного и того же имени сервера. Так что один всегда будет перезаписывать другой.
Если вы хотите, чтобы оба работали, у вас есть несколько вариантов:
- Установите любой сайт на другой порт, используя директиву listen.
- Измените имя сервера для любого сайта. Это также может включать поддомен. Всякий раз, когда это работает или нет, может зависеть от конфигурации DNS для сайта.
- Просто включите блок местоположения из вашей конфигурации gitbucket в файл по умолчанию.
Блок местоположения, как следует из названия, просто определяет настройки для очень определенного местоположения. Для этого не нужен независимый блок сервера, по крайней мере, если это базовое определение.