haproxy负载均衡服务器

简介

HAProxy是一个tcp/http反向代理,它特别适合于高
可用性环境。事实上,它可以:
——根据静态分配的cookie路由HTTP请求
——在多个服务器之间传播负载,并确保服务器持久性
通过使用HTTP cookie
——在主服务器失败的情况下切换到备份服务器
:接受连接到专用端口的连接,用于服务监视
——停止接受连接而不破坏已有的连接
——在两个方向上添加、修改和删除HTTP头信息
——块请求匹配特定的模式
——向来自URI的经过身份验证的用户报告详细状态
下面简单配置一个haproxy服务器

[root@localhost haproxy]# vim haproxy.cfg 
#---------------------------------------------------------------------
# Example configuration for a possible web application.  See the
# full configuration options online.
#
#   http://haproxy.1wt.eu/download/1.4/doc/configuration.txt
#
#---------------------------------------------------------------------

#---------------------------------------------------------------------
# Global settings
#---------------------------------------------------------------------
global
    # to have these messages end up in /var/log/haproxy.log you will
    # need to:
    #
    # 1) configure syslog to accept network log events.  This is done
    #    by adding the '-r' option to the SYSLOGD_OPTIONS in
    #    /etc/sysconfig/syslog
    #
    # 2) configure local2 events to go to the /var/log/haproxy.log
    #   file. A line like the following can be added to
    #   /etc/sysconfig/syslog
    #
    #    local2.*                       /var/log/haproxy.log
    #
    log         127.0.0.1 local2      # 日志的定义需要在日志服务器的配置文件中定义

    chroot      /var/lib/haproxy
    pidfile     /var/run/haproxy.pid
    maxconn     4000
    user        haproxy
    group       haproxy
    daemon

    # turn on stats unix socket
    stats socket /var/lib/haproxy/stats

#---------------------------------------------------------------------
# common defaults that all the 'listen' and 'backend' sections will
# use if not designated in their block
#---------------------------------------------------------------------
defaults
    mode                    http
    log                     global
    option                  httplog
    option                  dontlognull
    option http-server-close
    option forwardfor       except 127.0.0.0/8
    option                  redispatch
    retries                 3
    timeout http-request    10s
    timeout queue           1m
    timeout connect         10s
    timeout client          1m
    timeout server          1m
    timeout http-keep-alive 10s
    timeout check           10s
    maxconn                 3000

#---------------------------------------------------------------------
# main frontend which proxys to the backends
#---------------------------------------------------------------------
frontend  chenxi
bin *:80  #定义客户端访问的端口
default_backend   webchenxi #定义调度到的组
backend webchenxi  #定义组内的信息
balance  roundrobin    #定义调度算法  roundrobin表示轮巡也表示加权轮巡因为
server CX1 172.16.251.61:80 check    #定义组内的主机;并做健康检测
server CX2 172.16.254.74:8o check   #定义组内的主机;并做健康检测
#frontend  main *:5000
#    acl url_static       path_beg       -i /static /images /javascript /stylesheets

#    acl url_static       path_end       -i .jpg .gif .png .css .js

#   use_backend static          if url_static
#    default_backend             app

#---------------------------------------------------------------------
# static backend for serving up images, stylesheets and such
#---------------------------------------------------------------------
#backend static
#   balance     roundrobin
#    server      static 127.0.0.1:4331 check

#---------------------------------------------------------------------
# round robin balancing between the various backends
#---------------------------------------------------------------------
#backend app
#    balance     roundrobin
#    server  app1 127.0.0.1:5001 check
#    server  app2 127.0.0.1:5002 check
#    server  app3 127.0.0.1:5003 check
#    server  app4 127.0.0.1:5004 check
保存退出

配置日志服务

# rsyslog configuration file

# For more information see /usr/share/doc/rsyslog-*/rsyslog_conf.html
# If you experience problems, see http://www.rsyslog.com/doc/troubleshoot.html

#### MODULES ####

