需要學(xué)會(huì)的Nginx知識(shí)

操作系統(tǒng):CentOS-7.8
nginx版本:1.18.0

一、概述

1饵蒂、什么是Nginx

Nginx 是一個(gè)高性能的 WEB 和反向代理服務(wù)器唇跨,同時(shí)也提供了 IMAP/POP3/SMTP(郵件) 服務(wù)。Nginx采用C語言編寫腰奋,它的作者是伊戈?duì)枴べ愃饕颍谝粋€(gè)公開版本2004年發(fā)布抱怔,截至文章編寫時(shí)nginx的最新穩(wěn)定版是1.18.0劣坊。

Nginx因?yàn)樗姆€(wěn)定性、豐富的模塊庫(kù)屈留、靈活的配置和低系統(tǒng)資源的消耗而聞名局冰,Nginx常被用來做靜態(tài)資源管理服務(wù)器和反向代理與負(fù)載均衡。

2灌危、其他常用的web服務(wù)器

  • Apache

Apache是世界上廣泛使用的Web服務(wù)器軟件康二,它可以運(yùn)行在幾乎所有廣泛使用的計(jì)算機(jī)平臺(tái)上,由于其跨平臺(tái)和安全性被廣泛使用勇蝙,是最流行的Web服務(wù)器端軟件之一油额。19年之前Apache使用占有率居世界第一,可是隨著Nginx的流行胖烛,現(xiàn)在Nginx已經(jīng)占據(jù)了使用率第一的位置

  • Tomcat

Tomcat 服務(wù)器是一個(gè)免費(fèi)的開放源代碼的 Web 應(yīng)用服務(wù)器谬莹,屬于輕量級(jí)應(yīng)用服務(wù)器,在中小型系統(tǒng)和并發(fā)訪問用戶不是很多的場(chǎng)合下被普遍使用翁锡,主要用于運(yùn)行基于 Java 的 Web 應(yīng)用軟件蔓挖,Tomcat 也具有處理 HTML 頁(yè)面的功能,但是它處理靜態(tài) HTML 的能力不如 Apache 和 Nginx 服務(wù)器馆衔,所以 Tomcat 經(jīng)常僅被用來提供API接口服務(wù)瘟判。

  • Jboss

Jboss 是一個(gè)基于J2EE的開放源代碼的應(yīng)用服務(wù)器。 JBoss代碼遵循LGPL許可角溃,可以任何商業(yè)應(yīng)用中免費(fèi)使用

  • WebLogic

WebLogic是由Oracle出品拷获,是一個(gè)用于開發(fā)、集成减细、部署和管理大型分布式Web應(yīng)用匆瓜、網(wǎng)絡(luò)應(yīng)用和數(shù)據(jù)庫(kù)應(yīng)用的Java應(yīng)用服務(wù)器。WebLogic是一款商業(yè)軟件,是面向企業(yè)的陕壹,需付費(fèi)使用质欲。

  • IIS

IIS服務(wù)器是微軟旗下的WEB服務(wù)器,也是目前最流行的Web服務(wù)器產(chǎn)品之一糠馆。

  • Kangle

Kangle web服務(wù)器是一款跨平臺(tái)嘶伟、功能強(qiáng)大、安全穩(wěn)定又碌、易操作的高性能web服務(wù)器和反向代理服務(wù)器軟件九昧。

3、正向代理與反向代理

代理

代理是網(wǎng)絡(luò)信息的中轉(zhuǎn)站毕匀,是個(gè)人網(wǎng)絡(luò)和Internet服務(wù)商之間的中間機(jī)構(gòu)铸鹰,負(fù)責(zé)轉(zhuǎn)發(fā)合法的網(wǎng)絡(luò)信息,對(duì)轉(zhuǎn)發(fā)進(jìn)行控制和登記皂岔。

