我实际上有这个工作,但我想知道我是否以最有效的方式这样做,或者我是否可以对我的 conf 文件进行任何改进。这是我正在尝试做的事情:
- 如果从根请求任何文件,我们应该始终提供“index.html”。不应访问其他文件,并且请求其他任何文件都应视为您请求“index.html”。目前我正在使用重写,但重定向也可以,而且可能更可取。
- 可以请求“/css”或“/js”下的任何文件,并且从那些不存在的目录中请求文件应返回 404。
这是我当前的工作 conf 文件:
server {
listen 80;
server_name www.example.com;
client_max_body_size 50M;
root /var/www/mysite;
location = /index.html {
}
# map everything in base dir to one file
location ~ ^/[^/]*$ {
rewrite ^/[^/]*$ /index.html;
}
location ~ ^/css/ {
}
location ~ ^/js/ {
}
}
更新
我的最终 conf 文件在负载测试下速度更快,并且比原始文件更简单,如下所示:
server {
listen 80;
server_name example.com;
root /var/www/register;
location = /index.html {
}
# Default location, request will fallback here if none other
# location block matches
location / {
rewrite ^.*$ /index.html redirect; # 'root' location '/'
}
location /css/ {
}
location /js/ {
}
}