Sediakan projek Node untuk ujian dalam talian Apabila menggunakan proksi terbalik nginx, ralat sumber statik 403 berlaku, tetapi konfigurasi yang sama dalam talian menghasilkan ralat seperti berikut:
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;
}
}
Mengikuti gesaan, saya menetapkan 777 kebenaran untuk semua fail dalam direktori, tetapi masih mendapat ralat 403
Saya dapati sebab kerana ia dikendalikan di bawah kebenaran root, mungkin nginx tidak mempunyai keizinan kepada direktori Oleh itu, pelayan peribadi tidak menetapkan pengguna lain, jadi buka baris pertama dalam nginx.conf dan tukar pengguna tiada sesiapa kepada root pengguna supaya nginx boleh Jalankan dengan keistimewaan root.
Ini sememangnya bukan penyelesaian yang baik Saya mempunyai pemahaman umum tentang sebab 403. Proses nginx tidak mempunyai kebenaran yang berkaitan untuk folder sumber statik semasa Anda perlu menetapkan kebenaran nginx secara berasingan untuk direktori ini penyelesaian yang baik
Sebabnya ialah arahan
alias
telah digunakan secara salah.Dokumen Rasmi
Cuba konfigurasi berikut