Articles of node.js

如何configuration我的nodejs应用程序只响应SSL连接?

我使用nginx和mongodb在ec2上运行了一个nodejs / express应用程序。 我正在运行一个8核心ec2实例,我有8个独立的nodejs应用程序运行在nginx前面。 现在,我只有一个服务器。 我们即将上线,并希望确保我们的服务器只响应SSL请求。 我想知道如何以及在哪里configurationSSL连接。 我将列出有序列表中的问题,并高度赞赏您在回答问题的全部或部分时是否可以参考问题编号。 这对我来说不仅容易,对于读这个线程的其他人也是如此。 他们来了: 我将不得不像verisign一样去CA来获得证书,对吗? 我的域名是通过godaddy注册的,我可以从他们那里获得SSL证书吗? 我是否需要在ec2实例上安装证书? 如果是的话,如果我必须添加另一个服务器的HA,我想使用弹性负载平衡会发生什么? 在这种情况下,我是否需要为每个ec2实例购买单独的证书? 有人可以指点我一些文档或教程,如何configurationSSL的Nginx? 一旦ssl打开,我如何确保所有非ssl连接自动redirect到ssl端点? 我可以轻松地通过nginx中的configuration条目吗? 任何帮助或指针在正确的方向非常感谢。 –su

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

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

用nginx的node.js,如何删除直接的ip:port access

我inheritance了一个node.js项目,我对平台/语言很陌生。 我inheritance的应用程序正在开发,所以这是一个正在进行的工作。 在当前状态下,它运行在7576端口,所以你可以这样访问它:server_ip:7576 我一直负责把这个“原型”放在一个现场服务器上,所以我的老板可以把它展示给投资者等,但我必须密码保护它。 所以我所做的就是让它在运行的服务器上运行。 然后我使用一个像这样的nginx虚拟主机: server { listen 80; auth_basic "Restricted"; auth_basic_user_file /usr/ssl/htpasswd; access_log /etc/nginx/logs/access/wip.mydomain.com.access.log; error_log /etc/nginx/logs/error/wip.mydomain.com.error.log; server_name wip.mydomain.com; location / { proxy_pass http://127.0.0.1:7576; root /var/app; expires 30d; #uncomment this is you want to name an index file: #index index.php index.html; access_log off; } location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|pdf|txt|tar|wav|bmp|rtf|js|flv|swf|html|htm)$ { root /var/app/public; } } ` 这完成了工作,我现在可以通过转到wip.mydomain.com访问我的应用程序 […]

Nodejs(sailsjs),NGINX和sails.io(socket.io)

我正在使用NGINX来处理我的Nodejs服务器,现在我想开始使用socket.io,在开始使用socket.io之前进行研究,我find了Sailsjs,我发现了现在正在使用的Sailsjs。 我遇到的问题是客户端无法通过socket.io或sails.io上的NGINX进行连接。 这是我当前APP的URLpath: https:// localhost / economy sails.io的url是: https://localhost/economy/assets/js/dependencies/sails.io.js 现在! 使用FileSeek我发现sails.js在“loadSocketIO.js”(node_modules \ sails \ lib \ hooks \ sockets \ lib)中使用“require(”socket.io“)”。 我编辑的文件说: var io = sails.io = sails.ws = SocketServer.listen(sails.hooks.http.server, { resource: 'economy', logger: { info: function (){} } }); 增加资源:“经济”,行。 然后在客户端我也是这样做的: var socket = io.connect('https://localhost/economy/socket.io', { resource: 'economy' }); 我一直在玩这个,并尝试不同的方式,如“经济/ socket.io”,完整的socket.iopath等 任何帮助,是一个很大的帮助! 我一直在努力一天,所以我想我会要求一些帮助:)

我服务http或http2?

背景 我一直在单个VPS上托pipe多个node.js应用程序一段时间,一切都很好。 我能够通过使用nginx将stream量路由到node.js应用所需的不同端口来实现。 升级到http2 随着最近对http2的推动 ,我一直试图通过启用http2来支持我的应用程序。 在nginx上,我可以按照 nginx 的指导进行操作。 问题 在进行基准testing的同时,在testing网站上使用http2时, 性能似乎没有提高 ,因为testing网站提取了47个主页请求。 http和http2的性能看起来类似。 理论 可能是由于nodejs服务http1而不是http2? 我必须在nginx和我的nodejs应用程序之间设置任何东西吗? 例如proxy_http_version: 2.0但是, proxy_http_version 2.0 似乎还没有可用 。 我的nodejs应用程序与快递服务,所以我真的得到一个http2连接或获得一个http连接呢? 当我使用一个http2指示符 ,它告诉我,该网站是通过指示蓝灯使用http2。 我必须使用molnarg的http2模块还是nginx http2模块是否足够? 希望有更多开发人员经验的人能够帮助我清楚这一点,希望其他许多开发人员。

PM2和Nginx:502错误的网关

我一直在尝试在全新的DO液滴上部署我的Node项目,但是我在使用PM2时遇到了一些问题。 我的步骤如下: Node上安装Droplet镜像(Ubuntu,Node v4.4.4) 全球安装PM2 设置Nginx来反向代理127.0.0.1:3000 克隆我的项目,并做了npm安装 我所得到的是Nginx抱怨502坏门。 如果我看看Nginx的error.log我得到这个: connect()失败(111:连接被拒绝),当连接到上游时,client: client.ip ,server: my.server ,request:“GET / HTTP / 1.1”,上游:“ http://127.0.0.1:3000/ “,主持人:” my.server “ PM2没有什么可说的。 pm2日志和状态都不在线 。 我尝试跳过PM2,只是做了npm开始工作完美。 我也尝试设置一个虚拟的Hello World应用程序,并使用PM2 – 它也工作。 所以这是目前我在哪里: 我的项目+ PM2:不起作用。 我的项目没有PM2:工作。 Hello World app + PM2:有效。 我真的不知道该从哪里出发..我可以跳过PM2并使用节点,但我确实需要PM2的function。 有任何想法吗?

增加nginx上的缓冲区超时大小

我有一个连接到cloudstack apis的nodejs程序。 在cloudstack上创build虚拟机需要将近20秒。 该程序在我的本地nodejs安装以及apigee云上工作正常。 但是,当我在客户的OPDK上部署相同的时候,Nginx会返回一个502 – Bad网关。 此链接http://www.nginxtips.com/502-bad-gateway-using-nginx/build议增加nginx.conf中的缓冲区和超时大小 http { … fastcgi_buffers 8 16k; fastcgi_buffer_size 32k; fastcgi_connect_timeout 300; fastcgi_send_timeout 300; fastcgi_read_timeout 300; … } build议的理想值是多less? Apigee云是什么? 问候,Girish

从子文件夹服务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写一个configuration文件,我得到这个错误: /etc/nginx/conf.d/mydomain.conf中的未知指令“proxy_http_version”:24 configuration文件位置: /etc/nginx/conf.d/mydomain.conf Nginx版本:我已经安装了nginx / 1.0.15。 这是我的configuration文件。 请帮我解决这个问题。 upstream node_app { server 127.0.0.1:3000; server 127.0.0.1:3001; } server { listen 80; server_name mydomain.com; # !!! handle static content requests and serve with nginx !!! # location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|pdf|txt|tar|wav|bmp|rtf|js|flv|swf|html|htm)$ { root /var/www/html/mydomain.com/public/; } # !!! handle dynamic content requests and serve with node defined in upstream […]