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

1
2
3
    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 @   littlevigra  阅读(2456)  评论(1编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App
历史上的今天:
2018-03-07 python argparse模块:命令行选项及参数解析
点击右上角即可分享
微信分享提示