私はNginxが初めてで、サブドメインを機能させようとしています。
私がやりたいのは、私のドメインを取得することです(それをexample.com
)と追加:
sub1.example.com
、sub2.example.com
、またwww.example.com
利用可能。私はApacheでこれを行う方法を知っていますが、Nginxは本物の頭を掻く人です。
Debian 6を実行しています。
私の現在の/etc/nginx/sites-enabled/example.com:
server {
server_name www.example.com example.com;
access_log /srv/www/www.example.com/logs/access.log;
error_log /srv/www/www.example.com/logs/error.log;
root /srv/www/www.example.com/public_html;
location / {
index index.html index.htm;
}
location ~ \.php$ {
include /etc/nginx/fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /srv/www/www.example.com/public_html$fastcgi_script_name;
}
}
Example.comとwww.example.comにサービスを提供しています。
私は同じファイルに次のような2番目のサーバーブロックを追加しようとしました:
server {
server_name www.example.com example.com;
access_log /srv/www/www.example.com/logs/access.log;
error_log /srv/www/www.example.com/logs/error.log;
root /srv/www/www.example.com/public_html;
server {
server_name sub1.example.com;
access_log /srv/www/example.com/logs/sub1-access.log;
error_log /srv/www/example.com/logs/sub1-error.log;
root /srv/www/example.com/sub1;
}
location / {
index index.html index.htm;
}
location ~ \.php$ {
include /etc/nginx/fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /srv/www/www.example.com/public_html$fastcgi_script_name;
}
}
運がありません。何か案は?フィードバックをいただければ幸いです。
間違いは、サーバーブロック内にサーバーブロックを配置することです。メインドメインブロックを閉じてから、サブドメイン用に新しいブロックを開く必要があります。
server {
server_name example.com;
# the rest of the config
}
server {
server_name sub1.example.com;
# sub1 config
}
server {
server_name sub2.example.com;
# sub2 config
}
Server_nameの代わりに次の行を追加するだけです
server_name xyz.com *.xyz.com;
そして、Nginxを再起動します。それでおしまい。
サブドメインのサーバーブロックを使用して、別のnginx構成ファイルを作成する必要があります。そのようです:
/etc/nginx/sites-enabled/subdomain.example.com