nginx working with header

本文详细介绍Nginx中Header的配置与应用实践,包括如何通过Nginx传递客户端真实IP地址、自定义HTTP头部信息及如何读取这些信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

working with header

 从哪写起呢,需求吧。
请求:https://header.test.ipinyou.com:7443/ 

1. nginx 加入:
     location / {
        proxy_set_header      Host $host:$server_port;
        proxy_set_header      X-Real-IP $remote_addr;
        proxy_set_header      X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass   http://127.0.0.1:81;
     }

    则:后端机器能拿到请求来源ip,请求host,port信息。
2. 获取head页面
    <html>    <body>
    <?php
        $arr = getallheaders();
            foreach ($arr as $item => $content){
                    echo "<font color=\"blue\"><b>$item</b></font>  => <font color=\"red\">\"$content\"</font></br>";
            }
    ?>
    </body>    </html>

    返回结果:

        Host => "header.test.ipinyou.com:7443"
        X-Real-IP => "192.168.1.1"
        X-Forwarded-For => "192.168.1.1"
        Connection => "close"
        User-Agent => "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:19.0) Gecko/20100101 Firefox/19.0"
        Accept => "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
        Accept-Language => "zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3"
        Accept-Encoding => "gzip, deflate"
        Cookie => "PYID=CBCC_81x6Ck; jsType=1; sessionId=D49Ard8ia4PR"               
  
3. 设置header,host,server_port
        proxy_set_header      Host $host;
        proxy_set_header      port $server_port;

   
结果:

        Host => "header.test.ipinyou.com"
        port => "7443"
 4. 自定义header
        使用modify header add on 设置  
            True-Client-IP  
"testip"
            User-Agent     SonyEricsson e8000
            Host        "abcdef"

        nginx中设置:           
            proxy_set_header      Host $host;
 
           proxy_set_header      test2 'abc';
            proxy_set_header      test $http_true_client_ip;

    结果:
        Host => ""abcdef""
        port => "7443"
        test2 => "abc"
        test => "testip"
        X-Real-IP => "10.1.2.223"
        X-Forwarded-For => "10.1.2.223"
        Connection => "close"
        User-Agent => "SonyEricsson e8000"

        Accept => "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
        Accept-Language => "zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3"
        Accept-Encoding => "gzip, deflate"
        Cookie => "PYID=CBCC_81x6Ck; jsType=1; sessionId=D49Ard8ia4PR"
        True-Client-IP => "testip"

    发现捕捉到了自定义的
true_client_ip
5.更多自定义header
    当我们配置了
        underscores_in_headers on;  【
使用字段:http, server  是否允许在header的字段中带下划线】
    之后,发现所有的自定义header都能被捕捉到。比如
        请求加入header:any_para   any_para_value
       
proxy_set_header      any_para $http_any_para_value;
        得到:
               
any_para => "any_para_value"
6. 写入响应头信息:
                header('myhost:phpserver');
    =>    
myhost   phpserver
7. nginx全局变量
    http://www.cnblogs.com/AloneSword/archive/2011/12/10/2283483.html

资源下载链接为: https://pan.quark.cn/s/22ca96b7bd39 在当今的软件开发领域,自动化构建与发布是提升开发效率和项目质量的关键环节。Jenkins Pipeline作为一种强大的自动化工具,能够有效助力Java项目的快速构建、测试及部署。本文将详细介绍如何利用Jenkins Pipeline实现Java项目的自动化构建与发布。 Jenkins Pipeline简介 Jenkins Pipeline是运行在Jenkins上的一套工作流框架,它将原本分散在单个或多个节点上独立运行的任务串联起来,实现复杂流程的编排与可视化。它是Jenkins 2.X的核心特性之一,推动了Jenkins从持续集成(CI)向持续交付(CD)及DevOps的转变。 创建Pipeline项目 要使用Jenkins Pipeline自动化构建发布Java项目,首先需要创建Pipeline项目。具体步骤如下: 登录Jenkins,点击“新建项”,选择“Pipeline”。 输入项目名称和描述,点击“确定”。 在Pipeline脚本中定义项目字典、发版脚本和预发布脚本。 编写Pipeline脚本 Pipeline脚本是Jenkins Pipeline的核心,用于定义自动化构建和发布的流程。以下是一个简单的Pipeline脚本示例: 在上述脚本中,定义了四个阶段:Checkout、Build、Push package和Deploy/Rollback。每个阶段都可以根据实际需求进行配置和调整。 通过Jenkins Pipeline自动化构建发布Java项目,可以显著提升开发效率和项目质量。借助Pipeline,我们能够轻松实现自动化构建、测试和部署,从而提高项目的整体质量和可靠性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值