我刚刚开始玩nginx + uwsgi,我试图弄清楚如何使用别名来提供robots.txt。以下是我目前无法正常工作的配置:
http {
server {
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:9090;
}
location /static {
root /Users/dave/PycharmProjects/nginx_test/static;
}
location = /robots.txt {
alias /Users/dave/PycharmProjects/nginx_test/static/robots.txt;
}
}
}
基本上,我的简单测试应用是一个Flask应用,应该使用Flask路由来针对/*
提供请求,而nginx应该提供/static/*
下的静态文件,但当然robots.txt应该是可访问的通过/robots.txt
。
在/robots.txt
按预期工作时,为什么我无法直接访问/static/robots.txt
?
答案 0 :(得分:0)
robots.txt
文件到底在哪里?如果它在/Users/dave/PycharmProjects/nginx_test/static/robots.txt
中,那么您的root
指令和alias
指令都是错误的。
以root
开头的地点的正确/static/...
指令是:
location /static {
root /Users/dave/PycharmProjects/nginx_test;
}
将URI附加到文档根目录以生成完整路径名。
在location = /robots.txt
的情况下,不需要别名,只添加最后一个目录元素以形成正确的路径名:
location = /robots.txt {
root /Users/dave/PycharmProjects/nginx_test/static;
}