我刚刚开始学习 Web 开发和服务器管理,我在 Raspberry Pi 上设置了一个简单的 nginx Web 服务器。目前,我的服务器仅从一个目录提供文件/srv/http/nginx
。
我希望能够做的是进行设置,以便一个 urlpi.local/blog
转到/srv/http/pelican/output
,而另一个 urlpi.local/something.html
转到原始目录。
我知道我应该location
在 nginx 配置中使用块,但我似乎无法让它们工作。我现在有的是:
server {
listen 80;
server_name localhost;
index index index.html index.php;
location / {
root /srv/http/nginx;
}
location /blog {
root /srv/http/pelican/output;
}
}
但是,当我转到时pi.local/blog
,我收到类似这样的错误/srv/http/pelican/output/blog no such file or directory
。我想我明白为什么会发生这种情况,但是创建我所描述的行为的正确方法是什么?
答案1
blog
您忘记重写 URL,因为如果不重写,Web 服务器确实会在文档根目录中查找:
location /blog { rewrite ^/blog(.*)$ /$1; root /srv/http/pelican/output; }