Nginx的 – 根与别名,为单个文件提供服务?

几个小时后,让nginx提供robots.txt等单个文件(提示:每次清除浏览器caching ),最后我用两种不同的方式,一种使用alias指令,一种使用root指令,如下所示:

 location /robots.txt { alias /home/www/static/robots.txt; } location /robots.txt { root /home/www/static/; } 

两者有什么function上的区别? 还是安全问题? 与其他指令有冲突吗? (在另一个/静态位置都显得很好)。 或者有什么理由select一个呢?

注 – 我没有在同一时间使用两个:)而是我尝试了每一个,一次一个,都工作。 我不是问他们如何在同一个文件中一起交互,但哪一个会更好用。

那么,这两个指令的function稍有不同,因为在后一种情况下不使用精确匹配。 因此,/ /robots.txt1111也会与您的第二个位置相匹配。
location =/robots.txt { root /home/www/static/; } location =/robots.txt { root /home/www/static/; }是您的第一个指令的确切function等同。

是的,有一个区别:用“别名”你可以..别名到另一个文件名,如

 location /robots.txt { alias /home/www/static/any-filename.txt; } 

 location /robots.txt { root /home/www/static/; } 

强迫你在服务器上命名你的文件robots.txt。 我使用第一个选项,因为我喜欢将我的服务器上的robots文件命名为tld.domain.subdomain-robots.txt; 例如

 location /robots.txt { alias /home/www/static/ch.notex.static-robots.txt; }