GVKun编程网logo

PHP网站和Nodejs应用程序在相同的VPS(php与nodejs)

16

本篇文章给大家谈谈PHP网站和Nodejs应用程序在相同的VPS,以及php与nodejs的知识点,同时本文还将给你拓展Azure托管Reactjs和NodeJS应用程序、linux–允许node.j

本篇文章给大家谈谈PHP网站和Nodejs应用程序在相同的VPS,以及php与nodejs的知识点,同时本文还将给你拓展Azure托管React js和Node JS应用程序、linux – 允许node.js应用程序在端口80上运行、node.js – Amazon ELB背后的NodeJs应用程序抛出502、node.js – layout.ejs不适用于Heroku中的NodeJS应用程序等相关知识,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

PHP网站和Nodejs应用程序在相同的VPS(php与nodejs)

PHP网站和Nodejs应用程序在相同的VPS(php与nodejs)

是否有可能在同一个VPS上有多个PHP网站和Nodejs应用程序?

我有一个CentOS VPS的虚拟主机虚拟主机上的主机虚拟主机上的根访问..我使用端口80阿帕奇。

现在我想在同一个VPS上部署一个构build在mongoDB和Express框架上的nodejs应用程序。我已经安装了节点并且expression了。

我需要知道,如果它是一个很好的做法,在同一个VPS上托pipe节点应用程序..?

我应该使用什么路由..我应该使用Nginx作为前端代理的Apache和nodejs或我也可以使用Apache的路由我的节点应用程序的URL到节点的应用程序文件夹..?

我应该把哪个Python引导器放在.py头文件中?

Ubuntu上的Apache2configuration文件path。

PHP和Apache2中的奇怪行为:不同服务器中的不同输出

Windows上的Rsync类似的解决scheme?

检测为什么要从服务器上删除文件

如何在Linux中启用核心PHP扩展?

该页面没有正确redirect – HTTPS HTACCESS重写错误

承受发射日交通爆发的最佳做法

stream浪汉中带有简单LAMP的多个虚拟主机

将C#编译为CGI

如果服务器的负载较低,可以将apache和node.js结合使用

您可以使用Nginx或Apache的mod_proxy转发到您的node.js应用程序的Apache

<VirtualHost njapp1.domain.com>

ProxyRequest关闭

ProxyPreserveHost打开

ProxyPass / http:// localhost:9000

ProxyPassReverse / http:// localhost:9000

</虚拟主机>

为Nginx

