第十八周作業(yè)

1宫盔、運(yùn)用haproxy實(shí)現(xiàn)nginx服務(wù)負(fù)載均衡

測(cè)試環(huán)境:

Nginx1: 172.16.100.151 port:80

Nginx2:172.16.100.155 port:80

Haproxy:172.16.100.156

安裝環(huán)境

1.Nginx安裝過(guò)程略

2.配置nginx方便測(cè)試效果

修改nginx安裝目錄下/html/index.html文件的內(nèi)容谴供,方便測(cè)試效果

172.16.100.155--index.html

172.16.100.151--index.html

檢查nginx配置文件,并啟動(dòng)/重啟

3.安裝haproxy

這里采用的是yum安裝haproxy1.5

haproxy-1.5

4.配置haproxy

Yum安裝haproxy在默認(rèn)目錄/etc/haproxy下,配置文件為haproxy.cfg

修改配置文件端口

修改bind ip:端口

修改backend app地址

修改backend app地址

此處僅做測(cè)試锦援,所以backend static沒(méi)有做過(guò)多修改儒恋,直接改為本機(jī)地址。

5.測(cè)試負(fù)載

訪問(wèn)172.16.100.156黄刚,可以看到結(jié)果

強(qiáng)制刷新后

反復(fù)刷新可以發(fā)現(xiàn)實(shí)現(xiàn)了輪詢效果

6.測(cè)試高可用

保持其他設(shè)置不變捎谨,關(guān)掉172.16.100.151的nginx,刷新172.16.100.156發(fā)現(xiàn)頁(yè)面停留在172.16.100.155

2、搭建haproxy實(shí)現(xiàn)mysql負(fù)載均衡

1.Mysql安裝過(guò)程略過(guò)

2.配置mysql

配置172.16.100.151的mysql

編輯/etc/my.cnf文件涛救,在mysqld模塊加入以下內(nèi)容:

server-id=1? ? ? ? ? ? ? ? ? ? ? ? ? ?? #server的唯一標(biāo)識(shí)

auto_increment_offset=1? ? ? ? ? ? ? ? ? #自增id起始值

auto_increment_increment=2? ? ? ? ? ? ? ? #每次自增數(shù)字

log-bin = mysql-bin? ? ? ? ? ? ? ? ? ? ? ? ?? #打開二進(jìn)制功能,MASTER主服務(wù)器必須打開此項(xiàng)

max_binlog_size=1024M? ? ? ? ? ? ? ? ? ? ? ? ? #binlog單文件最大值

replicate-ignore-db = mysql? ? ? ? ? ? ? ? ? ? #忽略不同步主從的數(shù)據(jù)庫(kù)

replicate-ignore-db = information_schema

replicate-ignore-db = performance_schema

replicate-ignore-db = test

保存修改畏邢,重啟mysql服務(wù),檢查端口检吆,服務(wù)等是否正常

進(jìn)入mysql舒萎,為mysql添加主從同步用賬戶

mysql> grant replication slave on *.* to 'repl'@'172.16.100.155' identified by '123456';

mysql> show master status;? 在172.16.100.151上查看master狀態(tài)

在151機(jī)的mysql內(nèi)再執(zhí)行:

mysql> change master to master_host='172.16.100.155',\

master_port=3306,master_user='repl',master_password='123456',\

master_log_file='mysql-bin.000001',master_log_pos=120;?

Mysql-bin二進(jìn)制文件對(duì)應(yīng)155的二進(jìn)制文件,master_log_pos對(duì)應(yīng)155的position

mysql> start slave;? 開啟主從服務(wù)

mysql> show slave status\G; 查看狀態(tài)

主從同步成功蹭沛。

配置172.16.100.155的mysql

兩者過(guò)程大致相同

編輯/etc/my.cnf文件臂寝,在mysqld模塊加入以下內(nèi)容:

server-id=2? ? ? ? ? ? ? ? ? ? ? ? ?? #server的唯一標(biāo)識(shí),不可重復(fù)

auto_increment_offset=1? ? ? ? ? ? ? ? ? #自增id起始值

auto_increment_increment=2? ? ? ? ? ? ? ? #每次自增數(shù)字摊灭,一共有幾臺(tái)mysql則為幾咆贬,此處一共兩臺(tái)mysql,故而設(shè)為2

log-bin = mysql-bin? ? ? ? ? ? ? ? ? ? ? ? ?? #打開二進(jìn)制功能,MASTER主服務(wù)器必須打開此項(xiàng)

max_binlog_size=1024M? ? ? ? ? ? ? ? ? ? ? ? ? #binlog單文件最大值

replicate-ignore-db = mysql? ? ? ? ? ? ? ? ? ? #忽略不同步主從的數(shù)據(jù)庫(kù)

replicate-ignore-db = information_schema

replicate-ignore-db = performance_schema

replicate-ignore-db = test

保存修改斟或,重啟mysql服務(wù)素征,檢查端口,服務(wù)等是否正常

進(jìn)入mysql萝挤,為mysql添加主從同步用賬戶

mysql> grant replication slave on *.* to 'repl'@'172.16.100.151' identified by '123456';

mysql> show master status;? 在172.16.100.155上查看master狀態(tài)

在155機(jī)的mysql內(nèi)再執(zhí)行:

mysql> change master to master_host='172.16.100.151',\

master_port=3306,master_user='repl',master_password='123456',\

master_log_file='mysql-bin.000001',master_log_pos=308415;?

Mysql-bin二進(jìn)制文件對(duì)應(yīng)151的二進(jìn)制文件御毅,master_log_pos對(duì)應(yīng)151的position

mysql> start slave;? 開啟主從服務(wù)

mysql> show slave status\G; 查看狀態(tài)

備注:

如果出現(xiàn)slave_IO_running:NO的情況,在確保網(wǎng)絡(luò)怜珍,數(shù)據(jù)庫(kù)權(quán)限都正常的情況下端蛆,一般是由于所要連接的主庫(kù)position值發(fā)生變化,導(dǎo)致在建立主從時(shí)沒(méi)有對(duì)應(yīng)上正確的position酥泛,一般原因是主庫(kù)數(shù)據(jù)庫(kù)存在讀寫過(guò)程今豆。

3.配置haproxy實(shí)現(xiàn)mysql負(fù)載均衡

在haproxy機(jī)172.16.100.156上

修改haproxy配置文件內(nèi)容:global

? ? ? ? daemon

? ? ? ? nbproc 1

? ? ? ? pidfile /var/run/haproxy.pid

defaults

? ? ? ? mode tcp? ? ? ? ? ? ?? #默認(rèn)的模式mode { tcp|http|health },tcp是4層柔袁,http是7層呆躲,health只會(huì)返回OK

? ? ? ? retries 2? ? ? ? ? ? ?? #兩次連接失敗就認(rèn)為是服務(wù)器不可用,也可以通過(guò)后面設(shè)置

? ? ? ? option redispatch? ? ?? #當(dāng)serverId對(duì)應(yīng)的服務(wù)器掛掉后捶索,強(qiáng)制定向到其他健康的服務(wù)器

? ? ? ? option abortonclose? ?? #當(dāng)服務(wù)器負(fù)載很高的時(shí)候插掂,自動(dòng)結(jié)束掉當(dāng)前隊(duì)列處理比較久的鏈接

? ? ? ? maxconn 4096? ? ? ? ? ? #默認(rèn)的最大連接數(shù)

? ? ? ? timeout connect 5000ms? #連接超時(shí)

? ? ? ? timeout client 30000ms? #客戶端超時(shí)

? ? ? ? timeout server 30000ms? #服務(wù)器超時(shí)

? ? ? ? #timeout check 2000? ? ? #=心跳檢測(cè)超時(shí)

? ? ? ? log 127.0.0.1 local0 err #[err warning info debug]

########test1配置#################

listen test1

? ? ? ? bind 0.0.0.0:3306

? ? ? ? mode tcp

? ? ? ? #maxconn 4086

? ? ? ? #log 127.0.0.1 local0 debug

? ? ? ? server s1 172.16.100.151:3306

? ? ? ? server s2 172.16.100.155:3306

########frontend配置##############

重新啟動(dòng)haproxy,連接mysql測(cè)試即可

3腥例、搭建tomcat服務(wù)器辅甥,并通過(guò)nginx反向代理訪問(wèn)

http://www.reibang.com/p/a3713dc1fd38

4、搭建Tomcat燎竖,并基于memcached實(shí)現(xiàn)會(huì)話共享

Memcached是一款免費(fèi)璃弄、開源、分布式的內(nèi)存對(duì)象緩存系統(tǒng), 用于減少數(shù)據(jù)庫(kù)的負(fù)載, 加快web應(yīng)用程序的訪問(wèn). Memcached簡(jiǎn)單并且強(qiáng)大, 其簡(jiǎn)單的設(shè)計(jì)加快了部署, 易于開發(fā), 緩存解決了面臨的大量數(shù)據(jù)時(shí)很多的問(wèn)題.

