Дефолтный конфиг: ссылка на дефолтный конфиг
location = /index.html { ... }
location /images/ { ... }
location ^~ /assets/ { ... }
location ~ ^/assets/.*\.php$ { ... }
return / rewrite / try_files:
location / {
# "Уходи. Вот ответ"
return 200 "Hello!";
}
location / {
# "Подожди, ты идёшь нетуда"
rewrite ...;
}
location / {
# "Сначала проверю, есть ли такой файл..."
try_files ...;
}
# HTTP-код:
return 404;
# Редирект:
return 301 https://...;
# Текст:
return 200 "Hello";
location /kaka/bobo/ {
root /home/projects/projects/node/public/main/arch;
try_files /test.html =404;
}
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 с одним и тем же портом. 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