2013-07-10 32 views
30

Tôi mới dùng Nginx và tôi đang cố gắng làm cho các tên miền phụ hoạt động.nginx - hai cấu hình miền phụ

Những gì tôi muốn làm là lấy tên miền của tôi (chúng ta hãy gọi nó example.com) và thêm:

  • sub1.example.com,
  • sub2.example.com, và cũng có
  • www.example.com sẵn.

Tôi biết cách thực hiện việc này với Apache, nhưng Nginx thực sự là một đầu trầy xước thực sự.

Tôi đang chạy Debian 6.

/etc/nginx/sites-enabled/example.com hiện tại của tôi:

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

Nó đang làm việc để phục vụ example.com và www.example. com.

Tôi đã cố gắng thêm một khối máy chủ thứ hai trong cùng một tập tin như:

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

Không may mắn. Bất kỳ ý tưởng? Tôi rất muốn đánh giá cao bất kỳ phản hồi nào.

+0

Tôi nên đề cập: Mục tiêu cuối cùng là cho sub1.example.com để truy cập example.com/sub1 và sub2.example.com để truy cập example.com/sub2. Tôi hy vọng điều đó đúng. – boredemt

Trả lời

43

Sai lầm là đưa một khối máy chủ bên trong một khối máy chủ, bạn nên đóng khối máy chủ chính sau đó mở một cái mới cho các tiểu lĩnh

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 
} 
4

Bạn chỉ cần thêm dòng sau ở vị trí của máy chủ của bạn_name

server_name xyz.com *.xyz.com; 

Và khởi động lại Nginx. Đó là nó.

+9

Điều gì sẽ xảy ra nếu bạn muốn tên miền phụ trỏ đến một tài nguyên khác trên máy chủ, chứ không phải tài nguyên cho vị trí www.example.com? – courtyen

Các vấn đề liên quan