上一節中的前后端交互是:前端->應用服務器(tomcat,jetty,weblogic)
而真正的流程是:前端->http服務器(apache、nginx)->應用服務器(tomcat,jetty,weblogic)->http服務器(apache、nginx)->前端
中間多了一層http服務器的中轉。
這樣一來,就會有兩個地方可以增加響應頭,實現跨域:
1. 應用服務器(上一節的Filter解決方案就是在這里增加的響應頭)
2. http服務器(這里是本節需要研究的問題)
什么是虛擬主機?
關鍵是“虛擬”二字。虛擬主機的意思是:多個域名指向同一個服務器,服務器根據不同的域名,把請求轉到不同的應用服務器,看上去好像有多個主機,實際只有一臺,這就是虛擬主機。
nginx的配置步驟:
1. 進行host配置,在hosts文件中進行如下配置:
```
127.0.0.1 b.com
```
2. 進行nginx配置,打開nginx目錄,進入conf目錄,新建vhost目錄(用來存放虛擬主機的配置文件), 打開nginx.conf文件,在最后加入如下代碼:
```
include vhost/*.conf;
```
代碼的意思是導入vhost目錄下的所有配置文件。
然后在vhost目錄下新建b.com.conf文件
```
server{
listen 80;
server_name b.com;
location /{
proxy_pass http://locahost:8080/;
add_header Access-Control-Allow-Methods *;
add_header Access-Control-Max-Age 3600;
add_header Access-Control-Allow-Credentials true;
add_header Access-Control-Allow-Orgin $http_origin;
add_header Access-Control-Allow-Headers $http_access_control_request_headers;
if ($request_method === OPTIONS) {
return 200;
}
}
}
```