Nginx安裝及配置

參考:https://www.cnblogs.com/zhouxinfei/p/7862285.html

侵刪

nginx概述

nginx是一款自由的留储、開源的、高性能的HTTP服務(wù)器和反向代理服務(wù)器咙轩;同時也是一個IMAP获讳、POP3、SMTP代理服務(wù)器活喊;nginx可以作為一個HTTP服務(wù)器進行網(wǎng)站的發(fā)布處理丐膝,另外nginx可以作為反向代理進行負載均衡的實現(xiàn)。

這里主要通過三個方面簡單介紹nginx

反向代理

負載均衡

nginx特點

1. 反向代理

關(guān)于代理

說到代理钾菊,首先我們要明確一個概念帅矗,所謂代理就是一個代表、一個渠道煞烫;

此時就設(shè)計到兩個角色浑此,一個是被代理角色,一個是目標角色滞详,被代理角色通過這個代理訪問目標角色完成一些任務(wù)的過程稱為代理操作過程凛俱;如同生活中的專賣店~客人到adidas專賣店買了一雙鞋,這個專賣店就是代理料饥,被代理角色就是adidas廠家最冰,目標角色就是用戶


正向代理

說反向代理之前,我們先看看正向代理稀火,正向代理也是大家最常接觸的到的代理模式,我們會從兩個方面來說關(guān)于正向代理的處理模式赌朋,分別從軟件方面和生活方面來解釋一下什么叫正向代理

在如今的網(wǎng)絡(luò)環(huán)境下凰狞,我們?nèi)绻捎诩夹g(shù)需要要去訪問國外的某些網(wǎng)站,此時你會發(fā)現(xiàn)位于國外的某網(wǎng)站我們通過瀏覽器是沒有辦法訪問的沛慢,此時大家可能都會用一個操作FQ進行訪問赡若,F(xiàn)Q的方式主要是找到一個可以訪問國外網(wǎng)站的代理服務(wù)器,我們將請求發(fā)送給代理服務(wù)器团甲,代理服務(wù)器去訪問國外的網(wǎng)站逾冬,然后將訪問到的數(shù)據(jù)傳遞給我們!

上述這樣的代理模式稱為正向代理,正向代理最大的特點是客戶端非常明確要訪問的服務(wù)器地址身腻;服務(wù)器只清楚請求來自哪個代理服務(wù)器产还,而不清楚來自哪個具體的客戶端;正向代理模式屏蔽或者隱藏了真實客戶端信息嘀趟。


反向代理

明白了什么是正向代理脐区,我們繼續(xù)看關(guān)于反向代理的處理方式,舉例如我大天朝的某寶網(wǎng)站她按,每天同時連接到網(wǎng)站的訪問人數(shù)已經(jīng)爆表牛隅,單個服務(wù)器遠遠不能滿足人民日益增長的購買欲望了,此時就出現(xiàn)了一個大家耳熟能詳?shù)拿~:分布式部署酌泰;也就是通過部署多臺服務(wù)器來解決訪問人數(shù)限制的問題媒佣;某寶網(wǎng)站中大部分功能也是直接使用nginx進行反向代理實現(xiàn)的,并且通過封裝nginx和其他的組件之后起了個高大上的名字:Tengine陵刹,有興趣的童鞋可以訪問Tengine的官網(wǎng)查看具體的信息:http://tengine.taobao.org/

那么反向代理具體是通過什么樣的方式實現(xiàn)的分布式的集群操作呢默伍,我們先看一個示意圖:


通過上述的圖解大家就可以看清楚了,多個客戶端給服務(wù)器發(fā)送的請求授霸,nginx服務(wù)器接收到之后巡验,按照一定的規(guī)則分發(fā)給了后端的業(yè)務(wù)處理服務(wù)器進行處理了。此時~請求的來源也就是客戶端是明確的碘耳,但是請求具體由哪臺服務(wù)器處理的并不明確了显设,nginx扮演的就是一個反向代理角色

反向代理,主要用于服務(wù)器集群分布式部署的情況下辛辨,反向代理隱藏了服務(wù)器的信息捕捂!

項目場景

通常情況下,我們在實際項目操作時斗搞,正向代理和反向代理很有可能會存在在一個應(yīng)用場景中指攒,正向代理代理客戶端的請求去訪問目標服務(wù)器,目標服務(wù)器是一個反向單利服務(wù)器僻焚,反向代理了多臺真實的業(yè)務(wù)處理服務(wù)器允悦。具體的拓撲圖如下:

