Tag: 数字海洋

在单个服务器上运行多个节点实例

我买了一个DigitalOcean液滴,我想用来托pipe几个网站。 所有这些网站在Node.js中都有服务器。 我的液滴的结构是每个网站的目录和每个目录中的文件server.js 。 当我想在网上放一个网站时,我在正确的目录下运行node server.js 。 这将创build在端口80上运行的服务器的一个实例。 与此同时,我有几个域名,我在GoDaddy购买:site1.com,site2.com等 我的问题是:我应该怎么做,同时运行所有的节点实例,而域redirect到正确的服务器? 一个解决scheme,我不必创build一个文件,处理所有传入的请求到服务器将是首选(除非这是非常通用的,我不必每次添加一个新的网站时,我不得不修改)。 我想为每个网站使用不同的端口,但我不认为有可能将一个域site1.com:80redirect到ip_address:another_port。

Https和SSL问题与端口80

最近我刚开始使用https://为我的服务器,奇怪的是我可以打开,如果我明确键入“ https://www.example.com:80 ”,但将无法连接,如果我input“ https://www.example.com “。 我在Digital Ocean上使用Express 4框架来使用NodeJS。 我能做些什么来让人们正常访问我的网站? 他们第一次访问时点击“接受”也是正常的吗? 为什么其他https网站我不必这样做? 我正在使用RapidSSL。

在Digitalocean上从Heroku切换到Docker

我有一个生产网站,每月有150到200.000个独立访问者,而且这个网站正在快速增长。 我有一个DigitalOcean水滴(4GB内存和60GB固态硬盘)的MongoDB数据库(20GB的数据)主机, NodeJs服务器在Heroku上的2 x Web Standard-1X上运行。 对于客户端部分我使用AngularJs。 我的package.json包含大约100个模块。 而bower.json包含约65个模块。 几乎所有的媒体都是Amazon S3上的主机。 现在你知道我的堆栈,我有多个问题: 该网站提供了很多从mongodb数据库生成的页面,但数据很less发生变化。 谁可以caching这个HTML页面? 我想将我的应用程序部署到DigitalOcean,并保持部署git的简单性。 我已经尝试过Dokku,但看起来不太稳定,我想自己安装堆栈以更好地理解我在做什么。 所以我曾尝试像Distelli部署工具,但我从来没有设法实际上看到我的液滴IP服务器。 我猜它必须是nginx相关的… 我已经尝试像Wercker一样的持续集成来构builddocker映像,将它们推送到Tutum并进行部署。 但build设时间和部署时间都很长,如8〜10分钟… 这是我的Dockerfile,需要花费大量的时间来构build,我怎么能加快速度呢? FROM node:latest RUN mkdir /src WORKDIR /src ADD . /src RUN npm install RUN npm install -g gulp RUN gulp default ENV NODE_ENV production ENV PORT 3000 EXPOSE 3000 CMD node server.js 那就是我现在的地方。 你对这种堆栈有什么build议? […]

数字海洋上的访问节点应用程序 – 无法访问此网站

我无法访问我的数字海洋节点js应用程序。 我已经SSH'ed,从Git克隆我的节点应用程序,npm安装,并成功地启动应用程序的液滴,但我得到错误 此网站无法联系到 数字海洋文档说,你可以访问你的公共网站,只需转到<your website's ip>:<port> : 我做了这个67.205.185.63:9000/ (我的应用程序运行在9000端口,你可以看到): root @ nodejs-512mb-nyc1-01:〜/ demos#npm start live-demos@1.0.0 start / root / demos 节点app.js 演示正在监听9000端口 我还应该如何访问我的节点应用程序? var express = require('express'); var bodyParser = require('body-parser'); var app = express(); var port = process.env.PORT || 9000; … app.listen(port, function () { console.log('Demos is listening on port ' + port); });

在DigitalOcean Ubuntu 14.04中,Webshot在meteor上失败

我正在使用这个代码来生成pdf: let fileUri = process.env.PWD + '/storage/orders-pdf/' + fileName; // Commence Webshot webshot(html_string, fileUri, options, function(error) { fs.readFile(fileUri, function (err, data) { if (err) { return console.log(err); } fs.unlinkSync(fileUri); fut.return(data); }); }); let pdfData = fut.wait(); 但它会引发以下错误: { [Error: ENOENT, open '/opt/holi/storage/orders-pdf/Attributes.pdf'] errno: 34, code: 'ENOENT', path: '/opt/holi/storage/orders-pdf/Attributes.pdf' } 试图使用NPM包https://github.com/brenden/node-webshot然后代码在本地主机完美工作,但在服务器上失败,并引发此错误: 编辑: 即使没有运行webshot: fs.readFile(fileUri, function (err, […]

节点请求某个站点大部分时间都会导致ETIMEDOUT错误

眼镜 以下是我正在运行的系统的一些背景信息: Ubuntu v 14.04 节点v4.4.0 节点request模块v2.69.0 所有这些都在位于纽约中心的DigitalOcean液滴/服务器上进行。 问题描述 所以我运行下面的js文件: var request = require('request'); var url = 'http://www.supremenewyork.com/'; request(url, function(err, res, body) { if (err) { console.log(err); return; } console.log('body:', body); }); 在我的液滴上。 大概70-80%的时间我尝试这个,现在每一次我尝试这个,我会得到像这样的ETIMEDOUT错误: { [Error: connect ETIMEDOUT 52.6.25.180:80] code: 'ETIMEDOUT', errno: 'ETIMEDOUT', syscall: 'connect', address: '52.6.25.180', port: 80 } 值得注意的是,这些错误似乎是在“波涛”中出现的。 也就是说,我会设法在一段时间内得到一些请求,然后是一串ETIMEDOUT错误。 错误发生的频率比我能够通过大约3:1的错误成功率得到我的请求的次数要多得多。 在我自己的电脑上(运行OS X […]

如何将meteorjs项目部署到数字海洋?

如何部署MeteorJS项目到数字海洋VPS? CentOS x64 – 对它有好处? 或者我需要设置别的东西?