Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wordpress 如何配置nginx在同一台机器上运行apache和node js?_Wordpress_Node.js_Apache_Nginx - Fatal编程技术网

Wordpress 如何配置nginx在同一台机器上运行apache和node js?

Wordpress 如何配置nginx在同一台机器上运行apache和node js?,wordpress,node.js,apache,nginx,Wordpress,Node.js,Apache,Nginx,我想知道如何设置nginx在同一台服务器上同时运行apache(lamp)和node.js 我不是一个精通服务器的人,但在过去的两周里,我学到了很多 我发现我可以通过以下HAProxy进行内容切换: 然而,由于我已经在使用nginx,我认为使用它会更好 有教程吗?或者提示?nginx、apache和node.js都是各自独立的服务器。它们是相互完全独立的原子实体 apache或nginx在node.js服务器前面作为代理服务器存在(非常常见)的情况。因此,您将在同一台机器上同时运行两台服务器。需

我想知道如何设置
nginx
在同一台服务器上同时运行apache(lamp)和node.js

我不是一个精通服务器的人,但在过去的两周里,我学到了很多

我发现我可以通过以下
HAProxy
进行内容切换:

然而,由于我已经在使用
nginx
,我认为使用它会更好


有教程吗?或者提示?

nginx、apache和node.js都是各自独立的服务器。它们是相互完全独立的原子实体

apache或nginx在node.js服务器前面作为代理服务器存在(非常常见)的情况。因此,您将在同一台机器上同时运行两台服务器。需要注意的是,它们将在不同的端口上运行

nginx、apache和node.js很可能同时在同一台机器上运行,但它们必须在不同的端口上运行


但是你的问题“我如何设置nginx在同一台服务器上同时运行apache(lamp)和node.js”没有真正意义,因为nginx不“运行”apache或node.js。

如果你有一个用PHP编写的站点,并且你想启用socket.io,你可以在80端口(默认HTTP端口)上绑定nginx,在8080端口上绑定apache,在3000端口上绑定node.js服务器(Apache和node可能有其他功能)

以下是nginx配置:

http {
    #... some directives ...

    map $http_upgrade $connection_upgrade {  #required for websockets
        default upgrade;
        ''      close;
    }

    #... some more directives ...
}
server {
    listen          80;
    server_name     your-wordpress-site.com;

    root    /path/to/site/root;
    index   index.php   index.html  index.htm;


    location / {
        try_files   $uri   $uri/  /index.php;
    }

    location /socket.io {
        proxy_pass          http://127.0.0.1:3000;
        proxy_http_version  1.1;
        proxy_set_header    Upgrade $http_upgrade;           #these two headers are ...
        proxy_set_header    Connection $connection_upgrade;  #...required for websockets
    }

    location ~ \.php$ {
        proxy_set_header    X-Real-IP       $remote_addr;
        proxy_set_header    X-Forwarded-For $remote_addr;
        proxy_set_header    Host            $host;
        proxy_pass          http://127.0.0.1:8080;
    }

    location ~ /\.ht {
        deny all;
    }
}
因此,当请求URI以
/socket.io
开头时,您只需要代理到节点

我从来没有使用过WordPress,所以我可以100%确定它在PHP端可以正常工作,但我用socket.io配置了nginx 100K次,它总是工作得很好

编辑

如果此配置不起作用,您可以尝试通过以下方式进行更改:

location / {
        proxy_set_header    X-Real-IP       $remote_addr;
        proxy_set_header    X-Forwarded-For $remote_addr;
        proxy_set_header    Host            $host;
        proxy_pass          http://127.0.0.1:8080;
}

location /socket.io {
        #paste here socket.io section from first example
}

location ~ \.(js|css|png|jpe?g|gif)$ {
        root /path/to/site/root;
}

在上一个
位置
的RegExp中,您应该列出您希望nginx提供服务的所有静态文件的扩展名。

这很有帮助。我的目的是要有一个wordpress站点和一个node.js/socket.io聊天插件。不过,此amazon服务器上不存在var/www文件夹。您描述的情况是两个不同的站点。@NetaMeta编辑了我的帖子。请看changes@NetaMeta再编辑一次。删除所有多余的文本。非常感谢,我正在尝试。不,不,运气不好,我认为我的问题比你的问题更基本。只需使用nginx。