ingress rewrite 配置文件的结构 + server_name和location这两条指令的配置来匹配要 虚拟主机

    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/rewrite-target: http://www.oneway.cn
后面没有分号。

  参考:https://blog.csdn.net/qingyafan/article/details/82692509

1. rewrite break - url重写后,直接使用当前资源,不再执行location里余下的语句,完成本次请求,地址栏url不变 

3. rewrite redirect – 返回302临时重定向地址栏显示重定向后的url,爬虫不会更新url(curl返回请求页面) 
4. rewrite permanent – 返回301永久重定向, 地址栏显示重定向后的url,爬虫更新url (浏览器显示成新的URL)

 

如果location中rewrite后是对静态资源的请求,不需要再进行其他匹配,一般要使用break或不写,直接使用当前location中的数据源,完成本次请求 

 

 3.Nginx等服务器是如何知道一个请求对应的是哪个域名的呢?

答案在于HTTP协议中的Host请求头,其值为我们要访问的域名。这里需要注意的是,在HTTP/1.0中是不支持Host请求头字段的,所以HTTP/1.0是不支持虚拟主机技术的,
而根据rfc2616规范HTTP/1.1协议中客户端发送的请求必须带上Host这个请求头,否则服务器必须返回400 Bad Request响应。

参考:https://segmentfault.com/a/1190000021771733

 

4. 配置文件形式:

# 每个 server 就是一个虚拟主机
http {
include /etc/nginx/conf.d/*.conf; # ... server{ # ... } # ... server{ # ... } }

具体配置文件

# Demo
upstream web_pro_testin {
    server 10.42.46.70:6003 max_fails=3 fail_timeout=20s;
    ip_hash;
}
  
server {
    listen 80;
    server_name web.pro.testin.cn;
    location / {
        proxy_pass http://web_pro_testin;
        proxy_redirect off;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
  
    location ~ ^/(WEB-INF)/ {
        deny all;
    }
}

参考:一文入魂!彻底巩固你的Nginx知识体系!_牛客博客 (nowcoder.net) https://blog.nowcoder.net/n/2cec4b7c85c84c9abe537319b44eb59d?from=nowcoder_improve

posted @ 2019-03-07 15:05  littlevigra  阅读(2449)  评论(1编辑  收藏  举报