Ubuntu

如何在本地主機中創建多個子域?

  • December 8, 2014

使用 nginx 和 php 我需要在本地主機中創建多個子域。我怎樣才能讓它發生?

我正在使用ubuntu 12.04and php5withnginx作為網路伺服器。

我已經*.servername.com在我的配置文件中嘗試過。但是它不起作用。

讓我再澄清一點

假設一個使用者在我的站點 (example.com) 中註冊並按照他的意願以任何名稱創建一個微型站點**(前提是該名稱應該可用)**說 user1 是他的名字,他想創建一個微型站點作為 user1.example。 com,它應該動態發生。由於一次又一次地創建虛擬主機是不切實際的,請幫助

鑑於您的問題的癥結基本上與從您的網站使用者訪問新創建的網站有關,該網站旨在允許這樣做,您確實需要為創建的每個網站創建虛擬主機(否則您的網路伺服器將無法確定處理請求的站點)。

您可以查看基於模板自動創建虛擬主機並重新載入 nginx 配置,但我不建議這樣做 - 我通常發現這種自動化水平是不可取的,您應該真正關注每個站點的單個站點配置- 使用者基礎。

您還需要根據本文在您的 DNS 中創建適當的萬用字元 CNAME 記錄。

編輯:根據下面的評論,這裡是關於您可能實施的建議。

例如,您可以擁有一個模板虛擬主機文件,其中包含類似於以下內容的內容:

server {
       listen 80;
       listen 443 ssl;

       server_name  template.yourdomain.com;

       access_log      /var/log/nginx/template.yourdomain.com_access.log main;
       error_log       /var/log/nginx/template.yourdomain.com_error.log warn;

}

然後,您可以使用使用者選擇的子域複製更改“模板”條目。這取決於您環境的其餘部分,但例如,您可以有一個文本欄位以允許他們輸入所需的子域,然後讓“送出”(或類似)操作觸發您創建的腳本以更改上述配置為他們準備一個合適的文件,將其複製到 theirdomain.yourdomain.com.conf 然後執行service nginx reload.

這只是您需要做什麼的模糊概念 - 具體取決於您的環境和要求。

然而,正如我已經說過的,您應該考慮實施這一點的含義。

引用自:https://serverfault.com/questions/649926