Nginx是一款高性能的開源Web服務器,也是一款高性能、用途廣泛、輕量級的HTTP反向代理服務器。其中,Nginx根據域名轉發功能是Nginx的一個非常重要的特色,本文將從多個方面,詳細闡述Nginx根據域名轉發的實現。
一、安裝Nginx
在使用Nginx根據域名轉發之前,需要先安裝Nginx。這裡我們以Centos為例,介紹Nginx的安裝過程。
1、安裝EPEL軟件倉庫:
sudo yum install epel-release
2、安裝Nginx:
sudo yum install nginx
3、啟動Nginx服務:
sudo systemctl start nginx
至此,Nginx已經成功安裝並啟動。
二、根據域名配置Nginx
1、新建一個server:
server { listen 80; server_name www.example.com; }
2、為該server配置location,用於接收對該域名的所有請求:
server { listen 80; server_name www.example.com; location / { proxy_pass http://example.com; } }
這樣配置後,Nginx會將所有經該域名訪問的流量,全部跳轉到http://example.com域名下。
三、根據端口轉發配置路由
1、配置路由,新建一個upstream,並定義後端的服務器
upstream backend { server 10.0.0.1:80; server 10.0.0.2:80; }
2、在server節點中使用proxy_pass屬性,將域名解析為一個upstream,並轉發到定義的後端服務器中
server { listen 80; server_name www.example.com; location / { proxy_pass http://backend; } }
四、解析不同的域名到不同的目錄
1、在http節點中配置一個map,用於將域名與目錄對應起來
http { map $http_host $dir { hostnames; default /var/www/default; www.example.com /var/www/example; www.demo.com /var/www/demo; } }
2、在server節點中配置location,根據map的定義,轉發流量到對應的目錄
server { listen 80; server_name www.example.com; location / { root $dir; index index.html index.htm; } }
五、支持HTTPS流量
1、設置HTTPS:
server { listen 443 ssl; server_name www.example.com; ssl_certificate /path/to/cert; ssl_certificate_key /path/to/cert_key; location / { root /var/www/example; index index.html index.htm; } }
2、設置HTTP轉發至HTTPS
server { listen 80; server_name www.example.com; return 301 https://www.example.com$request_uri; }
六、總結
本文從安裝Nginx,到根據域名配置Nginx,再到根據端口轉發配置路由,解析不同的域名到不同的目錄和支持HTTPS流量等方面,詳細闡述了Nginx根據域名轉發的實現。Nginx通過這些配置,可以已不同的策略,靈活轉發流量,提高網站性能和安全性。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/311346.html