Heim > Fragen und Antworten > Hauptteil
Stellen Sie das Node-Projekt für Online-Tests bereit. Bei Verwendung des Nginx-Reverse-Proxys tritt ein Fehler der statischen Ressource 403 auf, aber die gleiche Konfiguration führt online zu einem Fehler:
upstream nodeblog{
server 127.0.0.1:3000;
keepalive 65;
}
server {
listen 443;
ssl on;
server_name ;
ssl_certificate ;
ssl_certificate_key ;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ;
ssl_session_timeout 5m;
ssl_prefer_server_ciphers on;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-Nginx-Proxy true;
proxy_set_header Connection '';
proxy_pass http://nodeblog;
}
location ~ .*\.(css|js|jpg|png|gif)$ {
alias "/root/nodeApp/public/";
expires 3d;
}
}
Den Anweisungen folgend habe ich 777-Berechtigungen für alle Dateien im Verzeichnis festgelegt, aber es wurde immer noch der Fehler 403 angezeigt
巴扎黑2017-06-28 09:24:47
找到一个原因,因为是在root权限下操作的,可能是nginx没有该目录的权限.个人服务器因此也没有分配其他用户,所以打开nginx.conf中第一行user nobody修改为user root使得nginx以root权限运行.
这肯定不是好的解决方案,知识大致了解了,403的原因,nginx进程没有当前静态资源文件夹的相关权限,需要单独制定nginx对该目录的权限.
希望有好的解决方案
过去多啦不再A梦2017-06-28 09:24:47
原因是错误运用了alias
指令。
官方文档
If alias is used inside a location defined with a regular expression
then such regular expression should contain captures and alias should
refer to these captures (0.7.40)
http://nginx.org/r/alias
试下以下配置
location ~ .*\.(css|js|jpg|png|gif)$ {
alias "/root/nodeApp/public/$1";
expires 3d;
}