server{ name njapp1.domain.com; location / { proxy_pass http://localhost:9000; proxy_set_header X-Real-IP $remote_addr; } }

Azure托管React js和Node JS应用程序

Azure托管React js和Node JS应用程序

我假设您说免费课程是用于家庭目的的?

为了实现可伸缩性和可用性,我将采用3层体系结构,第一个轮胎是用于计算的东西(nodejs应用程序),部署在一个由最少两个实例组成的自动缩放组中,所有实例均位于Azure负载平衡器之后>

第二层是数据库,为此我将选择Azure数据库

最后,是您的React应用程序,如果它是静态生成的应用程序(如Gatsby),我会去Azure存储中的静态网站托管,否则最好将React服务器与Node.js放在同一Linux实例中应用,然后在负载均衡器中使用路径重定向来定位应用

PS:根据负载的不同,这将花费大量的金钱,但是您不必担心可伸缩性,也不再需要管理数据库。

linux – 允许node.js应用程序在端口80上运行

linux – 允许node.js应用程序在端口80上运行

我正在进行一个演练,指导您在ubuntu机器上设置节点.我正处于配置系统以允许节点在端口80上运行的步骤.它(以及我看过的其他一些指南)建议运行以下命令:
sudo setcap cap_net_bind_service=+ep /usr/local/bin/node

这将返回以下错误:

Failed to set capabilities on file `/usr/local/bin/node' (Invalid argument)
The value of the capability argument is not permitted for a file. Or the file is not a regular (non-symlink) file

知道什么可能导致这个错误吗?

解决方法

为了避免此错误,您可以使用哪个节点解析非符号链接可执行文件,作为完整示例:
sudo apt-get install libcap2-bin
sudo setcap cap_net_bind_service=+ep `readlink -f \`which node\``

“which”命令显示shell命令的完整路径.

node.js – Amazon ELB背后的NodeJs应用程序抛出502

node.js – Amazon ELB背后的NodeJs应用程序抛出502

我们有一个在Amazon Elastic Load Balancer(ELB)后面运行的节点应用程序,当有多个并发请求时以及每个请求需要时间处理时,它会随机抛出502个错误.最初,我们尝试将ELB的空闲超时时间增加到5分钟,但我们仍然得到了502个响应.

当我们联系亚马逊团队时,他们说这种情况正在发生,因为后端在5秒后关闭了与ELB的连接.

ELB将HTTP-502发送回您的客户,原因如下:

>尝试建立连接时,负载均衡器从目标接收到TCP RST.
>目标关闭了与TCP RST或TCP FIN的连接,而负载均衡器对目标有未完成的请求.
>目标响应格式错误或包含无效的HTTP标头.
>使用了新的目标群体,但目标尚未通过初步健康检查.目标必须通过一次健康检查才能被视为健康.

我们试图将应用程序的keep-alive / timeouts设置为大于ELB空闲超时(5分钟),因此ELB可以负责打开和关闭连接.但是,我们仍面临502错误.

JS:

var http = require( 'http' );
var express = require( 'express' );
var url = require('url');
var timeout = require('connect-timeout')

const app = express();

app.get( '/health',(req,res,next) => {
  res.send( "healthy" );
});

app.get( '/api/test',next) => {
  var query = url.parse( req.url,true ).query;
  var wait = query.wait ? parseInt(query.wait) : 1;
  setTimeout(function() {
    res.send( "Hello!" );
  },wait );
});

var server = http.createServer(app);
server.setTimeout(10*60*1000); // 10 * 60 seconds * 1000 msecs
server.listen(80,function () {
  console.log('**** STARTING SERVER ****');
});

解决方法

尝试将server.keepAliveTimeout设置为默认值5s以外的值.见: https://nodejs.org/api/http.html#http_server_keepalivetimeout

注意:这是在Node v8.0.0中添加的

此外,如果您仍然使用经典ELB,请考虑根据当前经验迁移到新的应用程序负载均衡器,这似乎为我们提供了很多改进.如果每个服务都有很多单独的ELB,您还可以节省一些钱.缺点可能是您的所有服务都出现了1点故障.但在AWS我们相信:)

node.js – layout.ejs不适用于Heroku中的NodeJS应用程序

node.js – layout.ejs不适用于Heroku中的NodeJS应用程序

我有通常的nodejs express app …

var express = require('express');

var app = express.createServer(
    express.bodyParser()
);

app.configure( function () {
    app.set('views',__dirname + '/views');
    app.set('view engine','ejs');
    app.use("/public",express.static(__dirname + '/public'));
});

app.get('/',function (req,res) {
    res.render('index');
});

我在/ views文件夹中有一个index.ejs和layout.ejs:

layout.ejs:

<!doctype html>
<html lang="en" manifest=""><head>
    <title>jQuery Plugin Demo</title>
</head>
<body>
    <div>
        <%- body %>
    </div>
</body>
</html>

index.ejs:

Hello world

index.ejs只呈现“Hello world”文本而没有周围的layout.ejs包装器. ejs正在运作.它能够找到正确的.ejs模板,但它只是忽略了布局.我也试过明确地将布局文件添加到应用程序..

app.set('view options',{ layout:'layout.ejs' });

所有这些在本地工作正常,但在Heroku上没有.这是我的package.json:

{
  "name": "in1-test","version": "0.0.1","author": "Iatek","dependencies": {
    "express": ">=2.5.x","ejs": ">=0.7.x"
  },"engines": {
    "node": "0.6.x"
  }
}

为什么布局上没有喜悦?谢谢

解决方法

当您部署到Heroku时,它会为所有依赖项执行npm安装;因为你已经声明了明确的> = 2.5.x它会安装最新的3.0.0_betax. Express 3不支持ejs中的布局(尚未).

要修复删除“> =”并指定本地版本中的快递版本.

我们今天的关于PHP网站和Nodejs应用程序在相同的VPSphp与nodejs的分享就到这里,谢谢您的阅读,如果想了解更多关于Azure托管React js和Node JS应用程序、linux – 允许node.js应用程序在端口80上运行、node.js – Amazon ELB背后的NodeJs应用程序抛出502、node.js – layout.ejs不适用于Heroku中的NodeJS应用程序的相关信息,可以在本站进行搜索。

本文标签: