nginx 配置参考文件名

nginx 配置参考文件名

我正在设置 nginx + uwsgi。我计划在不同的子域(例如 sub1.example.com、sub2.example.com)上运行多个具有不同设置的应用程序。

uwsgi 的优点之一是配置重写。例如,我可以为所有 uwsgi 应用程序创建一个框架,并使用 %n 来表示当前文件名(不带扩展名)。

$ cat > uwsgi.skel
[uwsgi]
...
socket = /var/run/uwsgi/%n.sock
...

现在我可以使用 ln -s 创建新的 uwsgi 实例。

$ 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 应用程序之间实现配置共享的最佳方法是什么?

答案1

事实证明,对于 nginx 来说这是不可能的。

相关内容