Articles of node.js

用于用户authenticationWeb应用程序的nginx代理cachingconfiguration

我有一个在节点+ express + passport + mongo数据库+ ejs的web应用程序,单个应用程序configuration为处理所有的子域。 我使用nginx作为代理服务器,我需要并且必须使用代理caching来减less节点服务器上的负载。 我有2个问题, 1.我需要configurationnginx代理caching,因为它应该为各个子域创build不同的caching。 2.对于login的用户内容会改变一点点。 我怎么能pipe理这个..? 请帮我解决。 提前致谢。 以下是configuration upstream backend_app_hosts { server localhost:3005 max_fails=0 fail_timeout=10s; server localhost:3006 max_fails=0 fail_timeout=10s; keepalive 64; } proxy_cache_path /var/www/cache levels=1:2 keys_zone=cache-1:8m max_size=1000m inactive=600m; server { listen 80 ; charset UTF-8; client_max_body_size 16M; keepalive_timeout 20; server_name *.domain.com; location / { proxy_redirect off; proxy_set_header X-Real-IP […]

间歇的ERR_INVALID_CHUNKED_ENCODING

我有一个Node.js应用程序在ELB实例后面的两个AWS实例中运行。 我偶尔会遇到错误,如ERR_INVALID_CHUNKED_ENCODING或ERR_CONTENT_LENGTH_MISMATCH。 在Mac和Chrome浏览器都可以看到这一点。 行为就好像浏览器在抛出错误时立即放弃连接。 这也发生在从Node.js应用程序提供的静态资产上。 这个问题有趣的是,它只是偶尔发生。 我已经清除浏览器caching和禁用开发工具的caching,但是这并没有解决问题。 另一个有趣的事情是,在没有ELB的情况下直接点击AWS不会产生错误。 我也尝试直接访问ELB(而不是通过在GoDaddy注册的域名),似乎也不会产生错误。 任何向正确的方向推动将是非常有益的。 谢谢。

使用Nginx nodejs应用程序需要运行test1domain.com/directory

我必须使用像http://test1domain.com/directory这样的url来运行nodejs应用程序: https://test1domain.com ==现场网站 https://test1domain.com/api1 == nodejs api https://test1domain.com/api2 == nodejs api 目前的网站和应用程序运行如下: https://test1domain.com ==现场网站 https://test1domain.com:8443 api1 == nodejs api https://test1domain.com:3000 api2 == nodejs api 请指教,这有可能吗?

我应该select语言节点还是Python来自动化AWS?

我一直在探索自动化AWS服务,哪种语言更适合于开始? Nodejs或Python? 我的问题 :开始使用node还是python会更好吗?

Nginx服务于node.js中的2个幽灵博客

我正在尝试使用nginxconfiguration运行Amazon linux的Amazon EC2实例,以在node.js中提供两个不同的ghost博客。 我的理解是,networkingstream量击中了ec2实例的公共IP,nginx正在侦听端口80,nginx的configuration文件反向代理每个域到每个博客的index.js文件正在侦听的端口。 我永远使用生产环境中运行两个index.js文件,但是当我开始两个域(domain1.com&domain2.com)显示相同的内容。 这似乎是开始第二个index.js覆盖/redirect到单个幽灵博客的stream量。 也许有些configuration可能有帮助: 主文件夹 ls ~ domain2.com node domain1.com Config.js for domain1.com cat ~/domain1.com/config.js production: { url: 'http://www.domain1.com/', mail: {}, database: { client: 'sqlite3', connection: { filename: path.join(__dirname, '/content/data/ghost.db') }, debug: false }, server: { host: '127.0.0.1', port: '2368' } }, Config.js for domain2.com cat ~/domain2.com/config.js production: { url: 'http://domain2.com/', mail: […]

在node / express服务器上重新安装godaddy证书?

从这里复制 我正在代表客户端查看服务器,并且想知道在这个示例中证书的实际来源和来源是什么: require('https').createServer({ key: fs.readFileSync('/path/to/something.key'), cert: fs.readFileSync('/path/to/something.crt'), }, app).listen(443); 我知道我应该添加到此结尾,包括我下载的godaddy证书包: ca: [fs.readFileSync('./ssl/bundle_01.crt', 'utf8'), fs.readFileSync('./ssl/bundle_02.crt', 'utf8')] 1)有没有想法,为什么在我的情况下,我有我的godaddy包文件中的3个证书? (gd_bundle-G2-g1.crt) 2)我的godaddy下载附带的其他文件是什么? (someHash.crt) 3)而且由于旧证书已经过期,我需要更换something.crt证书吗? 我到底用什么来取代它? 我是否需要生成新的密钥并发出新的csr请求? 然后我需要下载一个新的godaddy证书包? 我完全不熟悉这一点,并正在阅读其他Q和文章的圈子。 非常感谢!

提交后触发`git pull`部署应用程序

