Вернуться назад

nginx2

Дефолтный конфиг: ссылка на дефолтный конфиг


   location = /index.html { ... }
   location /images/ { ... }
   location ^~ /assets/ { ... }
   location ~ ^/assets/.*\.php$ { ... }

return / rewrite / try_files:

location / {
   # "Уходи. Вот ответ"
   return 200 "Hello!";
}
location / {
   # "Подожди, ты идёшь нетуда"
   rewrite ...;
}
location / {
   # "Сначала проверю, есть ли такой файл..."
   try_files ...;
}

server {
   listen   80;
   server_name localhost;

   location / {
      root /home/mark/projects/node/my.mclang.ru/public/main;
      try_files $uri $uri/ =404;
   }
   location /assets/ {
      root   /home/mark/projects/node/my.mclang.ru/public;
      try_files $uri =404;
   }
   ...
}

server {
   listen   80;
   server_name localhost;

   # Здесь мы вынесли общую для обоих секций папку:
   root   /home/mark/projects/node/my.mclang.ru/public;
   location / {
      # Явно указываем index.html, потому что оригинальный URI изменён:
      try_files /main$uri /main$uri/index.html /main$uri/index.htm =404;
   }
   location /assets/ {
      try_files $uri =404;
   }
   ...
}

А можно сделать вот так:

server {
   listen   80;
   server_name localhost;

   # Здесь мы вынесли общую для обоих секций папку:
   root   /home/mark/projects/node/my.mclang.ru/public;
   location / {
      # Переопределяем root целиком, чтобы не менять оригинальный URI
      root   /home/mark/projects/node/my.mclang.ru/public/main;
      index index.html index.htm;  # явное указание не обязательно; index.html
      try_files $uri $uri/ =404;
   }
   location /assets/ {
      try_files $uri =404;
   }
   ...
}

Две секции server

Можно указать две секции server с одним и тем же портом. Nginx сначала смотрит порт, а потом - Host header. Если пользователь ввёл IP-адрес вместо домена и ни один домен не совпал, Nginx отдаст первый server-блок.

server {
   listen   80;
   server_name mysite1.ru;

   root /var/www/site1;
   ...
}
server {
   listen   80;
   server_name mysite2.ru;

   root /var/www/site2;
   ...
}


    lala