2017-01-15 127 views
0

如何配置名稱爲「projects」的單個文件夾,其中每個子文件夾都是子域? 例子: 我有網站example.com 在我的服務器我有文件夾子域的Nginx配置文件夾

/var/www/html/example.com 

我創建新的文件夾:

/var/www/html/projects/ 

而且在 '項目' 目錄中的所有文件夾是新的子:

/var/www/html/projects/site1 = site1.exapmle.com 

謝謝


@理查德 - 史密斯,我設置的配置文件projects/etc/nginx/sites-available與內容:

server { 
listen 80; 

root /var/www/html/projects/$domain; 
index index.php index.html index.htm index.nginx-debian.html; 

server_name ~^(www\.)?(?<domain>\.example\.com)$; 

location/{ 
    try_files $uri $uri/ =404; 
} 

location ~ \.php$ { 
    include snippets/fastcgi-php.conf; 
    fastcgi_pass unix:/run/php/php7.0-fpm.sock; 
} 

location ~ /\.ht { 
    deny all; 
} 

} // 代替example.com我domen名。

創建符號鏈接/etc/nginx/sites-enabled並運行service nginx reload。 但是打開site1.example.com後。我得到"This site can’t be reached"。但我的example.com工作正常。

+0

首先檢查您的服務器日誌,可能是任何fcgi問題 –

+1

您是否爲'site1'子域設置了DNS? –

+0

**始終**用[curl](http://curl.haxx.se)進行檢查。瀏覽器太「用戶友好」(閱讀:不夠準確的診斷)。 – Melvyn

回答

0

在server_name指令中使用正則表達式將允許您捕獲子域的名稱並在root指令中使用它。

server { 
    server_name ~^(www\.)?(?<domain>\.example\.com)$; 
    root /var/www/html/projects/$domain; 
    ... 
} 

查看this document瞭解更多。

+0

謝謝!我在測試後向我的問題添加了新的信息。請看看它。 – Pshenichniy