【发布时间】:2010-11-05 21:01:45
【问题描述】:
我有一个包含 FastCGI 项目的目录,更具体地说是同一项目的不同版本。例如,ver1 和 ver2 目录位于 /some/dir/project/,我希望它们分别是 ver1.project.example.com 和 ver2.project.example.com。
在不为每个版本创建不同配置并假设可以动态添加新版本的情况下,我应该如何使用 nginx?
【问题讨论】:
我有一个包含 FastCGI 项目的目录,更具体地说是同一项目的不同版本。例如,ver1 和 ver2 目录位于 /some/dir/project/,我希望它们分别是 ver1.project.example.com 和 ver2.project.example.com。
在不为每个版本创建不同配置并假设可以动态添加新版本的情况下,我应该如何使用 nginx?
【问题讨论】:
在/etc/nginx/sites-enabled/project:
server {
server_name ~^(?<version>\w+)\.project\.example\.com;
root /some/dir/project/$version;
include fastcgi_params;
}
在/some/dir/project/version99 添加新版本目录将自动使其在version99.project.example.com 可用。
【讨论】:
关于多配置问题,可以使用nginx包含文件include fastcgi_params;来解决。我不知道可变服务器和套接字位置,但是,您可能应该为此使用多个子句。为了让事情变得更快,你可以写add-fcgi-subdomain.sh之类的东西。使用 nginx 配置模板和 shell 脚本从 /var/www 生成它们后,我解决了这个问题。
【讨论】: