上一节中的前后端交互是:前端->应用服务器(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;
}
}
}
```