2

I'm try to host several domain on the same VPS, using HHVM to serve the pages.

I'm wondering how can I write the VirtualHost in order to point the right folder in my /var/www directory ?

For example xxx.domain.com >> /var/www/domain.com/

4

3 回答 3

2

好消息。自 HHVM 2.3(2013 年 12 月 13 日)发布以来,您可以在 FCGI 模式下运行 HHVM。使用 Nginx 或 Apache,它工作得非常好。

参考:http ://www.hhvm.com/blog/1817/fastercgi-with-hhvm

使用旧版本的 HHVM,您可以在内部端口(即 8001、8002 等)上运行多个服务器实例。然后将 Nginx 配置为反向代理。(Apache 也可以这样做)。

upstream node1{
    server 127.0.0.1:8001;
}

upstream node2{
    server 127.0.0.1:8002;
}
server {
    ...
    server_name server1.com;
        location ~ \.php$ {
        proxy_pass http://node1;
        proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
            proxy_redirect off;
            proxy_buffering off;
            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-Forwarded-Ssl on; #only for https
    }
}

server {
    ...
    server_name server2.com;
        location ~ \.php$ {
        proxy_pass http://node2;
        proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
            proxy_redirect off;
            proxy_buffering off;
            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-Forwarded-Ssl on; #only for https
    }
}

当然,这种设置会占用大量内存。如果可以升级,请使用 2.3。

于 2014-01-19T04:10:55.287 回答
1

显然还不可能。根据托管代码的官方github 存储库,存在一个关于您所问问题的未解决问题,它是愿望清单/功能请求的标签。

解决这个问题的最好方法可能是为每个域运行 HHVM 服务器(意味着每个域都需要不同的根文件夹)并使用 Apache 或 Nginx 作为代理。

于 2013-10-08T23:49:24.173 回答
0

在 Nginx 上,我能够让它工作的唯一方法是使用/HHVM ,并在我的文件SourceRoot中添加一个/in 。有了这种组合,到目前为止,我正在运行约 7 个站点而没有问题。我正在运行 Ubuntu 13.10 64 位。fastcgi_param SCRIPT_FILENAME /$document_root$fastcgi_script_name;/etc/nginx/hhvm.conf

/etc/hhvm/server.hdf中,更改SourceRoot = /var/wwwSourceRoot = /

Server {
  Port = 9000
  SourceRoot = /
  DefaultDocument = index.php
}

/etc/nginx/hhvm.conf中,在 前面添加 / $document_root$fastcgi_script_name;

location ~ \.php$ {
    fastcgi_split_path_info ^(.+?\.php)(/.*)$;
    fastcgi_keep_conn on;
    fastcgi_pass   127.0.0.1:9000;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME /$document_root$fastcgi_script_name;
    fastcgi_intercept_errors on;
    fastcgi_read_timeout 300;
    include        fastcgi_params;
}

您可能还需要更改fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;fastcgi_param SCRIPT_FILENAME /$document_root$fastcgi_script_name;,至少我必须使用我的。

使用/作为您的 SourceRoot 可能会产生安全隐患 - 我通过防火墙端口 9000 尽可能地缓解这种情况,因此只有 localhost 可以访问它。或者,您可以改用套接字。不是万无一失的,但从我目前所见的情况来看,还可以。

于 2014-02-13T15:24:49.123 回答