当前位置: 首页 > 知识库问答 >
问题:

如何在PHP/Apache服务器上部署nodejs应用程序?

毛声
2023-03-14

我有一个专用的服务器上,我目前正在运行4个PHP网站。服务器配置为Apache+Nginx。每当我托管php网站时,我将文件放在public_html文件夹中,它就会开始运行。但现在我想安装nodejs应用程序。我只是对如何处理server.js文件感到困惑?又如何让它继续运行?我应该使用pm2还是永远保持它在我的ubuntu主机上永远运行。如何运行域名为example.com的网站

共有1个答案

钱繁
2023-03-14

在NodeJS中,您可以使用一些预先存在的东西,比如express,或者基本上滚动您自己的webserver,这在NodeJS中听起来令人生畏实际上是一个简单的...

var http = require("http");

http.createServer(function(request, response) {
  response.writeHead(200, {"Content-Type": "text/plain"});
  response.write("Hello World");
  response.end();
}).listen(3000);

如果您希望保持服务在您的服务器上运行,那么Forever和PM2是最好的开始位置。Forever比PM2存在的时间更长,但我相信PM2比Forever功能更丰富(Forever使用起来稍微简单一些)。

对于apache或nginx,您可以使用它们将请求转发到节点进程。默认情况下,http在端口80上运行,但apache进程已经在使用端口80。我推荐的是在另一个端口(例如3000)上运行nodejs应用程序,并使用现有的web服务器(apache、ligtthpd、nginx等)作为反向代理,我在下面提供了一个示例设置。

阿帕奇

<VirtualHost example.com:*>
    ProxyPreserveHost On

    ProxyPass /api http://localhost:3000/
    ProxyPassReverse /api http://localhost:3000/

    ServerName localhost
</VirtualHost>

灯光

$HTTP["host"] == "example.com" {
    server.document-root = "/var/www/example.com"
    $HTTP["url"] =~ "(^\/api\/)" {
       proxy.server = (
            "" => (
                (
                    "host" => "127.0.0.1",
                    "port" => "3000"
                )
            )
        )
    }
}

恩吉尼克斯

http {

    ...

    server {

        listen 80;
        server_name example.com;

        ...

        locathtml" target="_blank">ion /api {

            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Scheme $scheme;

            rewrite ^/api/?(.*) /$1 break;
            proxy_pass http://localhost:3000;
        }

        ...
    }
}

在上面的示例中,对http://example.com/api的任何请求都将被重定向到在端口3000上运行的节点进程。

这里的想法是使用webserver提供静态文件(例如css),并使用节点进程提供应用程序。

 类似资料:
  • 我试图在apache服务器上部署Hello world应用程序。 <代码>(http://localhost/wsgi.py)但它不起作用。 请告诉我如何配置apache conf文件以运行wsgi enable应用程序。 我的apache... 我已经使用pip命令下载了mod wsgi和django作为python模块,现在我面临着如何在apache模块目录中加载wsgi模块的问题* 我在这些

  • 问题内容: 我有一个dist文件夹,其中包含CSS,字体,JS文件夹和一个针对Vue.js最小化的文件,可以部署和使用。我想使用Node.js运行此应用程序。 如何将其设置为仅运行并将其部署在请求的特定端口上?不知道如何构建它,或者不确定是否需要以特定方式构建它以运行此Vue应用程序。任何帮助将不胜感激。 问题答案: 由于Vue只是一个前端库,因此托管它和执行诸如提供资产之类的最简单方法是创建一个

  • 在jboss 7.1.1As上部署mule应用程序时面临问题。我正在使用jboss 7.1.1as。我在eclipse中创建了动态项目。将mule配置文件复制到WEB-INF/classes文件夹中。导入lib文件夹中的所有mule jar,下面是我的配置文件 以下是我的web.xml档案 我导出我的应用程序作为战争file.and部署到jboss服务器然后得到以下错误 注意,我已经导入了jar文

  • 我试图构建一个ReactJS应用程序,我希望在tomcat服务器上托管它。我已经使用命令npm run build,构建已经就绪…我在tomcat服务器中的哪里复制这些文件?我是否需要创建另一个应用程序并将其部署到调用React应用程序的服务器上?

  • 问题内容: 我在这里从https://www.tutorialspoint.com/reactjs/reactjs_jsx.htm创建了一个基本的React App ,我想在基于Apache的服务器上运行此测试代码,我知道我需要创建一个可分发的构建,但是我无法弄清楚该怎么做,无法找到明确的说明。 我已经在Apache服务器上看到了这篇React,js的文章,但是除了指导原则之外没有什么 问题答案:

  • 我想在Apache服务器上部署我的Flask应用程序。我在服务器上有一个帐户,并被告知“服务器可用于运行用Python编写的脚本和Web应用程序(使用django和mod_wsgi)”。 我在Windows上,要传输文件,我必须使用FTP客户端,所以我使用WinSCP。 安装mod_wsgi并不像我预期的那样简单,我无法在线获得任何清晰的文档。 因为服务器已经可以使用mod_wsgi运行Pytho