Haproxy配置支持https获取用户IP地址

global
    log         127.0.0.1 local0

    chroot      /var/lib/haproxy        #chroot运行路径
    pidfile     /var/run/haproxy.pid    #haproxy 进程PID文件
    maxconn     65535                   #默认最大连接数,需考虑ulimit-n限制
    user        haproxy
    group       haproxy
    daemon                              #以后台形式运行harpoxy
    tune.ssl.default-dh-param 2048
  ssl-server-verify none
    stats socket /var/lib/haproxy/stats

defaults
    option                  forwardfor
    option                  httpclose
    option                  dontlognull #不记录健康检查日志信息
    option                  redispatch  #当serverId对应的服务器挂掉后,强制定向到其他健康的服务器,以后将不支持
    retries                 3           #两次连接失败就认为是服务器不可用,也可以通过后面设置
    timeout connect         10s         #连接超时
    timeout client          50s         #客户端超时
    timeout server          50s         #服务器超时
    maxconn                 65535       #默认最大连接数,需考虑ulimit-n限制

########统计页面配置########

listen admin_stats
    bind        0.0.0.0:5000            #设置Frontend和Backend的组合体,监控组的名称,按需要自定义名称
    mode        http                    #http的7层模式
    stats       refresh 30s             #统计页面自动刷新时间
    stats       uri     /haproxy        #统计页面url
    stats       realm   Cloud\Haproxy   #统计页面密码框上提示文本
    stats       auth    admin:admin     #设置监控页面的用户和密码:admin,可以设置多个用户名
    stats       hide-version            #隐藏统计页面上HAProxy的版本信息
    stats       admin if TRUE           #设置手工启动/禁用,后端服务器(haproxy-1.4.9以后版本)

########frontend前端配置##############

########backend后端配置##############

listen http_80
    bind 0.0.0.0:80
    mode http
    balance leastconn
    log global
    log-format "%Tl",%{+Q}ci,"%fi:%fp",%{+Q}bi,%{+Q}r,%ST,%B,%{+Q}hr,%Tt
    option httpclose
    option forwardfor
    option http-server-close
    capture request header Host len 255
    capture request header User-Agent len 255
    capture request header Referer len 255
    capture request header Cookie len 255
    timeout http-request 50s
    timeout http-keep-alive 55s
    server http_80_web1_80 192.168.6.15:80 cookie web1_80 weight 10 check inter 3000 rise 3 fall 5
    server http_80_web2_80 192.168.6.16:80 cookie web2_80 weight 10 check inter 3000 rise 3 fall 5
    acl ericdress_com hdr(host) -m str ericdress.com
    redirect prefix http://www.ericdress.com code 301 if ericdress_com

########tcp配置#################
listen https_443
    bind *:443 ssl crt /etc/ssl/certs/eric.pem  #需要设置证书文件的位置
  mode http
  option httpclose
  option forwardfor
  reqadd X-Forwarded-Proto:\ https            #增加http头
  capture request header Host len 255
  capture request header User-Agent len 255
  capture request header Referer len 255
  capture request header Cookie len 255
    timeout http-request 50s
    timeout http-keep-alive 55s
    server http_443_web1_443 192.168.6.15:443 ssl cookie web1_443 weight 10 check inter 3000 rise 3 fall 5
  server http_443_web2_443 192.168.6.16:443 ssl cookie web2_443 weight 10 check inter 3000 rise 3 fall 5
时间: 2024-11-01 17:44:47

Haproxy配置支持https获取用户IP地址的相关文章

C# 获取用户IP地址(转载)

[ASP.NET开发]获取客户端IP地址 via C# 说明:本文中的内容是我综合博客园上的博文和MSDN讨论区的资料,再通过自己的实际测试而得来,属于自己原创的内容说实话很少,写这一篇是为了记录自己在项目中做过的事情,同时也想抛砖引玉.参考的博文及其作者在下文均有提及.待到自己以后对HTTP.TCP/IP等知识学深入了,一定再来这里深入讨论这个内容. 一.名词 首先说一下接下来要讲到的一些名词. 在Web开发中,我们大多都习惯使用HTTP请求头中的某些属性来获取客户端的IP地址,常见的属性是R

Flask框架获取用户IP地址的方法

本文实例讲述了python使用Flask框架获取用户IP地址的方法.分享给大家供大家参考.具体如下: 下面的代码包含了html页面和python代码,非常详细,如果你正使用Flask,也可以学习一下最基本的Flask使用方法. python代码如下: from flask import Flask, render_template, request # Initialize the Flask application app = Flask(__name__) # Default route,

获取用户Ip地址通用方法

这个来自一些项目中,获取用户Ip,进行用户操作行为的记录,是常见并且经常使用的. 一般朋友,都会看到如下通用获取IP地址方法. 1 public static function getIp() 2 { 3 if ($HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"]) 4 { 5 $ip = $HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"]; 6 } 7 elseif ($HTTP_SERVER_VAR

【用jQuery来判断浏览器的类型】及【javascript获取用户ip地址】

用jQuery来判断浏览器的类型,主要是使用$.browser这个工具类,使用方法: $.browser.['浏览器关键字'] //谷歌浏览器.360浏览器等其他一些浏览器,没有专门的判断 function appInfo() { var bro = $.browser; var binfo = ""; if (bro.msie) { binfo = "Microsoft Internet Explorer " + bro.version; // bro.versi

Linux 最小化安装后IP的配置(手动获取静态IP地址)

一.图形化界面配置(假设为电脑A) 如果你的Linux安装有图形化界面,那么通过以下方式来配置: 我这里是有两块网卡,第一个网卡在上篇中已经通过DHCP来配置了:Linux 最小化安装后IP的配置(DHCP获取IP地址) 第一块王卡: 看一下配置2: 另外一块网卡打算使用手动获取 看一下配置1:  二.如果你的Linux是最小安装请看下面的配置(电脑B) 也是两块网卡,第一块网卡同样是DHCP获取IP,在上篇中已经通过DHCP来配置了:Linux 最小化安装后IP的配置(DHCP获取IP地址),

用户登录时,获取用户ip地址

使用django来获取用户访问的IP地址,如果用户是正常情况下通过request.META['REMOTE_ADDR']  可以获得用户的IP地址.但是有些网站服务器会使用ngix等代理http,或者是该网站做了负载均衡,导致使用remote_addr抓取到的是1270.0.1,这时使用HTTP_X_FORWARDED_FOR才获得是用户的真实IP. 推荐使用以下代码 if request.META.has_key('HTTP_X_FORWARDED_FOR'): ip = request.ME

获取用户IP地址

// <summary> /// 取得客户端真实IP.如果有代理则取第一个非内网地址 /// by flower.b /// </summary> public static string IPAddress { get { string result = String.Empty; result = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"]; if (result !

获取用户ip地址,为什么获取不到代理过之后的

<%@ page language="java" contentType="text/html; charset=UTF-8"     pageEncoding="UTF-8" import="org.apache.commons.lang3.StringUtils;"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN&q

C#获取真实IP地址实现方法

通常来说,大家获取用户IP地址常用的方法是: 1 string IpAddress = ""; 2 if((HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"]!=null 3 && HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"] !=String.Empty)