如下圖是一個(gè)代理與非代理的比較蹋笼,不存在代理時(shí),用戶直接與提供服務(wù)的服務(wù)器直接建立連接進(jìn)行通信躁垛,存在代理時(shí)剖毯,用戶和服務(wù)端之間需要經(jīng)過代理服務(wù)器進(jìn)行數(shù)據(jù)轉(zhuǎn)發(fā),并且代理也可以是多級(jí)的教馆。

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-fP2fR3Dv-1592733017191)(http://file.te-amo.site/images/thumbnail/%E9%9C%80%E8%A6%81%E5%AD%A6%E4%BC%9A%E7%9A%84Nginx%E7%9F%A5%E8%AF%86/proxy.png)]

正向代理

正向代理是一個(gè)位于客戶端和服務(wù)端之間的服務(wù)器逊谋,客戶端向代理服務(wù)器發(fā)送一個(gè)請(qǐng)求并指定目標(biāo)服務(wù)端,然后代理服務(wù)器向指定的服務(wù)端轉(zhuǎn)交請(qǐng)求并將獲得的內(nèi)容返回給客戶端土铺。

正向代理的過程可以將用戶和代理服務(wù)器看為一體胶滋,從用戶角度來看,服務(wù)端是可見的悲敷,用戶清楚的知道服務(wù)端的信息究恤,可以明確指定目標(biāo),而在服務(wù)端的角度來看镀迂,具體用戶是不可見的丁溅,服務(wù)端可見的是代理服務(wù)器唤蔗,至于代理服務(wù)器后面有多少具體用戶探遵,都是不可見的。如下圖所示

正向代理

比如我們?cè)诠緝?nèi)網(wǎng)環(huán)境妓柜,我們的電腦主機(jī)是無法訪問外部服務(wù)器箱季,如果此時(shí)我們需要訪問外部服務(wù)器,這時(shí)我們的PC就會(huì)向代理服務(wù)器發(fā)送請(qǐng)求訪問xxx服務(wù)器棍掐,代理服務(wù)器在收到請(qǐng)求后去訪問指定服務(wù)器并將獲得的數(shù)據(jù)再返回給發(fā)送請(qǐng)求的PC藏雏,這樣就實(shí)現(xiàn)了訪問。從例子,我們可以看出作煌,我們的PC是明確知道要訪問的目標(biāo)掘殴,但是由于所有真實(shí)的請(qǐng)求都是代理服務(wù)器發(fā)出的赚瘦,所以目標(biāo)服務(wù)端只能看到代理服務(wù)器信息。

所以正向代理一般用在防火墻內(nèi)網(wǎng)中提供防火墻外部網(wǎng)絡(luò)的訪問服務(wù)奏寨,一般公司中辦公電腦訪問外部網(wǎng)站都是通過正向代理來實(shí)現(xiàn)起意,這樣可以做到對(duì)公司內(nèi)部信息的監(jiān)控和保護(hù),內(nèi)部信息向外泄露病瞳。

反向代理

反向代理是一個(gè)位于客戶端和服務(wù)端之間的服務(wù)器揽咕,反向代理服務(wù)器就相當(dāng)于目標(biāo)服務(wù)器,用戶不需要知道目標(biāo)服務(wù)器的地址套菜,用戶直接訪問反向代理服務(wù)器就可以獲得目標(biāo)服務(wù)器提供的資源亲善。

反向代理的過程是將代理服務(wù)器和服務(wù)端視為一體,在用戶角度來看逗柴,具體服務(wù)端是不可見的蛹头,用戶并不知道自己具體是從哪一個(gè)具體的服務(wù)器獲取的數(shù)據(jù),而站在服務(wù)端的角度來看戏溺,具體用戶是可見的掘而,服務(wù)端是知道是哪個(gè)用戶發(fā)來的請(qǐng)求。如下圖所示

反向代理

比如我們的電腦要去訪問www.baidu.com于购,當(dāng)我們?nèi)ピL問時(shí)袍睡,我們的請(qǐng)求都是被分配到網(wǎng)站的反向代理服務(wù)器,反向代理服務(wù)器根據(jù)具體配置的規(guī)則肋僧,再將我們的請(qǐng)求轉(zhuǎn)發(fā)給網(wǎng)站內(nèi)部的具體服務(wù)器斑胜,然后再將數(shù)據(jù)返回給我們。

這樣一個(gè)過程就將一個(gè)服務(wù)集群對(duì)用戶進(jìn)行了隱藏嫌吠,用戶只能看到暴露的代理服務(wù)器止潘,而內(nèi)部服務(wù)端內(nèi)部具體的服務(wù)器是看不到的,也保證了內(nèi)部服務(wù)器的安全性辫诅。反向代理一般被用來作為Web加速和負(fù)載均衡凭戴,以提高服務(wù)的可用性和訪問效率

一個(gè)具體栗子

我們?cè)诠緝?nèi)網(wǎng)中的PC要訪問www.baidu.com。圖示如下

代理栗子

上圖過程可以描述為:

  • a.用戶PC向正向代理服務(wù)器發(fā)送請(qǐng)求炕矮,表明需要訪問www.baidu.com

  • b.正向代理服務(wù)器接收請(qǐng)求后么夫,向www.baidu.com發(fā)送請(qǐng)求

  • c.根據(jù)DNS解析出的IP指向了baidu的反向代理服務(wù)器

  • d.baidu的反向代理服務(wù)器收到請(qǐng)求后,根據(jù)代理策略肤视,從內(nèi)部多臺(tái)服務(wù)器中選擇一臺(tái)档痪,向其發(fā)送請(qǐng)求

  • e.baidu的反向代理服務(wù)器在獲取到請(qǐng)求結(jié)果后,就將結(jié)果數(shù)據(jù)返回給發(fā)來請(qǐng)求的正向代理服務(wù)器

  • f.正向代理服務(wù)器在收到數(shù)據(jù)后邢滑,將數(shù)據(jù)再返回給發(fā)來請(qǐng)求的PC

  • g.最后PC收到數(shù)據(jù)后腐螟,這個(gè)請(qǐng)求就完成了

4、Nginx特性

高并發(fā)

首先nginx整個(gè)服務(wù)采用了多進(jìn)程master-worker的設(shè)計(jì),nginx 在啟動(dòng)后乐纸,會(huì)有一個(gè) master 進(jìn)程和多個(gè)相互獨(dú)立的 worker 進(jìn)程(可配置),master進(jìn)程接收來自外界的連接衬廷,并向各worker進(jìn)程發(fā)送信號(hào),work進(jìn)程用來處理具體連接汽绢。

其次nginx的IO模型是采用基于事件驅(qū)動(dòng)的異步IO模型泵督,且nginx使用的是最新的epoll和kqueue網(wǎng)絡(luò)IO模型,
相比于select庶喜,epoll最大的好處在于它不會(huì)隨著監(jiān)聽文件句柄數(shù)目的增長(zhǎng)而降低效率小腊,并且select在內(nèi)核中也設(shè)置了監(jiān)聽句柄的上限為1024(可修改,需重新編譯內(nèi)核)久窟,所以使用epoll也是nginx可以支持更多的并發(fā)原因

內(nèi)存消耗少

nginx有設(shè)計(jì)自己的內(nèi)存池秩冈,使用內(nèi)存池可以有減少向系統(tǒng)申請(qǐng)和釋放內(nèi)存的時(shí)間開銷,也可以解決內(nèi)存頻繁分配產(chǎn)生的碎片斥扛,并且nginx的內(nèi)存也有自己特殊的設(shè)計(jì)幫助其減少內(nèi)存開銷

簡(jiǎn)單穩(wěn)定

簡(jiǎn)單一般是指nginx的配置簡(jiǎn)單入问,其核心配置就一個(gè)配置文件,且配置內(nèi)容沒有非常繁瑣復(fù)雜稀颁,對(duì)于一般的開發(fā)和使用者不會(huì)造成很大的困難芬失。

穩(wěn)定是指nginx性能比較穩(wěn)定,可以長(zhǎng)時(shí)間不間斷運(yùn)行匾灶,且支持熱加載棱烂,修改配置等操作時(shí)不用重啟服務(wù)

低成本支持多系統(tǒng)

nginx是采用BSD開源協(xié)議,允許使用者修改代碼或者發(fā)布自己的版本阶女,所以使用在商業(yè)上也可以免費(fèi)颊糜。nginx的代碼是采用C語言編寫,現(xiàn)在也已經(jīng)移植到許多體系結(jié)構(gòu)和操作系統(tǒng)秃踩,可以在不同的操作系統(tǒng)上安裝使用衬鱼。

二、nginx安裝

參見文章《學(xué)習(xí)必備——nginx安裝》

三憔杨、常用配置

1鸟赫、常用命令

  • 強(qiáng)制停止nginx:./nginx -s stop

  • 正常關(guān)閉nginx,不再接受新連接消别,等待現(xiàn)有用戶連接處理完成后退出nginx:./nginx -s quit

  • 檢測(cè)配置文件的正確性:./nginx -t

  • 查看nginx當(dāng)前版本:./nginx -v

  • 查看nginx的詳細(xì)信息:./nginx -V

  • 指定nginx配置文件:./nginx -c [filename]

  • 重新加載配置文件:./nginx -s reload

2抛蚤、nginx.conf 配置說明

先看一下nginx.conf 的包含結(jié)構(gòu)如下圖所示:

nginx.conf

如下是一份安裝完成后的默認(rèn)配置,我將配置的說明也寫在其中


#設(shè)置worker進(jìn)程的所屬用戶,設(shè)置不同的用戶由于用戶權(quán)限不同所以對(duì)worker進(jìn)程操作文件有影響妖啥,默認(rèn)是nobody用戶霉颠,查看nginx進(jìn)程是用命令:ps -ef | grep nginx 就可以看到進(jìn)程和所屬用戶
#user  nobody;
#設(shè)置worker進(jìn)程的個(gè)數(shù),默認(rèn)設(shè)置為1個(gè)
worker_processes  1;

#錯(cuò)誤日志配置荆虱,日志級(jí)別包括:debug、info、notice怀读、warn诉位、error、crit菜枷、alert苍糠、emerg
#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;
#nginx的進(jìn)程號(hào)
#pid        logs/nginx.pid;

#events模塊中包含nginx中所有處理連接的設(shè)置
events {
    #選擇nginx連接所使用的IO模型,Linux下建議使用epoll
    use epoll;
    #每個(gè)worker允許的最大連接數(shù)
    worker_connections  1024;
}

