Я использую nginx, до сих пор я запускал свои приложения php в /usr /share /nginx /html, который является корневым каталогом документов по умолчанию, когда nginx установлен в centOS и подобных системах.

Теперь мне нужно было создать серверные блоки (или виртуальные хосты) для запуска другого приложения, следуя этому руководству (https://www.digitalocean.com/community/tutorials/how-to-set-up-nginx-server-blocks-virtual -hosts-on-ubuntu-14-04-lts) и в итоге я создал приложение в /var /www /html.

В этом процессе, как говорится в руководстве по редактированию файла etc/hosts для вашего общедоступного IP-адреса, было запущено другое приложение, которое развернуто в моей локальной сети. Я хотел, чтобы он работал только на моей машине, поэтому я изменил его на свой локальный IP и сделал следующую запись для хостов

192.168.0.38 dev.mysite.com www.dev.mysite.com 

Странно, но после этого я заметил, что мое имя хоста изменилось на

muUsername@dev instead of @localhost before
  1. Пожалуйста, скажите мне, почему это произошло и как изменить это обратно.
  2. Теперь приложение запускается при доступе к localhost в браузере, но не при доступе к dev.mysite.com. Как это исправить?
  3. При доступе к www.dev.mysite.com я получаю свое старое приложение в старом webroot (uss/share/nginx/html). Почему это происходит и как это исправить?

Нужна дополнительная информация, пожалуйста, прокомментируйте.

1 ответ1

1

1) Это происходит потому, что вы настраиваете полное доменное имя для своего компьютера, и в этом случае предполагается, что имя хоста является частью субдомена. Это связано с поведением функции gethostname . Если вы запустите hosname -f , вы получите полное доменное имя, а hostname -d даст вам доменное имя. Установите имя вашей машины перед всеми этими FQDN.

Обновление : не обратил внимания, что вы были на centos, обновил второе местоположение файла

/etc/hosts:

192.168.0.38 mymachine dev.mysite.com www.dev.mysite.com  

/ И т.д. / sysconfig / сети:

HOSTNAME=mymachine  

Затем перезагрузите компьютер.

2) Когда вы нажимаете на это доменное имя локально, ядро в какой-то момент будет искать содержимое /etc/hosts и затем перенаправит запрос на ваш петлевой интерфейс. Возможно, вы пропустили имя сервера в вашей конфигурации nginx.

3) Измените корневой путь документа для этого имени сервера.

server {
    listen 80;
    server_name www.dev.mysite.com;
    root /var/www/dev.mysite.com;
}

server {
    listen 80 default_server;
    server_name _;
    return 301 http://www.dev.mysite.com;
}

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .