1、Nginx配置(反向代理配置)
以WIN版为例:(linux下操作同理)
1.进入C:\Windows\System32\drivers\etc目录下修改host文件(域名映射):
# localhost name resolution is handled within DNS itself.
127.0.0.1 gulimall.com
127.0.0.1 search.gulimall.com
2、进入nginx的conf文件夹修改nginx.conf文件
・
//设置负载均衡(默认轮询)
http {
upstream gulimall{
server 127.0.0.1:88;
}
}
・
//设置服务器监听
server {
listen 80;
server_name *.gulimall.com;}
・
// 路由配置、挂载静态资源
server {
listen 80;
server_name *.gulimall.com;
#charset koi8-r;
#access_log logs/host.access.log main;
//挂载静态资源到nginx的E:/my/nginx/nginx1.18.0/html路径下
location /static {
root E:/my/nginx/nginx1.18.0/html;
}
//当访问gulimall.com/static/css就会将/static/css截取拼接到E:/my/nginx/nginx1.18.0/html后变成E:/my/nginx/nginx1.18.0/html/static/css
location / {
proxy_set_header Host $host;
proxy_pass http://gulimall;
}
1、 proxy_set_header Host $http_host; ---->不改变请求头
2、proxy_set_header Host host ; ----> 如 果 客 户 端 请 求 头 中 没 有 携 带 这 个 头 部 , 那 么 传 递 到 后 端 服 务 器 的 请 求 也 不 含 这 个 头 部 。 这 种 情 况 下 , 使 用 host; 如果客户端请求头中没有携带这个头部,那么传递到后端服务器的请求也不含这个头部。 这种情况下,使用host;如果客户端请求头中没有携带这个头部,那么传递到后端服务器的请求也不含这个头部。这种情况下,使用host变量它 的值在请求包含“Host”请求头时为“Host”字段的值,在请求未携带“Host”请求头时为虚拟主机的主域名;
3、proxy_set_header Host host : host:host:proxy_port; ----> 服务器名可以和后端服务器的端口一起传送:
4、proxy_set_header Accept-Encoding ---->如果某个请求头的值为空,那么这个请求头将不会传送给后端服务器:
5、用户真实的ip地址转发给后端服务器
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;