#http相關(guān)配置啤誊,內(nèi)部可以嵌套多個(gè)server岳瞭,配置代理,緩存蚊锹,日志等絕大多數(shù)功能和第三方模塊的配置
http {
    #mime.type是一個(gè)文件瞳筏,里面定義了可使用的文件類型與文件拓展名的映射
    include       mime.types;
    
    #默認(rèn)的文件類型
    default_type  application/octet-stream;
    
    #設(shè)置一個(gè)日志格式化的格式,名字叫‘main’牡昆,里面包含的參數(shù)含義如下:
    #$remote_addr   客戶端ip
    #$remote_user   遠(yuǎn)程客戶端用戶名
    #$time_local        時(shí)間和時(shí)區(qū)
    #$request   請(qǐng)求的url以及method
    #$status    響應(yīng)狀態(tài)碼
    #$body_bytes_send       響應(yīng)客戶端內(nèi)容字節(jié)數(shù)
    #$http_referer  記錄用戶從哪個(gè)鏈接跳轉(zhuǎn)過來的
    #$http_user_agent       用戶所使用的代理姚炕,一般來時(shí)都是瀏覽器
    #$http_x_forwarded_for      通過代理服務(wù)器來記錄客戶端的ip
    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';
    
    #設(shè)置access_log的位置并制定使用main格式進(jìn)行格式化
    #access_log  logs/access.log  main;

    #允許sendfile方式傳輸文件
    sendfile        on;
    #開源tcp_nopush時(shí),數(shù)據(jù)包累積到一定大小時(shí)再發(fā)送丢烘,tcp_nopush必須和sendfile配合使用柱宦,是提高文件傳輸效率的
    #tcp_nopush     on;

    #連接超時(shí)時(shí)間,單位是秒播瞳,保證客戶端多次請(qǐng)求的時(shí)候不會(huì)重復(fù)建立新的連接掸刊,節(jié)約資源損耗。設(shè)定為0時(shí)赢乓,客戶端每次連接都是新建連接
    #keepalive_timeout  0;
    keepalive_timeout  65;
    
    #開啟gzip壓縮痒给,進(jìn)行數(shù)據(jù)傳輸時(shí)進(jìn)行壓縮
    #gzip  on;

    #一個(gè)虛擬的主機(jī)配置
    server {
        #監(jiān)聽的端口號(hào)
        listen       80;
        #監(jiān)聽的地址,虛擬主機(jī)名
        server_name  localhost;
        #字符集
        #charset koi8-r;
        
        #access日志的配置骏全,當(dāng)前只是配置當(dāng)前server的日志
        #access_log  logs/host.access.log  main;
        
        #路由規(guī)則配置8
        location / {
            #當(dāng)前路由的根目錄
            root   html;
            #默認(rèn)主頁(yè)
            index  index.html index.htm;
        }
        
        #默認(rèn)404錯(cuò)誤頁(yè)配置
        #error_page  404              /404.html;
        
        #50x錯(cuò)誤頁(yè)配置
        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
    


    #另一個(gè)虛擬主機(jī)配置
    # another virtual host using mix of IP-, name-, and port-based configuration
    #
    #server {
    #    listen       8000;
    #    listen       somename:8080;
    #    server_name  somename  alias  another.alias;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}
    
    #Https的虛擬主機(jī)配置
    # HTTPS server
    #
    #server {
    #    監(jiān)聽端口
    #    listen       443 ssl;
    #    監(jiān)聽地址
    #    server_name  localhost;
    #
    #    ssl安裝連接相關(guān)配置
    #    ssl_certificate      cert.pem;
    #    ssl_certificate_key  cert.key;

    #    ssl_session_cache    shared:SSL:1m;
    #    ssl_session_timeout  5m;

    #    ssl_ciphers  HIGH:!aNULL:!MD5;
    #    ssl_prefer_server_ciphers  on;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}

}

3.location路由匹配規(guī)則解析

通用匹配


location / {
    root   html;
}

示例:http://host:port/a/b
在“/"后面值的路由都會(huì)被匹配

精確配置


location =/ {
    root   html;
}

示例:http://host:port/
只能配置 ‘/’ 后面如果添加其他路由是無法匹配的

正則匹配


location ~* /ca {
    root   html;
}

location ~ /CA {
    root   html;
}

正則匹配分為區(qū)分大小寫和不區(qū)分大小寫兩種苍柏。
’ 代表不區(qū)分大小寫,去掉‘’則匹配時(shí)區(qū)分大小寫

示例:

精準(zhǔn)前綴匹配


location ^~ /ca {
    root   html;
}

示例:http://host:port/ca/file
只能匹配以ca開頭的下一級(jí),例如“ca/file/a”就是無法匹配

匹配優(yōu)先級(jí)

在多個(gè)匹配規(guī)則同時(shí)存在時(shí)楼咳,精確匹配優(yōu)先級(jí)最高熄捍,其次是精準(zhǔn)前綴匹配,然后是區(qū)分大小寫的正則匹配母怜,再然后是不區(qū)分大小寫的正則匹配余耽,最后是通用匹配。

舉個(gè)例子


精確匹配:location =/ca 
精確前綴匹配:location ^~ /ca 
區(qū)分大小寫正則匹配:location ~ /ca 
不區(qū)分大小寫正則匹配:location ~* /ca 
通用匹配:location /  

請(qǐng)求url:http://host:port/ca

  • 5種規(guī)則全存在苹熏,則匹配精確匹配

  • 2-5存在碟贾,則匹配精確前綴匹配

  • 3-5存在币喧,則匹配區(qū)分大小寫的正則匹配

  • 4-5存在,則匹配不區(qū)分大小寫正則匹配

  • 僅有5存在袱耽,則匹配通用匹配

4.跨域配置與防盜鏈

在server塊的配置中進(jìn)行配置跨域支持


#允許跨域請(qǐng)求的域杀餐,*代表所有
add_header 'Access-Control-Allow-Origin' *;
#允許帶上cookie請(qǐng)求
add_header 'Access-Control-Allow-Credentials' 'true';
#允許請(qǐng)求的方法,比如 GET/POST/PUT/DELETE朱巨,*代表所有方法
add_header 'Access-Control-Allow-Methods' *;
#允許請(qǐng)求的header史翘,*代表所有的header
add_header 'Access-Control-Allow-Headers' *;
 

防盜鏈配置如下


#對(duì)發(fā)送請(qǐng)求的域名驗(yàn)證
valid_referers *.domain.com; 
#驗(yàn)證不通過則返回404
if ($invalid_referer) {
    return 404;
} 

個(gè)人公眾號(hào)【愛做夢(mèng)的錘子】,全網(wǎng)同id冀续,個(gè)站 http://te-amo.site琼讽,歡迎關(guān)注,里面會(huì)分享更多有用知識(shí)洪唐,還有我的私密照片

覺得不錯(cuò)就點(diǎn)個(gè)贊叭QAQ

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末钻蹬,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子桐罕,更是在濱河造成了極大的恐慌脉让,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,123評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件功炮,死亡現(xiàn)場(chǎng)離奇詭異溅潜,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)薪伏,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門滚澜,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人嫁怀,你說我怎么就攤上這事设捐。” “怎么了塘淑?”我有些...
    開封第一講書人閱讀 156,723評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵萝招,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我存捺,道長(zhǎng)槐沼,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,357評(píng)論 1 283
  • 正文 為了忘掉前任捌治,我火速辦了婚禮岗钩,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘肖油。我一直安慰自己兼吓,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,412評(píng)論 5 384
  • 文/花漫 我一把揭開白布森枪。 她就那樣靜靜地躺著视搏,像睡著了一般审孽。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上凶朗,一...
    開封第一講書人閱讀 49,760評(píng)論 1 289
  • 那天瓷胧,我揣著相機(jī)與錄音显拳,去河邊找鬼棚愤。 笑死,一個(gè)胖子當(dāng)著我的面吹牛杂数,可吹牛的內(nèi)容都是我干的宛畦。 我是一名探鬼主播,決...
    沈念sama閱讀 38,904評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼揍移,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼次和!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起那伐,我...
    開封第一講書人閱讀 37,672評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤踏施,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后罕邀,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體畅形,經(jīng)...
    沈念sama閱讀 44,118評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,456評(píng)論 2 325
  • 正文 我和宋清朗相戀三年诉探,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了日熬。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,599評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡肾胯,死狀恐怖竖席,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情敬肚,我是刑警寧澤毕荐,帶...
    沈念sama閱讀 34,264評(píng)論 4 328
  • 正文 年R本政府宣布,位于F島的核電站艳馒,受9級(jí)特大地震影響憎亚,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜鹰溜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,857評(píng)論 3 312
  • 文/蒙蒙 一虽填、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧曹动,春花似錦斋日、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽第献。三九已至,卻和暖如春兔港,著一層夾襖步出監(jiān)牢的瞬間庸毫,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評(píng)論 1 264
  • 我被黑心中介騙來泰國(guó)打工衫樊, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留飒赃,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,286評(píng)論 2 360
  • 正文 我出身青樓科侈,卻偏偏與公主長(zhǎng)得像载佳,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子臀栈,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,465評(píng)論 2 348