[root@mem-node1 ~]# yum -y install libevent libevent-devel

[root@mem-node1 ~]# cd /usr/local/src/

[root@mem-node1 src]# ll memcached-1.4.34.tar.gz? ? ? ? ? ? ? ? ? ?

-rw-r--r-- 1 root root 391131 Jun 27 07:41 memcached-1.4.34.tar.gz

[root@mem-node1 src]# tar -zvxf memcached-1.4.34.tar.gz

[root@mem-node1 src]# cd memcached-1.4.34? ? ? ? ? ? ? ?

[root@mem-node1 memcached-1.4.34]# ./configure --prefix=/usr/local/memcached

[root@mem-node1 memcached-1.4.34]# make && make install

啟動(dòng)memcached构回,端口11211可以根據(jù)自己需要修改不同端口

[root@mem-node1 ~]# /usr/local/memcached/bin/memcached -d -m 512 -u root -p 11211 -c 1024 -P /var/lib/memcached.11211pid

查看memcached進(jìn)程是否起來(lái)

[root@mem-node1 ~]# ps -ef|grep memcached

root? ? ? 1340? ?? 1? 0 14:34 ?? ? ? ? 00:00:00 /usr/local/memcached/bin/memcached -d -m 512 -u root -p 11211 -c 1024 -P /var/lib/memcached.11211pid

root? ? ? 1400 16303? 0 14:35 pts/0? ? 00:00:00 grep memcached

[root@mem-node1 ~]# lsof -i:11211

COMMAND? ? PID USER?? FD?? TYPE?? DEVICE SIZE/OFF NODE NAME

memcached 1340 root?? 26u? IPv4 18958545? ? ? 0t0? TCP *:memcache (LISTEN)

memcached 1340 root?? 27u? IPv6 18958546? ? ? 0t0? TCP *:memcache (LISTEN)

memcached 1340 root?? 28u? IPv4 18958549? ? ? 0t0? UDP *:memcache

memcached 1340 root?? 29u? IPv4 18958549? ? ? 0t0? UDP *:memcache

memcached 1340 root?? 30u? IPv4 18958549? ? ? 0t0? UDP *:memcache

memcached 1340 root?? 31u? IPv4 18958549? ? ? 0t0? UDP *:memcache

memcached 1340 root?? 32u? IPv6 18958550? ? ? 0t0? UDP *:memcache

memcached 1340 root?? 33u? IPv6 18958550? ? ? 0t0? UDP *:memcache

memcached 1340 root?? 34u? IPv6 18958550? ? ? 0t0? UDP *:memcache

memcached 1340 root?? 35u? IPv6 18958550? ? ? 0t0? UDP *:memcache

測(cè)試一下memcached連接夏块,如下說(shuō)明成功(輸入quit退出)

[root@mem-node1 ~]# telnet 192.168.10.203 11211

Trying 192.168.10.203...

Connected to 192.168.10.203.

Escape character is '^]'.

[root@Tomcat-node1 ~]# cd /usr/local/src/MSM_Software

[root@Tomcat-node1 MSM_Software]# ll

total 1212

-rw-rw-r--. 1 root root? 53259 Aug 27 09:53 asm-5.2.jar

-rw-rw-r--. 1 root root 323740 Aug 27 09:51 kryo-4.0.0.jar

-rw-rw-r--. 1 root root? 85217 Aug 27 09:51 kryo-serializers-0.38.jar

-rw-rw-r--. 1 root root 152401 Aug 27 09:49 memcached-session-manager-1.9.7.jar

-rw-rw-r--. 1 root root? 10788 Aug 27 09:49 memcached-session-manager-tc8-1.9.7.jar

-rw-rw-r--. 1 root root?? 5711 Aug 27 09:52 minlog-1.3.0.jar

-rw-rw-r--. 1 root root? 37160 Aug 27 09:51 msm-kryo-serializer-1.9.7.jar

-rw-rw-r--. 1 root root? 51287 Aug 27 09:53 objenesis-2.4.jar

-rw-rw-r--. 1 root root? 20883 Aug 27 09:52 reflectasm-1.11.3.jar

-rw-rw-r--. 1 root root 472838 Aug 27 09:50 spymemcached-2.12.2.jar

特別注意:

memcached-session-manager-tc8-1.9.7.jar中的tc8為tomcat的版本號(hào)疏咐。

一定要注意:不同版本號(hào)的tomcat,對(duì)應(yīng)的msm包也不同脐供。此處為tomcat8的jar包凳鬓。

需要把上面這些MSM依賴的jar包下載后全部上傳到兩臺(tái)機(jī)器的tomcat安裝路徑的lib/ 目錄下

[root@Tomcat-node1 MSM_Software]# \cp -rf /usr/local/src/MSM_Software/* /usr/local/tomcat8/lib/

接下來(lái)進(jìn)行序列化tomcat配置,序列化tomcat配置的方法有很多種:

java默認(rèn)序列化tomcat配置患民、javolution序列化tomcat配置、xstream序列化tomcat配置垦梆、flexjson序列化tomcat配置和kryo序列化tomcat配置匹颤。

官網(wǎng)介紹說(shuō) 使用kryo序列化tomcat的效率最高,所以這里只介紹kryo序列化托猩。

在No-Stick模式和Stick模式下context.xml文件配置也有所不同(一般用的是No-Stick模式)

只需要修改conf/context.xml文件:

[root@Tomcat-node1 ~]# cd /usr/local/tomcat8/conf/

[root@Tomcat-node1 conf]# cp context.xml context.xml.bak

a)No-Stick模式

記子”汀:多個(gè)tomcat實(shí)例時(shí) 需要選擇Non-Sticky模式,即sticky="false"

[root@Tomcat-node1 conf]# vim context.xml? ? ? ? ? ? ? ? ? ? ?? #在<Context>和</Context>之間添加下面內(nèi)容.就在底部</Context>之前添加就行

.......

? ? <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"

? ? ? ?? memcachedNodes="n1:192.168.10.203:11211,n2:192.168.10.205:11211"

? ? ? ?? lockingMode="auto"

? ? ? ?? sticky="false"

? ? ? ?? sessionBackupAsync="false"

? ? ? ?? sessionBackupTimeout= "1000"?

? ? ? ?? copyCollectionsForSerialization="true"

? ? ? ?? requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"

? ? ? ?? transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"

? ? />

第一臺(tái)tomcat節(jié)點(diǎn)的congtext.xml配置好之后京腥,再將該文件拷貝到另一臺(tái)tomcat節(jié)點(diǎn)的相同路徑下

b) Stick模式赦肃。

故障轉(zhuǎn)移配置節(jié)點(diǎn)(failoverNodes),不能使用在Non-Sticky模式公浪,多個(gè)使用空格或逗號(hào)分開他宛,配置某個(gè)節(jié)點(diǎn)為備份節(jié)點(diǎn)。

當(dāng)其他節(jié)點(diǎn)都不可用時(shí)才會(huì)存儲(chǔ)到備份節(jié)點(diǎn)欠气,適用于sticky模式(即一臺(tái)tomcat厅各,多臺(tái)memcached)。

[root@Tomcat-node1 conf]# vim context.xml? ? ? ? ? ? ?

......

? ? <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"

? ? ? ? ? ?? memcachedNodes="n1:192.168.10.203:11211,n2:192.168.10.205:11211"? ? ? ? ? ? #多個(gè)memcached之間用空格或逗號(hào)隔開都可以的

? ? ? ? ? ?? sticky="true"

? ? ? ? ? ?? failoverNodes="n2"? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

? ? ? ? ? ?? requestUriIgnorePattern=".*\.(png|gif|jpg|css|js|swf|flv)$"

? ? ? ? ? ?? transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"

? ? ? ? ? ?? copyCollectionsForSerialization="true"

? ? />

第一臺(tái)tomcat節(jié)點(diǎn)的congtext.xml配置好之后预柒,再將該文件拷貝到另一臺(tái)tomcat節(jié)點(diǎn)的相同路徑下队塘,并將failoverNodes后面的參數(shù)改為n1

配置好之后,一定要記得重啟兩臺(tái)機(jī)器的tomcat服務(wù)!

[root@Tomcat-node1 ~]# /usr/local/tomcat8/bin/shutdown.sh? ? ? #或者直接使用kill殺死

[root@Tomcat-node1 ~]# lsof -i:8080

[root@Tomcat-node1 ~]# /usr/local/tomcat8/bin/startup.sh

======================================================================================

Manager 各參數(shù)說(shuō)明:

memcachedNodes? ?? 必選項(xiàng),memcached的節(jié)點(diǎn)信息宜鸯,多個(gè)memcached節(jié)點(diǎn),中間需要使用空格

failoverNodes="n2"? 表示當(dāng)前session保持到n1的memcached節(jié)點(diǎn)上

failoverNodes? ? ? 可選項(xiàng)憔古,不能使用在non-sticky sessions模式。故障轉(zhuǎn)移配置節(jié)點(diǎn)淋袖,多個(gè)使用空格或逗號(hào)分開鸿市,配置某個(gè)節(jié)點(diǎn)為備份節(jié)點(diǎn),

當(dāng)其他節(jié)點(diǎn)都不可用時(shí)才會(huì)存儲(chǔ)到備份節(jié)點(diǎn)适贸,官方建議配置為和tomcat同服務(wù)器的節(jié)點(diǎn)灸芳。

理由如下:

假如有兩臺(tái)服務(wù)器m1,m2,其中m1部署tomcat和memcached節(jié)點(diǎn)n1拜姿,m2部署memcached節(jié)點(diǎn)n2烙样。

如果配置tomcat的failoverNodes值為n2或者不配置,則當(dāng)服務(wù)器m1掛掉后n1和tomcat中保存的session會(huì)丟失蕊肥,而n2中未保存或者只保存了部分session谒获,

這就造成 部分用戶狀態(tài)丟失蛤肌。

如果配置tomcat的failoverNodes值為n1,則當(dāng)m1掛掉后因?yàn)閚2中保存了所有的session批狱,所以重啟tomcat的時(shí)候用戶狀態(tài)不會(huì)丟失裸准。

為什么n2中保存了所有的session? 因?yàn)閒ailoverNodes配置的值是n1,只有當(dāng)n2節(jié)點(diǎn)不可用時(shí)才會(huì)把session存儲(chǔ)到n1赔硫,所以這個(gè)時(shí)候n1中是沒(méi)有保存任何session的炒俱。

lockingMode? 可選值,默認(rèn)none爪膊,只對(duì)non-sticky有效权悟。

requestUriIgnorePattern? 可選值,制定忽略那些請(qǐng)求的session操作推盛,一般制定靜態(tài)資源如css,js一類的峦阁。

sessionBackupAsync? ? 可選值,默認(rèn)true耘成,是否異步的方式存儲(chǔ)到memcached榔昔。

sessionBackupTimeout? 可選項(xiàng),默認(rèn)100毫秒瘪菌,異步存儲(chǔ)session的超時(shí)時(shí)間撒会。

如果memcached session manager的會(huì)話共享配置后,重啟tomcat服務(wù)沒(méi)有報(bào)錯(cuò),但是訪問(wèn)頁(yè)面的時(shí)候報(bào)錯(cuò),頁(yè)面訪問(wèn)失敗,如下在logs/catalina.out日志里發(fā)現(xiàn)的錯(cuò)誤:SEVERE [http-nio-8080-exec-1] org.apache.coyote.http11.AbstractHttp11Processor.process Error processing request java.lang.NoSuchFieldError: attributes

5、haproxy開啟日志功能

修改haproxy配置文件

vi /etc/haproxy/haproxy.cfg 可以看到如下行控嗜,把這個(gè)開啟

log 127.0.0.1 local2

沒(méi)有指定端口茧彤,默認(rèn)為udp 514

修改rsyslog配置文件

vi /etc/rsyslog.conf

#啟用在udp 514端口接收日志消息

$ModLoad imudp

$UDPServerRun 514

#在rules(文本最末)節(jié)中添加如下信息

local2.* /var/log/haproxy.log

#表示將發(fā)往facility local2的消息寫入haproxy.log文件中,"local2.* "前面的local2表示facility,預(yù)定義的疆栏。*表示所有等級(jí)的

重啟rsyslog服務(wù)

#重啟 rsyslog

systemctl restart rsyslog

#重啟haproxy

systemctl restart haproxy

查看/var/log/haproxy.log文件應(yīng)該能看到日志信息

查看日志

tail -f /var/log/haproxy.log

syslog 通過(guò) Facility 的概念來(lái)定義日志消息的來(lái)源曾掂,以便對(duì)日志進(jìn)行分類,F(xiàn)acility 的種類有:

類別? 解釋

kern? ? 內(nèi)核消息

user? ? 用戶信息

mail? ? 郵件系統(tǒng)消息

daemon? 系統(tǒng)服務(wù)消息