我有一个远程服务器(我自己)的git仓库。 我想确保在git push远程服务器之后,节点程序的一个新实例被拉到本地开发服务器中(然后, forever会收到更改并重新启动它)。 目前,我有一个钩子( post-receive ): unset GIT_DIR export PATH=$PATH:/usr/local/bin/ cd /home/www/node/deployed/node_modules/wonder-server git pull echo "POST COMMIT FINISHED" 但是,它带来了问题: 它期望在开发机器上安装模块,并使用正确的版本 我们还维护了一些我们也会更新的npm模块 这是一个很好的方法来解决这个问题吗? 或者,你能想出更好的办法吗?

在Apache 2.4服务器的子域上运行Node js应用程序

我正在尝试在端口8000上运行Node js应用程序,并将Apache 2.4.7代理服务器的子域添加到localhost上的该端口。 我可以使用一个虚拟主机,使用如下所示的启用站点的conf文件,将节点应用程序作为一个页面( http://example.com/nodeapp )提供: <VirtualHost *:80> ServerName example.com ServerAlias "www.example.com" DocumentRoot "/var/www/html" ProxyPass "/nodeapp" "http://localhost:8000/" </VirtualHost> 然而,我真正想要做的是节点应用程序运行在一个子域,如http://nodeapp.example.com ,这是我有麻烦的地方。 我已经尝试了一些不同的configuration与单个和多个VirtualHosts,但这是我现在的样子: <VirtualHost nodeapp.example.com:80> ServerName "nodeapp.example.com" # ProxyPreserveHost On ProxyPass "/" "http://localhost:8000/" # ProxyPassReverse "/" "http://localhost:8000/" </VirtualHost> <VirtualHost *:80> ServerName example.com ServerAlias "www.example.com" DocumentRoot "/var/www/html" </VirtualHost> 这是基于这里提出的问题: 使用Apache VirtualHost访问同一台服务器上的Node JS实例 但是,当我去的子域(我在GoDaddy上设置只是转发到同一个服务器的IP地址),我只是得到一个超时,如果我看在Apache错误日志中,我看到一些行,如: [Tue Mar 29 04:53:56.909467 2016] […]

使用pm2将节点0.12.x升级到nodejs 4.4.x

我使用PM2在生产环境中运行我的节点进程(在Ubuntu 14.04上)。 从节点0.12.x升级到nodejs 4.4.x后 ,运行节点(js)的命令从node更改为nodejs 。 我遵循节点资源分发安装说明中的说明。 curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash – sudo apt-get install -y nodejs 即使新版本使用命令nodejs ,PM2仍然要调用node 。 我用这样的sim链接replace节点二进制文件来攻击它: mv /opt/bitnami/nodejs/bin/node /opt/bitnami/nodejs/bin/node.old ln -s /usr/bin/nodejs /opt/bitnami/nodejs/bin/node 这似乎工作正常。 但是宁愿简单地改变PM2中的configuration来指向新的二进制文件。 使pm2兼容升级到nodejs 4.4.x的最好方法是什么? 更新 :这是服务器上存在node的地方 root@ip-172-30-1-190:/usr/bin# find / -name "node" -type f /opt/bitnami/nodejs/bin/node /var/lib/dpkg/alternatives/node /usr/local/bin/node /usr/local/n/versions/node/4.4.1/bin/node 我最初尝试使用本教程使用npm和n包升级节点, 该教程 /usr/local/n/versions/node/4.4.1/bin/node行。

Ghost与Nginx只能在80端口上运行

自昨天以来,我一直在努力修复这个问题。 我已经做了很多尝试和解决它,仍然没有任何接缝工作。 我试图用Ghost安装NodeJS,并使用NGINX作为我的每一个应用程序(在这种情况下为Ghost)的反向代理,但是我不希望它在端口80上运行。但是,它只能在端口80上运行。只要将configuration文件中的listen选项更改为80以外的值,就会停止工作。 所以这是我的设置 运行Ubuntu 14.04.04 x64 VPS configuration文件位于站点中,可通过符号链接启用站点 在sites-enabled中没有默认文件,在/etc/nginx/conf.d中没有文件 我没有改变/etc/nginx/nginx.conf中的任何内容 防火墙被禁用,文件在/www/domain.com文件夹中,拥有root权限777:root(当我得到它的时候我会调整权限) Ghost运行在9020端口,主机是0.0.0.0(都在config.js里面) 所以我的站点内的configuration文件可用是:(工作正常,除非我更改listen 80 default_server来listen 9000 default_server或任何其他端口。 server { listen 80 default_server; server_name x.net www.x.net; root /www/x.net; index index.html index.htm; location / { proxy_pass http://localhost:9020; proxy_set_header Host $host; } } 当我在控制台inputnetstat -peanut时候听到端口9000,这是我的结果; netstat -peanut build议为什么它不工作?