2

HHVMを使用してページを提供し、同じVPSで複数のドメインをホストしようとしています。

/var/www ディレクトリ内の適切なフォルダを指すために VirtualHost をどのように記述すればよいのでしょうか?

例: xxx.domain.com >> /var/www/domain.com/

4

3 に答える 3

2

朗報です。HHVM 2.3 のリリース (2013 年 12 月 13 日) 以降、HHVM を FCGI モードで実行できます。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 として使用し、ファイルに a を追加する/ことでした。その組み合わせで、これまでのところ問題なく ~7 サイトを実行しています。Ubuntu 13.10 64 ビットを実行しています。SourceRoot/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 に答える