2. 負載均衡

我們已經(jīng)明確了所謂代理服務(wù)器的概念,那么接下來虑啤,nginx扮演了反向代理服務(wù)器的角色隙弛,它是以依據(jù)什么樣的規(guī)則進行請求分發(fā)的呢?不用的項目應(yīng)用場景狞山,分發(fā)的規(guī)則是否可以控制呢全闷?

這里提到的客戶端發(fā)送的、nginx反向代理服務(wù)器接收到的請求數(shù)量萍启,就是我們說的負載量

請求數(shù)量按照一定的規(guī)則進行分發(fā)到不同的服務(wù)器處理的規(guī)則总珠,就是一種均衡規(guī)則

所以~將服務(wù)器接收到的請求按照規(guī)則分發(fā)的過程屏鳍,稱為負載均衡。

負載均衡在實際項目操作過程中局服,有硬件負載均衡和軟件負載均衡兩種钓瞭,硬件負載均衡也稱為硬負載,如F5負載均衡腌逢,相對造價昂貴成本較高降淮,但是數(shù)據(jù)的穩(wěn)定性安全性等等有非常好的保障,如中國移動中國聯(lián)通這樣的公司才會選擇硬負載進行操作搏讶;更多的公司考慮到成本原因佳鳖,會選擇使用軟件負載均衡,軟件負載均衡是利用現(xiàn)有的技術(shù)結(jié)合主機硬件實現(xiàn)的一種消息隊列分發(fā)機制


nginx支持的負載均衡調(diào)度算法方式如下:

weight輪詢(默認):接收到的請求按照順序逐一分配到不同的后端服務(wù)器媒惕,即使在使用過程中系吩,某一臺后端服務(wù)器宕機,nginx會自動將該服務(wù)器剔除出隊列妒蔚,請求受理情況不會受到任何影響穿挨。 這種方式下,可以給不同的后端服務(wù)器設(shè)置一個權(quán)重值(weight)肴盏,用于調(diào)整不同的服務(wù)器上請求的分配率科盛;權(quán)重數(shù)據(jù)越大,被分配到請求的幾率越大菜皂;該權(quán)重值贞绵,主要是針對實際工作環(huán)境中不同的后端服務(wù)器硬件配置進行調(diào)整的。

ip_hash:每個請求按照發(fā)起客戶端的ip的hash結(jié)果進行匹配恍飘,這樣的算法下一個固定ip地址的客戶端總會訪問到同一個后端服務(wù)器榨崩,這也在一定程度上解決了集群部署環(huán)境下session共享的問題。

fair:智能調(diào)整調(diào)度算法章母,動態(tài)的根據(jù)后端服務(wù)器的請求處理到響應(yīng)的時間進行均衡分配母蛛,響應(yīng)時間短處理效率高的服務(wù)器分配到請求的概率高,響應(yīng)時間長處理效率低的服務(wù)器分配到的請求少乳怎;結(jié)合了前兩者的優(yōu)點的一種調(diào)度算法彩郊。但是需要注意的是nginx默認不支持fair算法,如果要使用這種調(diào)度算法蚪缀,請安裝upstream_fair模塊

url_hash:按照訪問的url的hash結(jié)果分配請求秫逝,每個請求的url會指向后端固定的某個服務(wù)器,可以在nginx作為靜態(tài)服務(wù)器的情況下提高緩存效率椿胯。同樣要注意nginx默認不支持這種調(diào)度算法,要使用的話需要安裝nginx的hash軟件包


常用到的命令如下

nginx -s stop :快速關(guān)閉Nginx剃根,可能不保存相關(guān)信息哩盲,并迅速終止web服務(wù)。

nginx -s quit :平穩(wěn)關(guān)閉Nginx,保存相關(guān)信息廉油,有安排的結(jié)束web服務(wù)惠险。

nginx -s reload :因改變了Nginx相關(guān)配置,需要重新加載配置而重載抒线。

nginx -s reopen :重新打開日志文件班巩。

nginx -c filename :為 Nginx 指定一個配置文件,來代替缺省的嘶炭。

nginx -t :不運行抱慌,而僅僅測試配置文件。nginx 將檢查配置文件的語法的正確性眨猎,并嘗試打開配置文件中所引用到的文件抑进。

nginx -v:顯示 nginx 的版本。