auth? ? 認(rèn)證系統(tǒng)

authpriv? ? 權(quán)限系統(tǒng)

syslog? 日志系統(tǒng)自身消息

cron? ? 計(jì)劃安排

news? ? 新聞信息

local0~7? ? 由自定義程序使用

而另外一部分 priority 也稱之為 serverity level壁顶,除了日志的來(lái)源以外珠洗,對(duì)統(tǒng)一源產(chǎn)生日志消息還需要進(jìn)行優(yōu)先級(jí)的劃分,而優(yōu)先級(jí)的類別有一下幾種:

類別? 解釋

emergency?? 系統(tǒng)已經(jīng)無(wú)法使用了

alert?? 必須立即處理的問(wèn)題

critical? ? 很嚴(yán)重了

error?? 錯(cuò)誤

warning 警告信息

notice? 系統(tǒng)正常若专,但是比較重要

informational?? 正常

debug?? debug的調(diào)試信息

panic?? 很嚴(yán)重但是已淘汰不常用

none? ? 沒(méi)有優(yōu)先級(jí)许蓖,不記錄任何日志消息

6、開啟haproxy監(jiān)控頁(yè)面

在/etc/haproxy/haproxy.cfg中進(jìn)行配置:

listen admin_stats

? ? ? ? mode? ? http

? ? ? ? stats?? enable

? ? ? ? bind? ? *:8080? // 監(jiān)聽端口

? ? ? ? stats?? refresh 30s

? ? ? ? stats?? uri /admin // 統(tǒng)計(jì)頁(yè)面訪問(wèn)的url

? ? ? ? stats?? realm haproxy

? ? ? ? stats?? auth root:root // 認(rèn)證用戶與密碼

? ? ? ? stats?? hide-version

保存配置调衰,重啟haproxy服務(wù)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末膊爪,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子嚎莉,更是在濱河造成了極大的恐慌米酬,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,723評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件趋箩,死亡現(xiàn)場(chǎng)離奇詭異赃额,居然都是意外死亡加派,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,485評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門跳芳,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)芍锦,“玉大人,你說(shuō)我怎么就攤上這事飞盆÷α穑” “怎么了?”我有些...
    開封第一講書人閱讀 152,998評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵吓歇,是天一觀的道長(zhǎng)车胡。 經(jīng)常有香客問(wèn)我,道長(zhǎng)照瘾,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,323評(píng)論 1 279
  • 正文 為了忘掉前任丧慈,我火速辦了婚禮析命,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘逃默。我一直安慰自己鹃愤,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,355評(píng)論 5 374
  • 文/花漫 我一把揭開白布完域。 她就那樣靜靜地躺著软吐,像睡著了一般。 火紅的嫁衣襯著肌膚如雪吟税。 梳的紋絲不亂的頭發(fā)上凹耙,一...
    開封第一講書人閱讀 49,079評(píng)論 1 285
  • 那天,我揣著相機(jī)與錄音肠仪,去河邊找鬼肖抱。 笑死,一個(gè)胖子當(dāng)著我的面吹牛异旧,可吹牛的內(nèi)容都是我干的意述。 我是一名探鬼主播,決...
    沈念sama閱讀 38,389評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼吮蛹,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼荤崇!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起潮针,我...
    開封第一講書人閱讀 37,019評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤术荤,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后然低,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體喜每,經(jīng)...
    沈念sama閱讀 43,519評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡务唐,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,971評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了带兜。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片枫笛。...
    茶點(diǎn)故事閱讀 38,100評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖刚照,靈堂內(nèi)的尸體忽然破棺而出刑巧,到底是詐尸還是另有隱情,我是刑警寧澤无畔,帶...
    沈念sama閱讀 33,738評(píng)論 4 324
  • 正文 年R本政府宣布啊楚,位于F島的核電站,受9級(jí)特大地震影響浑彰,放射性物質(zhì)發(fā)生泄漏恭理。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,293評(píng)論 3 307
  • 文/蒙蒙 一郭变、第九天 我趴在偏房一處隱蔽的房頂上張望颜价。 院中可真熱鬧,春花似錦诉濒、人聲如沸周伦。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,289評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)专挪。三九已至,卻和暖如春片排,著一層夾襖步出監(jiān)牢的瞬間寨腔,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,517評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工率寡, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留脆侮,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,547評(píng)論 2 354
  • 正文 我出身青樓勇劣,卻偏偏與公主長(zhǎng)得像靖避,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子比默,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,834評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容