CentOS (Linux) / Nginx 下给网站添加虚拟目录
分类 网站技术/村民张先生 发布于 2015-03-27 04:08
案例:A、B、C三个站点放置在同一台服务器上,现在需要为三个站点的图片附件目录添加CDN服务,且仅使用一个专用的域名 cdn.xxx.com 。
首先,我们要在服务器上按常规方法添加一个站点 cdn.xxx.com ;
接下为其添加虚拟目录,分别指向A、B、C三个站点的附件目录。有两种方法:
方法一(推荐):使用Linux的软链接。SSH登录到服务器,执行以下命令:
ln -s /A站绝对路径/A站附件目录 /CDN站点绝对路径/A站虚拟目录名(自定义,CDN域名下使用);
假设 A站的附件目录路径 为 /home/wwwroot/a/upload ,CDN站点路径为 /home/wwwroot/a/cdn ,需要使用 cdn.xxx.com/a 去访问A站的附件目录,可执行:
ln -s /home/wwwroot/a/upload /home/wwwroot/a/cdn/a;
B、C站同样的方法,重复操作即可。
怎样取消/删除虚拟目录?直接使用FTP或其它文件管理工具、SSH等登录上去删除该虚拟目录即可。
方法二:使用Nginx的 location alias :
在Nginx配置文件中 cdn.xxx.com 的 server 段中加入以下代码。
location /a/ {
alias /home/wwwroot/a/upload;
}
location /b/ {
alias /home/wwwroot/b/upload;
}
location /c/ {
alias /home/wwwroot/c/upload;
}
注意:此方法在某些特定情况下可能异常。经测试,在 LuManager 管理面板中,添加此代码的同时若设置了“浏览器缓存过期时间”,会造成此代码无效。
欢迎谈谈你的看法(无须登录) *正文中请勿包含"http://"否则将被拦截