我尝试了很多不同的东西来使其工作并查看了一堆以前的Nginx配置指南,但我的网站一直给我404所有静态内容。以下是我的配置。
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name mywebsite.com www.mywebsite.com;
return 301 https://$server_name$request_uri;
}
proxy_cache_path /tmp/nginx levels=1:2 keys_zone=my_zone:10m inactive=60m;
proxy_cache_key "$scheme$request_method$host$request_uri";
server {
access_log off;
listen 443 ssl http2 default_server;
listen [::]:443 ssl http2 default_server;
include snippets/ssl-mywebsite.com.conf;
include snippets/ssl-params.conf;
location ~* \.(?:ico|css|js|gif|jpe?g|png)$ {
expires 30d;
add_header Vary Accept-Encoding;
access_log off;
}
# Pass requests for / to localhost:3000:
location / {
proxy_cache my_zone;
proxy_cache_bypass $http_cache_control;
add_header X-Proxy-Cache $upstream_cache_status;
include proxy_params;
proxy_ignore_headers X-Accel-Expires Expires Cache-Control;
proxy_ignore_headers Set-Cookie;
proxy_hide_header Set-Cookie;
proxy_hide_header X-powered-by;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://localhost:3000;
proxy_ssl_session_reuse off;
proxy_set_header Host $http_host;
proxy_redirect off;
}
}
对于更多背景,我的静态文件都存储在公共文件夹中,如:/www/Project/public/css/styles.css或/www/Project/public/images/myimage.jpg
如果我带走了位置〜*。(?:ico | css | js | gif ...),但该网站没有缓存,该网站有效。
有没有人知道发生了什么?
答案 0 :(得分:0)
想出来。
事实证明,我的根路径是错误的 - 相对于我的项目目录(我的app.js文件所在的位置),它应该与我文件系统上的绝对根目录相关。
E.g。它应该是/ home / mycomputerlogin / www / project / public /
所以在我的〜*。 第一行是 root / home / mycomputerlogin / www / project / public; 之后它运作良好。