同一域下的不同應用如何配置?

同一域下的不同應用如何配置?

我有一份新工作,他們已經在 AWS 上設定好了一切。我們有一個託管許多應用程式的測試伺服器。

如果我去

jenkins.example.com

它轉到我們正在運行的 Jenkins 實例。

如果我去

server.test.example.com

然後進入我們應用程式的測試版本。

這是在哪裡配置的(不同“子域”的不同應用程式)?是在 Nginx 中,還是在 DNS 項目中?或兩者或其他地方?

(我不能 100% 確定應該使用哪些術語來問這個問題,例如“子網域”,請隨時告訴我它們是什麼)。

答案1

這取決於你想做什麼。

您所要求的可能需要 Nginx,而不是新增 DNS 項目。

CNAME DNS 項目可以將某些子網域重新導向到某個網域(但不能直接重新導向到伺服器上的特定 IP 位址或連接埠)。如果您要將子網域重定向請求到不同的網域(即 subdomain.exampleone.com 引用 exampletwo.com),則僅需要 CNAME。

Nginx 可以充當反向代理,取得子網域並將它們重新導向到伺服器上的特定資料夾/檔案或連接埠。這可以從您的/etc/nginx/nginx.conf*、http {...}區塊內或目錄中進行配置,您可以在其中為每個重定向(隱含的/etc/nginx/sites-enabled/位置)建立一個單獨的檔案。http {...}

*或你的 nginx 目錄所在的任何地方

這種重定向(到特定連接埠上的應用程式)的正確格式如下/etc/nginx/nginx.conf

server {
    # whether you type localhost or 127.0.0.1 or something else here 
    # depends on your servers /etc/hosts file, where you define how 
    # the server refers to itself
    listen       localhost:80;  
    server_name  mysubdomain.example.com;

    location / {
     proxy_pass              http://localhost:MYPORTNUMBER
     proxy_set_header        Host            $host;
     proxy_set_header        X-Real-IP       $remote_addr;
     proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
   }
}

將 MYPORTNUMBER 替換為應用程式正在運行的連接埠。重定向到靜態檔案的過程類似,但您可以使用root /path/to/desired/folder.

我沒有專門嘗試過,但這應該適用於多層子網域,例如server.test.ourdomain.com您的範例中的。

相關內容