HHVMを使用してページを提供し、同じVPSで複数のドメインをホストしようとしています。
/var/www ディレクトリ内の適切なフォルダを指すために VirtualHost をどのように記述すればよいのでしょうか?
例: xxx.domain.com >> /var/www/domain.com/
HHVMを使用してページを提供し、同じVPSで複数のドメインをホストしようとしています。
/var/www ディレクトリ内の適切なフォルダを指すために VirtualHost をどのように記述すればよいのでしょうか?
例: xxx.domain.com >> /var/www/domain.com/
朗報です。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 を使用してください。
どうやらまだ出来ていないようです。コードがホストされている公式のgithubリポジトリによると、あなたが求めているのと同じ問題に関する未解決の問題が存在し、それはウィッシュリスト/機能リクエストのタグです。
おそらく、これを解決する最善の方法は、ドメインごとに HHVM サーバーを実行し (ドメインごとに異なるルート フォルダーが必要であることを意味します)、プロキシとして Apache または Nginx を使用することです。
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/www
しSourceRoot = /
ます。
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 のみがアクセスできるようにすることで、これを可能な限り軽減しています。または、代わりにソケットを使用できます。万能ではありませんが、これまで見てきた限りでは問題ありません。