Настройка доменного имени Nginx для локальной сети

Возможно, специфично для -Linux, другие /procмогут вести себя по-другому, но в Linux вы можете сделать это:

(   # subshell to preserve CWD
    cd /proc/$pid || exit
    [ "$expected_path" = "$(readlink exe)" ] || exit # optional, and can do more checks
    while [ -d. ]; do sleep 1; done
)

Рабочий каталог перестанет быть действительным (, и этот .больше не будет существовать )после завершения процесса. Однако, если новый процесс принимает этот pid, он не снова становится действительным. Если процесс завершается (, а pid остается неиспользованным )до cd, тогда cdзавершается ошибкой, и подоболочка завершает работу. Если pid был повторно -использован до cd, то это будет успешно, но «необязательные» проверки (спасибо LJKims ), надеюсь, поймают его. Итак, пока чеки фиксируют эту очень короткую возможную гонку, условия гонки нет. Для проверки вы можете использовать что-то вроде:

# shell 1
$ sleep 10 &
[1] 26453
$ cd /proc/26453

# shell 2 (must be bash for BASHPID)
for ((i=0; i<200000; ++i)) do ( if [ 26453 -eq $BASHPID ]; then echo "I am have the pid — sleeping 60"; sleep 60; echo "done sleeping"; fi ); done
I have the pid — sleeping 60

# back to shell 1
[ -d. ]; echo $?
1

Таким образом, он по-прежнему замечает, что интересующий его сон вышел, несмотря на новый pid 26453.

0
06.06.2019, 17:17
1 ответ

В Apache вы бы назвали это vhost. Nginx на самом деле не имеет этого, он называется серверным блоком.

Вы можете прочитать больше в документации по адресуhttps://www.nginx.com/resources/wiki/start/topics/examples/server_blocks/

В частности, вам нужно добавить это в свой конфиг:

  server {
    server_name myfun.fun;
    access_log logs/myfun.fun.access.log main;

    root /var/www/myfun.fun/htdocs;
  }

Конечно, вам необходимо зарегистрировать доменное имя myfun.fun и предоставить записи DNS, указывающие на ваш сервер nginx.

0
28.01.2020, 03:36

Теги

Похожие вопросы