Назад | Перейти на главную страницу

Nginx: значение синтаксиса скобок?

Используя Nginx на FreeBSD, интересно, в чем разница между

events {
    worker_connections 200;
}

и просто worker_connections 200; сам по себе?

Или

server {
    listen 80;
    location / {
        return 301 https://$host$request_uri;
    }
}

против

server {
    listen       80;
    return 301 https://$host$request_uri;
    location /two {
        return 301 https://something else?;
    }
}

Я видел их использование на различных примерах. Они взаимозаменяемы и отличаются только объемом?
Могу я опустить http родительский блок, и только server блоки например?

Спасибо!

О, и конкретный файл, который я редактировал, /usr/local/etc/nginx/nginx.conf

Первый синтаксис более полезен, если вы собираетесь разместить в конфигурации несколько мест, что было бы типично. Синтаксис два предназначен только для случаев, когда у вас есть простой сервер, возвращающий перенаправление или подобное. Оба ваших примера будут делать то же самое.

Обновить Ваша обновленная вторая конфигурация, вероятно, никогда не выполнит блок «location two» из-за возврата на более высоком уровне. Вам также нужны кавычки вокруг URL-адреса. Вы, наверное, захотите чего-то большего

server {
  server_name example.com;
  listen       80;
  location / {
    return 301 https://$host$request_uri;
  }
  location /two {
    return 301 https://something else?;
  }
}