Вы можете переместить общие части в другой файл конфигурации и include
из обоих контекстов сервера.Это должно работать:
server {
listen 80;
server_name server1.example;
...
include /etc/nginx/include.d/your-common-stuff.conf;
}
server {
listen 80;
server_name another-one.example;
...
include /etc/nginx/include.d/your-common-stuff.conf;
}
Редактировать: Вот пример, который фактически скопирован с моего работающего сервера.Я настраиваю свои основные настройки сервера в /etc/nginx/sites-enabled
(обычные вещи для nginx в Ubuntu / Debian).Например, файл конфигурации моего основного сервера bunkus.org
- /etc/nginx/sites-enabled
, и он выглядит следующим образом:
server {
listen 80 default_server;
listen [2a01:4f8:120:3105::101:1]:80 default_server;
include /etc/nginx/include.d/all-common;
include /etc/nginx/include.d/bunkus.org-common;
include /etc/nginx/include.d/bunkus.org-80;
}
server {
listen 443 default_server;
listen [2a01:4f8:120:3105::101:1]:443 default_server;
include /etc/nginx/include.d/all-common;
include /etc/nginx/include.d/ssl-common;
include /etc/nginx/include.d/bunkus.org-common;
include /etc/nginx/include.d/bunkus.org-443;
}
В качестве примера вот файл /etc/nginx/include.d/all-common
, включенный в оба server
контекста:
index index.html index.htm index.php .dirindex.php;
try_files $uri $uri/ =404;
location ~ /\.ht {
deny all;
}
location = /favicon.ico {
log_not_found off;
access_log off;
}
location ~ /(README|ChangeLog)$ {
types { }
default_type text/plain;
}