Я настраиваю nginx + uwsgi. Я планирую иметь несколько приложений с разными настройками на разных поддоменах (например, sub1.example.com, sub2.example.com).
Одна из приятных вещей в uwsgi - переписывание конфигурации. Например, я могу создать скелет для всех приложений uwsgi и использовать% n для представления текущего имени файла (без расширения).
$ cat > uwsgi.skel
[uwsgi]
...
socket = /var/run/uwsgi/%n.sock
...
Теперь я могу просто создавать новые экземпляры uwsgi, используя ln -s.
$ ln -s /etc/uwsgi/conf/sub1.example.com.ini /etc/uwsgi/conf/uwsgi.skel
$ ln -s /etc/uwsgi/conf/sub2.example.com.ini /etc/uwsgi/conf/uwsgi.skel
Конфигурация nginx для серверов будет точно такой же, КРОМЕ для доменного имени. Я хотел бы сделать что-то вроде этого:
cat > /etc/nginx/sites-available/app.skel
server {
listen 80;
server_name $file_name;
location / { try_files $uri @app }
location @app {
include uwsgi_params;
uwsgi_pass unix://var/run/uwsgi/$file_name.sock
}
}
$ ln -s /etc/nginx/sites-enabled/sub1.example.com /etc/nginx/sites-available/app.skel
$ ln -s /etc/nginx/sites-enabled/sub2.example.com /etc/nginx/sites-available/app.skel
Есть ли способ сделать замену в nginx аналогично тому, что доступно с uwsgi? Каков наилучший способ обеспечить совместное использование конфигурации приложениями nginx?