nginx -V:顯示 nginx 的版本睡陪,編譯器版本和配置參數(shù)寺渗。

Nginx安裝

1. ubuntu安裝

按照正常軟件的安裝方式,直接通過如下命令進行安裝:

$ sudo apt-get install nginx?

(這里我已經(jīng)是root用戶)


安裝完成即可兰迫,在/usr/sbin/目錄下是nginx命令所在目錄信殊,在/etc/nginx/目錄下是nginx所有的配置文件,用于配置nginx服務(wù)器以及負載均衡等信息


查看nginx進程是否啟動

$ ps -ef|grep nginx

nginx會自動根據(jù)當(dāng)前主機的CPU的內(nèi)核數(shù)目創(chuàng)建對應(yīng)的進程數(shù)量(當(dāng)前ubuntu主機是2核4線程配置)


備注:這里啟動的服務(wù)進程其實是4個進程汁果,因為nginx進程在啟動的時候涡拘,會附帶一個守護進程,用于保護正式進程不被異常終止须鼎;如果守護進程一旦返現(xiàn)nginx繼承被終止了鲸伴,會自動重啟該進程。

守護進程一般會稱為master進程晋控,業(yè)務(wù)進程被稱為worker進程


啟動nginx服務(wù)器命令

直接執(zhí)行nginx會按照默認的配置文件進行服務(wù)器的啟動

$ nginx


停止nginx服務(wù)命令

和windows系統(tǒng)執(zhí)行過程一樣汞窗,兩種停止方式

$ nginx -s stopor$ nginx -s quit


重新啟動加載

同樣也可以使用命令reopen和reload來重新啟動nginx或者重新加載配合著文件。

訪問nginx

打開瀏覽器赡译,輸入地址:http://192.168.118.128 (我在這里使用的是外部物理機的瀏覽器訪問虛擬機的ip)

訪問頁面仲吏,出現(xiàn)如下頁面表示訪問成功


nginx配置

nginx是一個功能非常強大的web服務(wù)器加反向代理服務(wù)器,同時又是郵件服務(wù)器等等

在項目使用中蝌焚,使用最多的三個核心功能是反向代理裹唆、負載均衡和靜態(tài)服務(wù)器

這三個不同的功能的使用,都跟nginx的配置密切相關(guān)只洒,nginx服務(wù)器的配置信息主要集中在nginx.conf這個配置文件中许帐,并且所有的可配置選項大致分為以下幾個部分

main # 全局配置

events { # nginx工作模式配置}

http {......? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? # http設(shè)置

?????server{

?????........? ? ? ? ? ? ? ? ? ? ? ? ? ?# 服務(wù)器主機配置?

????????????location {? ? ?.....? ? ? ? ? ? ? ? ? ? ? ?# 路由配置?

? ? ?}

????location path { .... }

????location otherpath { .... }

}

server {

????????????....

????????????location { .... }

????????????}

????upstream name {

????# 負載均衡配置 ....

????????}

}




如上述配置文件所示,主要由6個部分組成:

main:用于進行nginx全局信息的配置

events:用于nginx工作模式的配置

http:用于進行http協(xié)議信息的一些配置

server:用于進行服務(wù)器訪問信息的配置

location:用于進行訪問路由的配置

upstream:用于進行負載均衡的配置

main模塊

觀察下面的配置代碼

#user nobody nobody;

worker_processes 2;

#error_log logs/error.log

#error_log logs/error.log notice

#error_log logs/error.log info# pid logs/nginx.pid

worker_rlimit_nofile 1024;

上述配置都是存放在main全局配置模塊中的配置項

user用來指定nginx worker進程運行用戶以及用戶組毕谴,默認nobody賬號運行

worker_processes指定nginx要開啟的子進程數(shù)量成畦,運行過程中監(jiān)控每個進程消耗內(nèi)存(一般幾M~幾十M不等)根據(jù)實際情況進行調(diào)整距芬,通常數(shù)量是CPU內(nèi)核數(shù)量的整數(shù)倍

error_log定義錯誤日志文件的位置及輸出級別【debug / info / notice / warn / error / crit】

pid用來指定進程id的存儲文件的位置

worker_rlimit_nofile用于指定一個進程可以打開最多文件數(shù)量的描述

event 模塊

上干貨

event {?

?worker_connections 1024;

?multi_accept on;?

use epoll;

}

上述配置是針對nginx服務(wù)器的工作模式的一些操作配置

worker_connections 指定最大可以同時接收的連接數(shù)量,這里一定要注意循帐,最大連接數(shù)量是和worker processes共同決定的框仔。

multi_accept 配置指定nginx在收到一個新連接通知后盡可能多的接受更多的連接

use epoll 配置指定了線程輪詢的方法,如果是linux2.6+拄养,使用epoll离斩,如果是BSD如Mac請使用Kqueue

http模塊

作為web服務(wù)器,http模塊是nginx最核心的一個模塊瘪匿,配置項也是比較多的跛梗,項目中會設(shè)置到很多的實際業(yè)務(wù)場景,需要根據(jù)硬件信息進行適當(dāng)?shù)呐渲檬炼ィR?guī)情況下茄袖,使用默認配置即可!

