Articles of express

Nginx无法从Node / Express应用程序发送完整文件

发送大文件(1.5GB)到连接速度<2MBps的客户端会导致浏览器只接收1.08gb的数据,但相信下载完成。 更快速的连接可以接收完整的1.5GB文件。 我的Express.js应用程序计算出哪个文件发送并response#download方法: app.get('/download-the-big-file', function(request, response) { var file = { name: 'awesome.file', path: '/files/123-awesome.file' }; response.header("X-Accel-Redirect: " + file.path); response.download(file.path, file.name); }); 请注意,我将X-Accel-Redirect头设置为利用NginxXsendfile 我的Nginxconfiguration: server { client_max_body_size 2g; server_name localhost; location / { proxy_pass http://127.0.0.1:8000/; } location /files { root /media/storage; internal; } }

Heroku上的Node.js + SSL。 SSL由Nginx或Node.js处理?

我目前正在使用 Express 2.x Node 0.8.x 我必须通过吗? key和cert参数express.createServer()通过Node.js处理SSL? 或者Heroku上的Nginx处理SSL?

ExpressJS – Elastic Beanstalk 502错误的网关

我正在Amazon Elastic Beanstalk上运行Express.js应用程序,并且我的环境已成功创build,但是当我通过Amazon创build的URL访问我的环境时,收到502 Bad Gateway nginx/1.6.2错误。 虽然我已经阅读了StackOverflow的其他资源,build议我将我的主文件从server.js重命名为main.js ,并将该port设置为bin/www文件夹,但我觉得这不是我的应用程序的解决scheme。 我运行node server.js ,这是我相信Elastic Beanstalk运行的命令,它不起作用,(错误消息): node server.js events.js:72 throw er; // Unhandled 'error' event ^ Error: failed to connect to [undefined:27017] 因为我在.env文件中设置了ENVvariables,所以唯一可以运行我的服务器的方法是使用工头。 这使我认为502错误是Elastic Beanstalk不能理解variables,从而导致服务器失败的结果。 任何人都可以确认,我在正确的path或这个问题真的,因为我的主文件被命名为server.js而不是在bin/www文件夹? 这是我的server.js文件中的代码: //Load express var express = require('express'); var app = express(); var router = express.Router(); // get an instance of the router var […]

configurationnginx直接从node.js express站点的公共文件夹中获取js和css

我在端口3000上获得了node.js express站点。 它被configuration为使用nginx。 它通过nginx运行良好,直到我决定configurationnginx直接从公用文件夹获取css,js和图像文件没有node.js express: /etc/nginx/sites-enabled# cat myDomain.com.public server { listen 80; server_name myDomain.com; access_log /var/log/nginx/myDomain.com.access.log; location / { proxy_pass http://127.0.0.1:3000/; } location ~ ^/(images/|img/|javascript/|js/|css/|stylesheets/|flash/|media/|static/|robots.txt|humans.txt|favicon.ico) { root /root/pathToNodeJsExpressSiteFolder/public; access_log off; expires max; } } 但是现在这个网站没有css和js。 它返回403 forbidden请求他们: style.css /stylesheets GET 403 Forbidden 我做错了什么?

Express.js(Node.js):静态文件服务如何真正起作用?

我认为用Express来提供静态文件(html,mov,css,jpg等)需要在nginx中进行一些攻击。 但似乎静态文件“正常”与Express。 没有特别的东西是必需的。 Express静态文件服务如何真正起作用? 为什么有些人主张使用nginx的静态文件? 这一定有一个很好的理由。 (例如: https : //gist.github.com/joemccann/644282 ) 而且,当下载一个静态文件时,Node.js事件队列是否被阻塞? 我想不是,但为什么不呢?

从子文件夹服务Express.JS应用程序

我使用nginx来为同一个域下的静态html网站和expressjs应用程序提供服务。 我的nginxconfiguration如下所示: location / { try_files $uri $uri/ /index.html; autoindex off; root /var/www/example.com/static/; } location /admin { proxy_pass http://localhost:3007/; proxy_set_header Host $host; proxy_buffering off; autoindex off; } 我能够访问我的应用程序在端口3007上运行,如果我访问example.com/admin,所以似乎我的app.get('/', routes.index); 正在工作,但我有一些麻烦让我的其他路线工作。 例如: app.get('/admin/test', function(req, res) { console.log("test!") }); 如果我尝试访问example.com/admin/test我将只看到根据我的日志Cannot GET //test和404: GET //test 404 11ms 如果我改变/testing路线是同样的问题。 任何指针有什么问题在那里。 我还没有find相对于它们被挂载到的基本path(/ admin)的路线。 谢谢!

Nginx – 在离开安全页面时将HTTPSredirect回HTTP

我有一个Node.js应用程序前面的Nginx。 我已经build立了这样的url,如果它有/帐户,它会redirect到HTTPS。 我的问题是 – 如何设置,以便如果用户离开/帐户URL(点击链接到主页),它会被发回到HTTP? 这是我的ngnix.conf: worker_processes 1; error_log logs/error.log; pid logs/nginx.pid; events { worker_connections 128; } http { include mime.types; default_type application/octet-stream; sendfile on; server_tokens off; #keepalive_timeout 0; keepalive_timeout 65; tcp_nodelay on; proxy_buffer_size 128k; proxy_buffers 4 256k; proxy_busy_buffers_size 256k; gzip on; server { listen 80; server_name localhost; location / { proxy_set_header x-path $uri; proxy_set_header […]

NGINX作为Node.js的代理

我在NGINX服务器后面使用NODE.js,这是我的Nginxconfiguration: upstream example.it { server 127.0.0.1:8000; } server { server_name www.example.it; location / { proxy_pass http://example.it; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } 所有的作品都很好,请求从nginx正确地发送到节点,但我看到从Express.js生成的日志文件中的问题。 问题是, 所有的请求被保存为127.0.0.1,为什么? 我没有看到任何删除主机(谁提出请求的真正的IP)。 谢谢

将从Nginx到Socket.io的Websocketstream量(不使用SSL)

截至昨天nginx开始支持websocket连接,因此我试图让我的nginx-nodejs-socket.io应用程序没有harproxy等工作(虽然没有太多的运气)。 我想要达到的是nginx只发送websocket连接请求到支持的服务器,或websocket服务器,socket.io更确切,而在同一时间nginx将服务的PHP文件,所有的静态内容, 包括HTML文件 。我不想快递服务的静态内容(如果这是可能的话)。 这是我的nginx.conf #user nobody; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; #log_format main '$remote_addr – $remote_user [$time_local] "$request" ' # '$status $body_bytes_sent "$http_referer" ' # '"$http_user_agent" "$http_x_forwarded_for"'; #access_log logs/access.log main; sendfile on; #tcp_nopush on; #keepalive_timeout 0; […]

生产中的Node.js永远连接的vhosts / nginx替代?

我主要使用node.js作为我的项目,我使用nodemon进行开发并forever生产。 我通常把我的项目分解成虚拟主机,所以我的结构可能是这样的: bootstrap.js apps/ admin/ front/ api/ 和我的bootstrap.js看起来像这样: // Get Express var express = require('express'); // Create express server var app = express.createServer(); // Configure Development Environment app.configure('development', function() { //app.use(express.vhost('localhost', require('./apps/front'))); app.use(express.vhost('localhost', require('./apps/admin'))); app.use(express.vhost('localhost', require('./apps/api'))); app.listen(3000); }); // Configure Production Environment app.configure('production', function() { app.use(express.vhost('example.com', require('./apps/front'))); app.use(express.vhost('admin.example.com', require('./apps/admin'))); app.use(express.vhost('api.example.com', require('./apps/api'))); app.listen(80); }); 当我想开始我的应用程序,我forever start […]