66

私は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;
        }
}

運がない。何か案は?フィードバックをいただければ幸いです。

4

6 に答える 6

105

間違いは、サーバー ブロックをサーバー ブロック内に配置することです。メイン サーバー ブロックを閉じてから、サブ ドメイン用に新しいサーバー ブロックを開く必要があります。

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
}
于 2013-07-10T14:00:15.010 に答える
9

server_name の代わりに次の行を追加するだけです。

server_name xyz.com  *.xyz.com;

そしてNginxを再起動します。それでおしまい。

于 2014-10-20T06:53:58.550 に答える
0

多分これは誰かがこれに挑戦するのを助けるかもしれません. まず、SSL がインストールされている場合は、それを削除します (削除したほうがよいでしょう)。これにより、サブドメイン構成を混乱させている以前の構成をリセットすることができます。

etc/nginx/.../default ファイルに新しいサーバーブロックを作成します

    server {
       listen 80; 
       server_name subdomain.domain.com;

       location /{
         proxy_pass http://localhost:$port;
       }
    }
于 2021-06-09T23:08:00.780 に答える