http {

## # 基礎(chǔ)配置 ##

sendfile on;

tcp_nopush on;

tcp_nodelay on;

keepalive_timeout 65;

types_hash_max_size 2048;

# server_tokens off;

# server_names_hash_bucket_size 64;

# server_name_in_redirect off;

include /etc/nginx/mime.types;

default_type application/octet-stream;

## # SSL證書配置 ##

ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE

ssl_prefer_server_ciphers on;

## # 日志配置 ##

access_log /var/log/nginx/access.log;

error_log /var/log/nginx/error.log;

## # Gzip 壓縮配置 ##

gzip on;

gzip_disable "msie6";

# gzip_vary on;

# gzip_proxied any;

# gzip_comp_level 6;

# gzip_buffers 16 8k;

# gzip_http_version 1.1;

# gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

## # 虛擬主機配置 ##

include /etc/nginx/conf.d/*.conf;

include /etc/nginx/sites-enabled/*;

1) 基礎(chǔ)配置

sendfile on:配置on讓sendfile發(fā)揮作用嘁锯,將文件的回寫過程交給數(shù)據(jù)緩沖去去完成澜驮,而不是放在應(yīng)用中完成洽洁,這樣的話在性能提升有有好處

tc_nopush on:讓nginx在一個數(shù)據(jù)包中發(fā)送所有的頭文件,而不是一個一個單獨發(fā)

tcp_nodelay on:讓nginx不要緩存數(shù)據(jù),而是一段一段發(fā)送落剪,如果數(shù)據(jù)的傳輸有實時性的要求的話可以配置它兄朋,發(fā)送完一小段數(shù)據(jù)就立刻能得到返回值锣杂,但是不要濫用哦

keepalive_timeout 10:給客戶端分配連接超時時間此洲,服務(wù)器會在這個時間過后關(guān)閉連接。一般設(shè)置時間較短业崖,可以讓nginx工作持續(xù)性更好

client_header_timeout 10:設(shè)置請求頭的超時時間client_body_timeout 10:設(shè)置請求體的超時時間send_timeout 10:指定客戶端響應(yīng)超時時間野芒,如果客戶端兩次操作間隔超過這個時間,服務(wù)器就會關(guān)閉這個鏈接

limit_conn_zone $binary_remote_addr zone=addr:5m :設(shè)置用于保存各種key的共享內(nèi)存的參數(shù)双炕,

limit_conn addr 100: 給定的key設(shè)置最大連接數(shù)server_tokens:雖然不會讓nginx執(zhí)行速度更快狞悲,但是可以在錯誤頁面關(guān)閉nginx版本提示,對于網(wǎng)站安全性的提升有好處哦

include /etc/nginx/mime.types:指定在當(dāng)前文件中包含另一個文件的指令

default_type application/octet-stream:指定默認處理的文件類型可以是二進制

type_hash_max_size 2048:混淆數(shù)據(jù)妇斤,影響三列沖突率摇锋,值越大消耗內(nèi)存越多,散列key沖突率會降低站超,檢索速度更快荸恕;值越小key,占用內(nèi)存較少死相,沖突率越高融求,檢索速度變慢?

2) 日志配置

access_log logs/access.log:設(shè)置存儲訪問記錄的日志

error_log logs/error.log:設(shè)置存儲記錄錯誤發(fā)生的日志

3) SSL證書加密

ssl_protocols:指令用于啟動特定的加密協(xié)議,nginx在1.1.13和1.0.12版本后默認是ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2算撮,TLSv1.1與TLSv1.2要確保OpenSSL >= 1.0.1 生宛,SSLv3 現(xiàn)在還有很多地方在用但有不少被攻擊的漏洞施掏。

ssl prefer server ciphers:設(shè)置協(xié)商加密算法時,優(yōu)先使用我們服務(wù)端的加密套件茅糜,而不是客戶端瀏覽器的加密套件

4) 壓縮配置

gzip 是告訴nginx采用gzip壓縮的形式發(fā)送數(shù)據(jù)。這將會減少我們發(fā)送的數(shù)據(jù)量素挽。

gzip_disable 為指定的客戶端禁用gzip功能蔑赘。我們設(shè)置成IE6或者更低版本以使我們的方案能夠廣泛兼容。

gzip_static 告訴nginx在壓縮資源之前预明,先查找是否有預(yù)先gzip處理過的資源缩赛。這要求你預(yù)先壓縮你的文件(在這個例子中被注釋掉了),從而允許你使用最高壓縮比撰糠,這樣nginx就不用再壓縮這些文件了(想要更詳盡的gzip_static的信息酥馍,請點擊這里)。

gzip_proxied 允許或者禁止壓縮基于請求和響應(yīng)的響應(yīng)流阅酪。我們設(shè)置為any旨袒,意味著將會壓縮所有的請求。

gzip_min_length 設(shè)置對數(shù)據(jù)啟用壓縮的最少字節(jié)數(shù)术辐。如果一個請求小于1000字節(jié)砚尽,我們最好不要壓縮它,因為壓縮這些小的數(shù)據(jù)會降低處理此請求的所有進程的速度辉词。

gzip_comp_level 設(shè)置數(shù)據(jù)的壓縮等級必孤。這個等級可以是1-9之間的任意數(shù)值,9是最慢但是壓縮比最大的瑞躺。我們設(shè)置為4敷搪,這是一個比較折中的設(shè)置。

gzip_type 設(shè)置需要壓縮的數(shù)據(jù)格式幢哨。上面例子中已經(jīng)有一些了赡勘,你也可以再添加更多的格式。

5) 文件緩存配置

open_file_cache 打開緩存的同時也指定了緩存最大數(shù)目嘱么,以及緩存的時間狮含。我們可以設(shè)置一個相對高的最大時間,這樣我們可以在它們不活動超過20秒后清除掉曼振。

open_file_cache_valid 在open_file_cache中指定檢測正確信息的間隔時間几迄。

open_file_cache_min_uses 定義了open_file_cache中指令參數(shù)不活動時間期間里最小的文件數(shù)。

open_file_cache_errors 指定了當(dāng)搜索一個文件時是否緩存錯誤信息冰评,也包括再次給配置中添加文件映胁。我們也包括了服務(wù)器模塊,這些是在不同文件中定義的甲雅。如果你的服務(wù)器模塊不在這些位置解孙,你就得修改這一行來指定正確的位置坑填。

server模塊

srever模塊配置是http模塊中的一個子模塊,用來定義一個虛擬訪問主機弛姜,也就是一個虛擬服務(wù)器的配置信息

server {? ??

listen? ? ? ? 80;? ??

server_name localhost? ? 192.168.1.100;? ?

?root? ? ? ? /nginx/www;? ? index? ? ? ? index.php index.html index.html;? ??

charset? ? ? ? utf-8;? ??

access_log? ? logs/access.log;? ??

error_log? ? logs/error.log;

? ? ......

}

核心配置信息如下:

server:一個虛擬主機的配置脐瑰,一個http中可以配置多個server

server_name:用力啊指定ip地址或者域名,多個配置之間用空格分隔

root:表示整個server虛擬主機內(nèi)的根目錄廷臼,所有當(dāng)前主機中web項目的根目錄

index:用戶訪問web網(wǎng)站時的全局首頁

charset:用于設(shè)置www/路徑中配置的網(wǎng)頁的默認編碼格式

access_log:用于指定該虛擬主機服務(wù)器中的訪問記錄日志存放路徑

error_log:用于指定該虛擬主機服務(wù)器中訪問錯誤日志的存放路徑

location模塊

location模塊是nginx配置中出現(xiàn)最多的一個配置苍在,主要用于配置路由訪問信息

在路由訪問信息配置中關(guān)聯(lián)到反向代理、負載均衡等等各項功能荠商,所以location模塊也是一個非常重要的配置模塊

基本配置

location /{? ? root? ? /nginx/www;

? ? index? ? index.php index.html index.htm;

}

location /:表示匹配訪問根目錄

root:用于指定訪問根目錄時寂恬,訪問虛擬主機的web目錄

index:在不指定訪問具體資源時,默認展示的資源文件列表

反向代理配置方式

通過反向代理代理服務(wù)器訪問模式莱没,通過proxy_set配置讓客戶端訪問透明化

location /{? ??

????proxy_pass http://localhost:8888;? ??

????proxy_set_header X-real-ip $remote_addr;

? ? proxy_set_header Host $http_host;

}

uwsgi配置

wsgi模式下的服務(wù)器配置訪問方式

location /{? ??

include uwsgi_params;? ??

uwsgi_pass localhost:8888}

upstream模塊

upstream模塊主要負責(zé)負載均衡的配置初肉,通過默認的輪詢調(diào)度方式來分發(fā)請求到后端服務(wù)器

簡單的配置方式如下

upstream name {? ?

?ip_hash;? ??

server 192.168.1.100:8000;? ??

server 192.168.1.100:8001down;? ??

server 192.168.1.100:8002 max_fails=3;? ??

server 192.168.1.100:8003 fail_timeout=20s;? ??

server 192.168.1.100:8004 max_fails=3 fail_timeout=20s;

}

核心配置信息如下

ip_hash:指定請求調(diào)度算法,默認是weight權(quán)重輪詢調(diào)度饰躲,可以指定

server host:port:分發(fā)服務(wù)器的列表配置

-- down:表示該主機暫停服務(wù)

-- max_fails:表示失敗最大次數(shù)牙咏,超過失敗最大次數(shù)暫停服務(wù)

-- fail_timeout:表示如果請求受理失敗,暫停指定的時間之后重新發(fā)起請求

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末嘹裂,一起剝皮案震驚了整個濱河市眠寿,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌焦蘑,老刑警劉巖盯拱,帶你破解...
    沈念sama閱讀 206,311評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異例嘱,居然都是意外死亡狡逢,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評論 2 382
  • 文/潘曉璐 我一進店門拼卵,熙熙樓的掌柜王于貴愁眉苦臉地迎上來奢浑,“玉大人,你說我怎么就攤上這事腋腮∪副耍” “怎么了?”我有些...
    開封第一講書人閱讀 152,671評論 0 342
  • 文/不壞的土叔 我叫張陵即寡,是天一觀的道長徊哑。 經(jīng)常有香客問我,道長聪富,這世上最難降的妖魔是什么莺丑? 我笑而不...
    開封第一講書人閱讀 55,252評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上梢莽,老公的妹妹穿的比我還像新娘萧豆。我一直安慰自己,他們只是感情好昏名,可當(dāng)我...
    茶點故事閱讀 64,253評論 5 371
  • 文/花漫 我一把揭開白布涮雷。 她就那樣靜靜地躺著,像睡著了一般轻局。 火紅的嫁衣襯著肌膚如雪份殿。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,031評論 1 285
  • 那天嗽交,我揣著相機與錄音,去河邊找鬼颂斜。 笑死夫壁,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的沃疮。 我是一名探鬼主播盒让,決...
    沈念sama閱讀 38,340評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼司蔬!你這毒婦竟也來了邑茄?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,973評論 0 259
  • 序言:老撾萬榮一對情侶失蹤俊啼,失蹤者是張志新(化名)和其女友劉穎肺缕,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體授帕,經(jīng)...
    沈念sama閱讀 43,466評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡同木,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,937評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了跛十。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片彤路。...
    茶點故事閱讀 38,039評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖芥映,靈堂內(nèi)的尸體忽然破棺而出洲尊,到底是詐尸還是另有隱情,我是刑警寧澤奈偏,帶...
    沈念sama閱讀 33,701評論 4 323
  • 正文 年R本政府宣布坞嘀,位于F島的核電站,受9級特大地震影響惊来,放射性物質(zhì)發(fā)生泄漏姆吭。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,254評論 3 307
  • 文/蒙蒙 一唁盏、第九天 我趴在偏房一處隱蔽的房頂上張望内狸。 院中可真熱鬧检眯,春花似錦、人聲如沸昆淡。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽昂灵。三九已至避凝,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間眨补,已是汗流浹背管削。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留撑螺,地道東北人含思。 一個月前我還...
    沈念sama閱讀 45,497評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像甘晤,于是被迫代替她去往敵國和親含潘。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,786評論 2 345

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