因此,我尝试设置一个默认的 nginx 配置文件,该文件可以部署到多个 docker 镜像中,每个容器中的网站配置都不同。当前设置如下:
server {
listen 80 default_server;
root /var/www/;
index index.php index.html;
server_name localhost;
include php5-fpm.conf;
location / {
try_files $uri $uri/ /index.php?q=$request_uri;
}
location /status {
stub_status on;
access_log off;
allow 127.0.0.1;
deny all;
}
}
问题是它不适用于使用 index.htm 或 index.html 的静态网站
我可以像下面这样编辑位置部分,然后网站就可以正常工作了。有没有办法让 nginx 使用通配符,所以 index.* 它会使用它找到的任何索引文件?index.* 本身不起作用,所以不确定需要添加/删除什么...
location / {
try_files $uri /index.htm?q=$request_uri;
}
答案1
您的注意力集中到了错误的部分try_files
。
与您想要的内容相关的部分是$uri/
,带有尾部斜杠,您似乎已将其删除。此位导致 nginx 尝试index
指令中列出的所有文件。
您应该将这部分放回去try_files
,然后编辑index
指令以包含您想要的文件名。