Ngnix使用alias实现子目录配置

我以前在Ngnix上分别把/home/www和/home/ssl目录给分配http和https子域名,只需要在Nginx配置里不同的server下指定不同的域名对应不同的root即可。

然后我用ln -s把这两个目录链到Dropbox的同步目录下,配置crontab -e让Dropbox每天同步两次整个网站的内容到服务器,参见:利用Dropbox备份/恢复个人VPS

最近遇到的问题是有时需要传比较大的文件到服务器上让别人下载,默认情况下这些大文件也会被Dropbox同步到服务器,自已本地的Dropbox目录也会同步这些内容下来,可能本地还有多台电脑多个备份,这样的结果是浪费空间和同步时间。

通过搜索找到了一些解决思路,比如从这里知道alias可以跳出root的限制,然后我把原来下载目录/home/www/down下的所有内容移到/home/down目录下,Nginx配置里加下面几行,这样再下载时就跳出root从lias指定的目录下载,Dropbox也不会再同步这些大文件了:
location /down/ {
alias /home/down/;
}

目前还碰到的另一个问题时,如果在/home/down/下放图片或php文件,通过下载域名访问这些图片或php会说文件找不到,如果放html文件则没有问题。

Tags:

Leave a Reply