# The imjournal module bellow is now used as a message source instead of imuxsock.
$ModLoad imuxsock # provides support for local system logging (e.g. via logger command)
$ModLoad imjournal # provides access to the systemd journal
#$ModLoad imklog # reads kernel messages (the same are read from journald)
#$ModLoad immark  # provides --MARK-- message capability

# Provides UDP syslog reception
$ModLoad imudp   注释去掉启用
$UDPServerRun 514  注释去掉启用

# Provides TCP syslog reception
#$ModLoad imtcp
#$InputTCPServerRun 514


#### GLOBAL DIRECTIVES ####

# Where to place auxiliary files
$WorkDirectory /var/lib/rsyslog

# Use default timestamp format
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat

# File syncing capability is disabled by default. This feature is usually not required,
# not useful and an extreme performance hit
#$ActionFileEnableSync on

# Include all config files in /etc/rsyslog.d/
$IncludeConfig /etc/rsyslog.d/*.conf

# Turn off message reception via local log socket;
# local messages are retrieved through imjournal now.
$OmitLocalLogging on

# File to store the position in the journal
$IMJournalStateFile imjournal.state


#### RULES ####

# Log all kernel messages to the console.
# Logging much else clutters up the screen.
#kern.*                                                 /dev/console

# Log anything (except mail) of level info or higher.
# Don't log private authentication messages!
*.info;mail.none;authpriv.none;cron.none                /var/log/messages

# The authpriv file has restricted access.
authpriv.*                                              /var/log/secure

# Log all the mail messages in one place.
mail.*                                                  -/var/log/maillog


# Log cron stuff
cron.*                                                  /var/log/cron

# Everybody gets emergency messages
*.emerg                                                 :omusrmsg:*

# Save news errors of level crit and higher in a special file.
uucp,news.crit                                          /var/log/spooler

# Save boot messages also to boot.log
local7.*                                                /var/log/boot.log
local2.*                        /var/log/haproxy.log     #定义日志

# ### begin forwarding rule ###
# The statement between the begin ... end define a SINGLE forwarding
# rule. They belong together, do NOT split them. If you create multiple
# forwarding rules, duplicate the whole block!
# Remote Logging (we use TCP for reliable delivery)
#
# An on-disk queue is created for this action. If the remote host is
# down, messages are spooled to disk and sent when it is up again.
#$ActionQueueFileName fwdRule1 # unique name prefix for spool files
#$ActionQueueMaxDiskSpace 1g   # 1gb space limit (use as much as possible)
#$ActionQueueSaveOnShutdown on # save messages to disk on shutdown
#$ActionQueueType LinkedList   # run asynchronously
#$ActionResumeRetryCount -1    # infinite retries if host is down
# remote host is: name/ip:port, e.g. 192.168.0.1:514, port optional
#*.* @@remote-host:514
# ### end of the forwarding rule ###
保存退出后重启日志服务
[root@localhost haproxy]# systemctl restart rsyslog.service 

启动服务
systemctl start haproxy.service

[root@localhost haproxy]# ss -lnt
State       Recv-Q Send-Q               Local Address:Port                              Peer Address:Port              
LISTEN      0      128                              *:80                                           *:*                  
LISTEN      0      128                              *:22                                           *:*                  
LISTEN      0      100                      127.0.0.1:25                                           *:*                  
LISTEN      0      10                       127.0.0.1:6082                                         *:*                  
LISTEN      0      128                             :::80                                          :::*                  
LISTEN      0      128                             :::22                                          :::*                  
LISTEN      0      100                            ::1:25                                          :::*                   

客户端测试

[root@root ~]# curl 172.16.253.147
<h1> chenxi r2 </h1>
[root@root ~]# curl 172.16.253.147
<h1>chenxi1</h1>
[root@root ~]# curl 172.16.253.147
<h1> chenxi r2 </h1>
[root@root ~]# curl 172.16.253.147
<h1>chenxi1</h1>
[root@root ~]# curl 172.16.253.147
<h1> chenxi r2 </h1>

使用下一个调度方法

#---------------------------------------------------------------------
# Example configuration for a possible web application.  See the
# full configuration options online.
#
#   http://haproxy.1wt.eu/download/1.4/doc/configuration.txt
#
#---------------------------------------------------------------------

#---------------------------------------------------------------------
# Global settings
#---------------------------------------------------------------------
global
    # to have these messages end up in /var/log/haproxy.log you will
    # need to:
    #
    # 1) configure syslog to accept network log events.  This is done
    #    by adding the '-r' option to the SYSLOGD_OPTIONS in
    #    /etc/sysconfig/syslog
    #
    # 2) configure local2 events to go to the /var/log/haproxy.log
    #   file. A line like the following can be added to
    #   /etc/sysconfig/syslog
    #
    #    local2.*                       /var/log/haproxy.log
    #
    log         127.0.0.1 local2      # 日志的定义需要在日志服务器的配置文件中定义

    chroot      /var/lib/haproxy
    pidfile     /var/run/haproxy.pid
    maxconn     4000
    user        haproxy
    group       haproxy
    daemon

    # turn on stats unix socket
    stats socket /var/lib/haproxy/stats

#---------------------------------------------------------------------
# common defaults that all the 'listen' and 'backend' sections will
# use if not designated in their block
#---------------------------------------------------------------------
defaults
    mode                    http
    log                     global
    option                  httplog
    option                  dontlognull
    option http-server-close
    option forwardfor       except 127.0.0.0/8
    option                  redispatch
    retries                 3
    timeout http-request    10s
    timeout queue           1m
    timeout connect         10s
    timeout client          1m
    timeout server          1m
    timeout http-keep-alive 10s
    timeout check           10s
    maxconn                 3000

#---------------------------------------------------------------------
# main frontend which proxys to the backends
#---------------------------------------------------------------------
frontend  chenxi
bind *:80  #定义客户端访问的端口
default_backend   webchenxi #定义调度到的组
backend webchenxi  #定义组内的信息
balance  first    #定义调度算法次此算法是当多台主机存在
server CX1 172.16.251.61:80 check maxconn 3   #定义组内的主机;并做健康检测  定义maxconn的并发连接数
server CX2 172.16.254.74:80 check   #定义组内的主机;并做健康检测
#frontend  main *:5000
#    acl url_static       path_beg       -i /static /images /javascript /stylesheets

#    acl url_static       path_end       -i .jpg .gif .png .css .js

#   use_backend static          if url_static
#    default_backend             app

#---------------------------------------------------------------------
# static backend for serving up images, stylesheets and such
#---------------------------------------------------------------------
#backend static
#   balance     roundrobin
#    server      static 127.0.0.1:4331 check

#---------------------------------------------------------------------
# round robin balancing between the various backends
#---------------------------------------------------------------------
#backend app
#    balance     roundrobin
#    server  app1 127.0.0.1:5001 check
#    server  app2 127.0.0.1:5002 check
#    server  app3 127.0.0.1:5003 check
#    server  app4 127.0.0.1:5004 check
客户端测试
[root@root ~]# ab -c 10 -n 1000 http://172.16.253.147/
This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking 172.16.253.147 (be patient)
Completed 100 requests
Completed 200 requests
Completed 300 requests
Completed 400 requests
Completed 500 requests
Completed 600 requests
Completed 700 requests
Completed 800 requests
Completed 900 requests
Completed 1000 requests
Finished 1000 requests


Server Software:        Apache/2.2.15
Server Hostname:        172.16.253.147
Server Port:            80

Document Path:          /
Document Length:        17 bytes

Concurrency Level:      10
Time taken for tests:   1.029 seconds
Complete requests:      1000
Failed requests:        515
   (Connect: 0, Receive: 0, Length: 515, Exceptions: 0)
Write errors:           0
Total transferred:      286060 bytes
HTML transferred:       19060 bytes
Requests per second:    972.22 [#/sec] (mean)
Time per request:       10.286 [ms] (mean)
Time per request:       1.029 [ms] (mean, across all concurrent requests)
Transfer rate:          271.59 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    2   4.6      1      62
Processing:     1    8   7.3      5      75
Waiting:        1    7   6.8      5      72
Total:          2   10   9.4      7     101

Percentage of the requests served within a certain time (ms)
  50%      7
  66%      9
  75%     11
  80%     14
  90%     19
  95%     25
  98%     35
  99%     47
 100%    101 (longest request)
后端1 的测试日志结果
[root@chenxiyue ~]# tail /var/log/httpd/access_log
172.16.253.147 - - [28/Aug/2017:18:20:49 +0800] "GET / HTTP/1.0" 200 17 "-" "ApacheBench/2.3"
172.16.253.147 - - [28/Aug/2017:18:20:49 +0800] "GET / HTTP/1.0" 200 17 "-" "ApacheBench/2.3"
172.16.253.147 - - [28/Aug/2017:18:20:49 +0800] "GET / HTTP/1.0" 200 17 "-" "ApacheBench/2.3"
172.16.253.147 - - [28/Aug/2017:18:20:49 +0800] "GET / HTTP/1.0" 200 17 "-" "ApacheBench/2.3"
172.16.253.147 - - [28/Aug/2017:18:20:49 +0800] "GET / HTTP/1.0" 200 17 "-" "ApacheBench/2.3"
172.16.253.147 - - [28/Aug/2017:18:20:49 +0800] "GET / HTTP/1.0" 200 17 "-" "ApacheBench/2.3"
172.16.253.147 - - [28/Aug/2017:18:20:49 +0800] "GET / HTTP/1.0" 200 17 "-" "ApacheBench/2.3"
172.16.253.147 - - [28/Aug/2017:18:20:49 +0800] "GET / HTTP/1.0" 200 17 "-" "ApacheBench/2.3"
172.16.253.147 - - [28/Aug/2017:18:20:49 +0800] "GET / HTTP/1.0" 200 17 "-" "ApacheBench/2.3"
172.16.253.147 - - [28/Aug/2017:18:20:49 +0800] "GET / HTTP/1.0" 200 17 "-" "ApacheBench/2.3"
后端2 测试后日志结果
[root@chenxi ~]# tail /var/log/httpd/access_log 
172.16.253.147 - - [28/Aug/2017:18:20:50 +0800] "GET / HTTP/1.0" 200 21 "-" "ApacheBench/2.3"
172.16.253.147 - - [28/Aug/2017:18:20:50 +0800] "GET / HTTP/1.0" 200 21 "-" "ApacheBench/2.3"
172.16.253.147 - - [28/Aug/2017:18:20:50 +0800] "GET / HTTP/1.0" 200 21 "-" "ApacheBench/2.3"
172.16.253.147 - - [28/Aug/2017:18:20:50 +0800] "GET / HTTP/1.0" 200 21 "-" "ApacheBench/2.3"
172.16.253.147 - - [28/Aug/2017:18:20:50 +0800] "GET / HTTP/1.0" 200 21 "-" "ApacheBench/2.3"
172.16.253.147 - - [28/Aug/2017:18:20:50 +0800] "GET / HTTP/1.0" 200 21 "-" "ApacheBench/2.3"
172.16.253.147 - - [28/Aug/2017:18:20:50 +0800] "GET / HTTP/1.0" 200 21 "-" "ApacheBench/2.3"
172.16.253.147 - - [28/Aug/2017:18:20:50 +0800] "GET / HTTP/1.0" 200 21 "-" "ApacheBench/2.3"
172.16.253.147 - - [28/Aug/2017:18:20:50 +0800] "GET / HTTP/1.0" 200 21 "-" "ApacheBench/2.3"
172.16.253.147 - - [28/Aug/2017:18:20:50 +0800] "GET / HTTP/1.0" 200 21 "-" "ApacheBench/2.3"

另一种算法的设置

#---------------------------------------------------------------------
# Example configuration for a possible web application.  See the
# full configuration options online.
#
#   http://haproxy.1wt.eu/download/1.4/doc/configuration.txt
#
#---------------------------------------------------------------------

#---------------------------------------------------------------------
# Global settings
#---------------------------------------------------------------------
global
    # to have these messages end up in /var/log/haproxy.log you will
    # need to:
    #
    # 1) configure syslog to accept network log events.  This is done
    #    by adding the '-r' option to the SYSLOGD_OPTIONS in
    #    /etc/sysconfig/syslog
    #
    # 2) configure local2 events to go to the /var/log/haproxy.log
    #   file. A line like the following can be added to
    #   /etc/sysconfig/syslog
    #
    #    local2.*                       /var/log/haproxy.log
    #
    log         127.0.0.1 local2      # 日志的定义需要在日志服务器的配置文件中定义

    chroot      /var/lib/haproxy
    pidfile     /var/run/haproxy.pid
    maxconn     4000
    user        haproxy
    group       haproxy
    daemon

    # turn on stats unix socket
    stats socket /var/lib/haproxy/stats

#---------------------------------------------------------------------
# common defaults that all the 'listen' and 'backend' sections will
# use if not designated in their block
#---------------------------------------------------------------------
defaults
    mode                    http
    log                     global
    option                  httplog
    option                  dontlognull
    option http-server-close
    option forwardfor       except 127.0.0.0/8
    option                  redispatch
    retries                 3
    timeout http-request    10s
    timeout queue           1m
    timeout connect         10s
    timeout client          1m
    timeout server          1m
    timeout http-keep-alive 10s
    timeout check           10s
    maxconn                 3000

#---------------------------------------------------------------------
# main frontend which proxys to the backends
#---------------------------------------------------------------------
frontend  chenxi
bind *:80  #定义客户端访问的端口
default_backend   webchenxi #定义调度到的组
backend webchenxi  #定义组内的信息
balance  uri    #定义调度算法 Uri  目标
server CX1 172.16.251.61:80 check maxconn 3   #定义组内的主机;并做健康检测
server CX2 172.16.254.74:80 check   #定义组内的主机;并做健康检测
hash-type consistent   对URI最目标目标地址哈希
#frontend  main *:5000
#    acl url_static       path_beg       -i /static /images /javascript /stylesheets

#    acl url_static       path_end       -i .jpg .gif .png .css .js

#   use_backend static          if url_static
#    default_backend             app

#---------------------------------------------------------------------
# static backend for serving up images, stylesheets and such
#---------------------------------------------------------------------
#backend static
#   balance     roundrobin
#    server      static 127.0.0.1:4331 check

#---------------------------------------------------------------------
# round robin balancing between the various backends
#---------------------------------------------------------------------
#backend app
#    balance     roundrobin
#    server  app1 127.0.0.1:5001 check
#    server  app2 127.0.0.1:5002 check
#    server  app3 127.0.0.1:5003 check
#    server  app4 127.0.0.1:5004 check
[root@localhost haproxy]# systemctl reload haproxy.service  重启服务
r1的设置
[root@chenxiyue ~]# cd /var/www/html/
[root@chenxiyue html]# mkdir chenxidy
[root@chenxiyue html]# echo "r1serve" > chenxidy/index.html
[root@chenxiyue html]# cat index.html 
<h1>chenxi1</h1>
[root@chenxiyue html]# cat chenxidy/index.html 
r1serve
r2 的相关设置
[root@chenxi ~]# cd /var/www/html/
[root@chenxi html]# mkdir chenxidy
[root@chenxi html]# echo "server 2" chenxidy/index.html
server 2 chenxidy/index.html
[root@chenxi html]# echo "server 2" > chenxidy/index.html
客户端测试
[root@root ~]# curl 172.16.253.147/chenxidy/index.html
r1serve
[root@root ~]# curl 172.16.253.147/chenxidy/index.html
r1serve
[root@root ~]# curl 172.16.253.147/chenxidy/index.html
r1serve
[root@root ~]# curl 172.16.253.147/chenxidy/index.html
r1serve
[root@root ~]# curl 172.16.253.147/chenxidy/index.html
r1serve
[root@root ~]# curl 172.16.253.147/chenxidy/index.html
r1serve
[root@root ~]# curl 172.16.253.147/chenxidy/index.html
r1serve
[root@root ~]# curl 172.16.253.147/chenxidy/index.html
r1serve

浏览器只要相同的就发给同一台主机 ;启用压缩

#---------------------------------------------------------------------
# Example configuration for a possible web application.  See the
# full configuration options online.
#
#   http://haproxy.1wt.eu/download/1.4/doc/configuration.txt
#
#---------------------------------------------------------------------

#---------------------------------------------------------------------
# Global settings
#---------------------------------------------------------------------
global
    # to have these messages end up in /var/log/haproxy.log you will
    # need to:
    #
    # 1) configure syslog to accept network log events.  This is done
    #    by adding the '-r' option to the SYSLOGD_OPTIONS in
    #    /etc/sysconfig/syslog
    #
    # 2) configure local2 events to go to the /var/log/haproxy.log
    #   file. A line like the following can be added to
    #   /etc/sysconfig/syslog
    #
    #    local2.*                       /var/log/haproxy.log
    #
    log         127.0.0.1 local2      # 日志的定义需要在日志服务器的配置文件中定义

    chroot      /var/lib/haproxy
    pidfile     /var/run/haproxy.pid
    maxconn     4000
    user        haproxy
    group       haproxy
    daemon

    # turn on stats unix socket
    stats socket /var/lib/haproxy/stats

#---------------------------------------------------------------------
# common defaults that all the 'listen' and 'backend' sections will
# use if not designated in their block
#---------------------------------------------------------------------
defaults
    mode                    http
    log                     global
    option                  httplog
    option                  dontlognull
    option http-server-close
    option forwardfor       except 127.0.0.0/8
    option                  redispatch
    retries                 3
    timeout http-request    10s
    timeout queue           1m
    timeout connect         10s
    timeout client          1m
    timeout server          1m
    timeout http-keep-alive 10s
    timeout check           10s
    maxconn                 3000

#---------------------------------------------------------------------
# main frontend which proxys to the backends
#---------------------------------------------------------------------
frontend  chenxi
bind *:80
compression algo gzip
compression type text/html text/plain application/xml application/javascript
default_backend   webchenxi 
backend webchenxi  
balance  hdr(User-Agent) 
server CX1 172.16.251.61:80 check maxconn 3
server CX2 172.16.254.74:80 check
hash-type consistent
#frontend  main *:5000
#    acl url_static       path_beg       -i /static /images /javascript /stylesheets

#    acl url_static       path_end       -i .jpg .gif .png .css .js

#   use_backend static          if url_static
#    default_backend             app

#---------------------------------------------------------------------
# static backend for serving up images, stylesheets and such
#---------------------------------------------------------------------
#backend static
#   balance     roundrobin
#    server      static 127.0.0.1:4331 check

#---------------------------------------------------------------------
# round robin balancing between the various backends
#---------------------------------------------------------------------
#backend app
#    balance     roundrobin
#    server  app1 127.0.0.1:5001 check
#    server  app2 127.0.0.1:5002 check
#    server  app3 127.0.0.1:5003 check
#    server  app4 127.0.0.1:5004 check
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,684评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,143评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,214评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,788评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,796评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,665评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,027评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,679评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,346评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,664评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,766评论 1 331
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,412评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,015评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,974评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,073评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,501评论 2 343

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,596评论 18 139
  • 目录: HAProxy是什么 HAProxy的核心能力和关键特性 HAProxy的安装和运行 使用HAProxy搭...
    kelgon阅读 79,754评论 9 159
  • 参考文档: 1.haproxy:http://www.haproxy.org/ 本文涉及haproxy的安装,并做...
    Netonline阅读 2,413评论 1 51
  • 互联网架构基础知识 一、网站常见架构 负载层 页面缓存层 web层 数据层 二、运维法则 缓存为王 尽量在前端(缓...
    魏镇坪阅读 4,786评论 0 9
  • ** 内容安排: ** 简介 区别 Nginx、LVS及HAProxy负载均衡软件的优缺点 一、简介 ** 所谓四...
    薛晨阅读 67,153评论 12 159