Nginx
Nginx代理依賴域名
我正在使用 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 實例,但這毫無意義。