`
sillycat
  • 浏览: 2552380 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Apache2 and Nginx Server Address in Header

 
阅读更多
Apache2 and Nginx Server Address in Header

Recently I get a request which needs to send the server IP address(not client IP address) from Apache2 to Nginx, finally to our lambda Function.

It is not that easy to do this, first of all, that machine has about 4 IP, I have them all listed in the /etc/hosts, I do not know how all these are set, but I have all the IP in /etc/hosts.
So first step, apache2 need to have it. Pass that to nginx, nginx need to forward that to lambda.

A website which can help us to check the request header
http://requestbin.fullcontact.com

Nginx Setting
Easy thing first, How nginx forward the header from apache2 to lambda is easy, this configuration will do the work.
  # redirect traffic to aws lambda
  resolver 8.8.8.8;
  set $ocpServer 'https://proxy.sillycat.com';
  location / {
    if ( $http_user_agent = 'oldclients' ) {
        proxy_pass       http://localhost:5080;
    }
    if ( $http_user_agent != 'oldclients' ) {
        proxy_pass       $ocpServer;
    }
    #for testing the header, comments out
    #proxy_pass http://requestbin.fullcontact.com/195blxxxx;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_pass_request_headers      on;
    proxy_ssl_server_name on;
  }

proxy_pass_request_headers on; will do the work.

How Apache2 Get the IP
Here is a detail situation in my case. The Apache2 Configuration is not hard code in my case, it is generate by Python Script. So my idea is Python Script can find the IP first, then write that IP in the configuration file there. So it will be simple configuration in Apache2
RequestHeader set X-Sillycat-Serveraddr ‘198.168.1.159'

How Python get the IP
import socket
try:
SILLYCAT_EXTERNAL_IP = socket.gethostbyname(“sillycat-external-ip")
except:
SILLYCAT_EXTERNAL_IP = ""
pass

"""
RequestHeader set X-Sillycat-Serveraddr {sillycat_external_ip}
""".format(sillycat_external_ip=SILLYCAT_EXTERNAL_IP)

That is it, it will work.

References:
http://requestbin.fullcontact.com
https://stackoverflow.com/questions/154441/set-up-an-http-proxy-to-insert-a-header
https://serverfault.com/questions/391554/forward-custom-header-from-nginx-reverse-proxy
https://stackoverflow.com/questions/19751313/forward-request-headers-from-nginx-proxy-server
分享到:
评论

相关推荐

    Windows版nginx去掉header中server后面的信息(nginx版本1.21.1)

    Windows版nginx去掉header中server后面的信息(nginx版本1.21.1) 使用方法: 1、关闭nginx服务 2、将新的nginx.exe替换原有的exe文件 3、重启nginx服务

    教你怎么用Nginx往request的header中添加新字段

    结合提供的文件名,我们可以推断,`2nginx response.png`可能展示了Nginx添加自定义响应头的结果,`1request header中添加apiversion.png`可能描绘了在请求头中添加`apiversion`字段的过程,而`Nginx居然还能实现...

    Apache2Nginx简单试用

    Apache2Nginx是一个开源的linux下运行的命令行工具.它可以把apache 配置文件转换成对应的nginx 配置文件.对于一般的功能. 比如目录 url重写.这都从测试来看.基本上不存在问题.对于不能转换的.会有注释在转换好的配置...

    apache到nginx配置文件转换工具

    一个开源的Linux下运行的命令行工具,能将Apache的配置文件转换成相应的Nginx的配置文件。本工具能自动将Apache Web服务器的配置文件转化成Nginx的配置文件,减少...官网:https://github.com/leeleander/apache2nginx

    实战Nginx取代Apache的高性能Web服务器_文字版

    在很多场景下,Nginx被用作替代Apache服务器的选择,尤其是在高流量网站和需要负载均衡的环境中。本实战指南旨在探讨如何通过Nginx实现高性能的Web服务,以提升网站的响应速度和稳定性。 一、Nginx与Apache的性能...

    apache与nginx安装使用

    Apache的主要配置文件是`/etc/apache2/apache2.conf`(Ubuntu)或`/etc/httpd/conf/httpd.conf`(CentOS/RHEL)。要修改默认站点,编辑`/etc/apache2/sites-available/000-default.conf`或`/etc/httpd/conf.d/...

    Apache Tomcat JBOSS Nginx区别

    Apache Tomcat JBOSS Nginx区别 Apache Tomcat 和 JBOSS 是两种不同的服务器软件,而 Nginx 是一种高性能的 HTTP 服务器。下面我们来详细比较它们的区别: 一、Apache 和 Tomcat Apache 是一个 Web 服务器,...

    cluster+apache+nginx

    2. **负载均衡器模式**:Nginx作为负载均衡器,Apache作为应用服务器,Nginx根据预设的负载均衡算法分发请求,同时可以监控后端服务器的状态,当某台Apache服务器出现问题时,自动停止向其发送请求。 3. **缓存加速...

    Apache + nginx + resin 详细配置

    Apache、Nginx和Resin都是在Web服务器领域中广泛使用的软件。Apache是经典的HTTP服务器,Resin是一款高性能的Java应用服务器,而Nginx以其高效的反向代理和负载均衡能力著称。将这三者结合使用,可以构建出一个高...

    apache2nginx.zip

    【Apache2Nginx简介】 Apache2Nginx(A2N)是一个专为Linux环境设计的开源命令行工具,其主要功能在于帮助用户平滑地将原有的Apache配置转换为Nginx配置。这个工具旨在简化迁移过程,使得在性能优化、负载均衡或...

    apache与nginx区别

    ### Apache与Nginx的区别详解 #### 一、概述 在服务器领域,Apache与Nginx作为两大主流的Web服务器软件,在技术实现上各有特点,适用于不同场景的需求。本文将从多个角度对这两种服务器进行比较分析,帮助读者理解...

    keepalived配置haproxy,apache2,nginx,监听配置

    keepalived配置haproxy,apache2,nginx,监听配置

    php运行环境搭建(apache nginx)

    这里我们关注的是两种常见的服务器环境配置:Apache和Nginx,这两种服务器...Apache和Nginx各有优缺点,选择哪种取决于项目需求和个人偏好。在实际操作中,务必参考官方文档和社区资源,以确保环境的稳定性和安全性。

    学习Nginx HTTP Server.pdf 清晰版

    学习Nginx HTTP Server.pdf 清晰版

    apache+nginx+tomcat

    Apache、Nginx 和 Tomcat 是在 Web 服务器领域中常用的三个组件,它们各自承担着不同的职责,并且经常被组合使用以实现高效、稳定的网站部署和应用服务。 Apache HTTP Server 是世界上最广泛使用的开源 Web 服务器...

    Nginx HTTP Server, Third Edition,英文

    This book is a detailed guide to setting up Nginx in different ways that correspond to actual production situations: as a standalone server, as a reverse proxy, interacting with applications via ...

    nginx替代方案,nginx代替apache与jboss

    ### Nginx 作为 Apache 和 JBoss 的替代方案 #### 背景介绍 随着互联网技术的不断发展,网站流量的增长对服务器性能提出了更高要求。Apache 和 JBoss 是两种广泛使用的 Web 服务器和应用服务器,但在高并发场景下,...

Global site tag (gtag.js) - Google Analytics