我正在提供包含资源的静态页面。不幸的是,我无法打开图像,而 JS 和 CSS 文件则运行良好。
我只是403 (Forbidden)
在尝试访问文件时收到消息。
目录层次:
/var/www/servers/new.test.com
index.html
static/
img/
css/
js/
配置:
server {
listen 80;
server_name area1.test.com;
access_log /var/log/nginx/new_test.access.log;
error_log /var/log/nginx/new_test.error.log;
root /var/www/servers/new.test.com;
index index.html index.htm index.php;
charset utf-8;
location / {
try_files $uri $uri/ =404;
}
# Media: images, icons, video, audio, HTC
location ~* \.(?:jpg|jpeg|gif|png|ico|cur|gz|svg|svgz|mp4|ogg|ogv|webm|htc)$ {
expires 1m;
access_log off;
add_header Cache-Control "public";
}
# CSS and Javascript
location ~* \.(?:css|js)$ {
expires 1m;
access_log off;
add_header Cache-Control "public";
}
}
请忽略过期时间。
答案1
文件的权限不允许 Web 服务器读取文件。很可能是文件的所有者/组与 Web 服务器用户/组不匹配,其他人无权读取文件。
答案2
我遇到了同样的问题,对我来说,这是 SELinux 权限问题。已修复...
chcon -t httpd_sys_content_t /path/to/problematic/file(s)