nginx nodejs express反向代理问题
1.我有一个nodejs程序,使用express开发,在本地测试环境是直接使用express做静态资源和路由转发的
2.现在迁移到生产环境,有nginx 做反向代理,负责静态资源
问题:
问题1.配置好之后我发现静态资源都是404,然后我在nginx的配置文件里面加了
location ~ \.(css)$ {
expires 2d;
root /app/www/nodejs-blog-demo/public;
}
location ~ \.(js)$ {
expires 2d;
root /app/www/nodejs-blog-demo/public;
}
之后,起码可以访问静态资源了,但是如果我的静态资源是多级目录的话,这样的匹配规则会很繁复,请问大家是怎么处理的呢?
问题2.我的nginx是这么配的反向代理,3000是nodejs,不过现在处理/目录可以访问,但是我的/admin/aaa这样的路径就提示404
location / {
proxy_pass http://127.0.0.1:3000;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
我想可能是我是用nodejs做的路由处理导致的,但是不明白怎么解决
我的nodejs路由如下
module.exports = function (app) {
app.use('/admin', router);
}
router.get('/aaa', auth.requireLogin, function (req, res, next) {})
谢谢.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
express做静态路由不是很方便的吗,我最近也是直接把本地博客迁移到了服务器上,我的静态路由还是用的express
我刚做了这个,给你做个参考吧。。不知道能不能帮你解决,或者可能你已经解决了。
前提
nodejs项目: 监听3000端口,express自己做路由,静态服务。
目标:访问80端口,nginx做端口转发。
nginx 反向代理配置
我只是做了些简单配置,因为我也是初学。
在
/etc/nginx/sites-availabe/
下添加一个配置文件,比如mySite
。这里可以直接copy一份default。在mySite下配置站点信息。
然后在
/etc/nginx/sites-enabled/
下新建一个symbol link到刚才的配置文件。nginx reload就可以了。
另外你的问题2
我也是遇到这个问题,我的解决方法是在
location / {...}
里,加了try_files $uri $uri/ =404;
,我把这行注释了就好了。