加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > Nginx > 正文

node.js-代理nginx Express-静态文件上的404

发布时间:2020-12-13 20:54:39 所属栏目:Nginx 来源:网络整理
导读:当我从服务器ip:port浏览站点时,expressjs应用程序的静态文件可以正常工作,但是当该应用程序从nginx提供服务时,静态文件会显示404.这是我的nginx conf: upstream project { server localhost:6546;}server { listen 80; server_name example.com; access_l

当我从服务器ip:port浏览站点时,expressjs应用程序的静态文件可以正常工作,但是当该应用程序从nginx提供服务时,静态文件会显示404.这是我的nginx conf:

upstream project {
  server localhost:6546;
}

server {
  listen 80;
  server_name example.com;
  access_log  /var/log/nginx/example.com_access.log;
  error_log   /var/log/nginx/example.com_error.log;

  location / {
    proxy_pass http://project/;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection 'upgrade';
    proxy_set_header Host $host;
    proxy_cache_bypass $http_upgrade;
  }
  location ~* .(css|js|gif|jpe?g|png)${
    expires 168h;

  }

这是我的expressjs静态代码:

app.enable('trust proxy');
app.use(favicon(__dirname + '/public/favicon.ico'));
app.use(express.static(__dirname + '/public'));
app.set('view engine','ejs');
if (app.get('env') === 'production') {
    app.set('view cache',true);
}
最佳答案
尽管express.js通过某些连接中间件内置了静态文件处理功能,但您绝对不要使用它. Nginx可以更好地处理静态文件,并可以防止对非动态内容的请求阻塞节点进程.这是执行此操作的示例:

http {
    ...
    server {
        ...
        location ~ ^/(images/|img/|javascript/|js/|css/|stylesheets/|flash/|media/|static/|robots.txt|humans.txt|favicon.ico) {
          root /home/ubuntu/expressapp/public;
          access_log off;
          expires max;
        }
        ...
    }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读