一、Nginx配置多個域名訪問不同的前端
在實際應用中,我們常常需要配置一個Nginx服務器來代理多個域名,每個域名都有一個獨立的前端頁面和後端服務。Nginx配置多個域名訪問不同的前端,可以採用不同的虛擬主機(server)進行配置。
以下是一個簡單的實現,以example.com和example.net為例,讓它們指向不同的靜態資源和後端服務:
server {
listen 80;
server_name example.com;
root /var/www/example.com;
...
}
server {
listen 80;
server_name example.net;
root /var/www/example.net;
...
}
二、Nginx配置二級域名
除了主域名,還有常見的二級域名,例如www.example.com和blog.example.com。Nginx配置二級域名可以通過server_name指定對應的域名,不同的二級域名可以映射到不同的應用程序。
以下是一個簡單的實現,以www.example.com和blog.example.com為例:
server {
listen 80;
server_name www.example.com;
...
}
server {
listen 80;
server_name blog.example.com;
...
}
三、Nginx配置跨域請求
在跨域請求的場景中,瀏覽器會將跨域請求攔截,Nginx可以用來解決跨域訪問的問題。Nginx配置跨域請求可以通過HTTP頭信息中的Access-Control-Allow-Origin來設置允許跨域訪問的來源。
以下是一個簡單的實現,將example.com中AJAX請求訪問到example.net時需要設置跨域訪問:
server {
listen 80;
server_name example.com;
...
#允許example.net跨域訪問
add_header 'Access-Control-Allow-Origin' 'http://example.net';
}
四、Nginx配置多域名代理訪問
在某些場景下,我們需要通過Nginx配置多域名代理訪問,例如內網訪問外網資源等。Nginx配置多域名代理訪問可以通過proxy_pass指令來實現。
以下是一個簡單的實現,以example.com和example.net為例,將example.com代理訪問到example.net的後端服務:
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://example.net/backend/;
}
}
五、Nginx配置域名限制訪問
在某些情況下,我們需要限制某些域名的訪問權限,Nginx配置域名限制訪問可以通過access指令來實現。例如,只允許example.com和example.net訪問,其餘的域名則被禁止訪問:
server {
listen 80;
server_name example.com example.net;
...
#只允許example.com和example.net訪問
allow example.com;
allow example.net;
deny all;
}
六、Nginx配置域名解析
在DNS解析時,Nginx可以支持從多個域名中選擇一組IP地址應答請求。Nginx配置域名解析可以通過resolver指令來實現該功能。
以下是一個簡單的實現,以example.com和example.net作為域名:
resolver 8.8.8.8;
server {
listen 80;
server_name example.com;
set $backend http://backend.example.net/;
...
location / {
proxy_pass $backend;
}
}
原創文章,作者:JYPJ,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/137727.html