Nginx

Nginx代理依賴域名

  • January 17, 2017

我正在使用 AWS 的 EC2 和 Nginx。

假設我有三個域名:domain1.com、domain2.com、domain3.com。假設我在三個不同的埠上有三個 rails 應用程序:3000、3001、3002。

所有這些域都在埠 80 上鍊接到我的伺服器。

根據請求的 URL,我希望我的埠 80 將請求重定向到正確的埠。

我應該如何配置我的虛擬主機文件?我知道 If 塊存在,但 Nginx 似乎不推薦它。我的計劃是在我的 EC2 上擁有多個站點。

我無法在我的 Rails 應用程序埠上阻止伺服器,因為它會阻止 Rails 伺服器。

取決於哪個DOMAIN (?) :

server {
   listen 80;
   server_name .domain1.com; # Wildcard domain
   return 301 $scheme://$host:3000$request_uri; 
   # use $host above because we use a wildcard domain
}

並為您的所有域和所有 Rails 應用程序/埠重複此伺服器塊

您已經說過您希望您的站點位於不同的埠上,並且您希望它們連結到埠 80。這還不清楚。

Nginx 可以監聽不同網站的 80 埠,你只需配置不同的域即可。例如

server {
 server_name www.example.com;
 listen 80;
 return 301 https://www.example.com$request_uri;
}

server {
 server_name www.example.com;
 listen 443 ssl https;
 root /var/www/site;
 // Insert https stuff here
}

server {
 server_name www.example2.com;
 listen 80;
 root /var/www/site2;
}

server {
 server_name www.example3.com;
 listen 80;
 root /var/www/site3;
}

你也可以執行一個負載均衡器和多個 nginx 實例,但這毫無意義。

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