【轉(zhuǎn)載】徹底搞懂 Nginx 的五大應(yīng)用場景

徹底搞懂 Nginx 的五大應(yīng)用場景

一筷登、HTTP服務(wù)器

Nginx本身也是一個靜態(tài)資源的服務(wù)器仑扑,當(dāng)只有靜態(tài)資源的時候桶略,就可以使用Nginx來做服務(wù)器麻敌,如果一個網(wǎng)站只是靜態(tài)頁面的話,那么就可以通過這種方式來實現(xiàn)部署帘不。

1说莫、 首先在文檔根目錄Docroot(/usr/local/var/www)下創(chuàng)建html目錄, 然后在html中放一個test.html;

圖片

2、 配置nginx.conf中的server

user mengday staff;http {    server {        listen       80;        server_name  localhost;        client_max_body_size 1024M;        # 默認(rèn)location        location / {            root   /usr/local/var/www/html;            index  index.html index.htm;        }    }}

3寞焙、訪問測試

  • http://localhost/ 指向/usr/local/var/www/index.html, index.html是安裝nginx自帶的html
  • http://localhost/test.html 指向/usr/local/var/www/html/test.html

注意:如果訪問圖片出現(xiàn)403 Forbidden錯誤储狭,可能是因為nginx.conf 的第一行user配置不對互婿,默認(rèn)是#user nobody;是注釋的,linux下改成user root; macos下改成user 用戶名 所在組; 然后重新加載配置文件或者重啟辽狈,再試一下就可以了慈参, 用戶名可以通過who am i 命令來查看。

4刮萌、指令簡介

  • server : 用于定義服務(wù)懂牧,http中可以有多個server塊
  • listen : 指定服務(wù)器偵聽請求的IP地址和端口,如果省略地址尊勿,服務(wù)器將偵聽所有地址僧凤,如果省略端口,則使用標(biāo)準(zhǔn)端口
  • server_name : 服務(wù)名稱元扔,用于配置域名
  • location : 用于配置映射路徑uri對應(yīng)的配置躯保,一個server中可以有多個location, location后面跟一個uri,可以是一個正則表達(dá)式, / 表示匹配任意路徑, 當(dāng)客戶端訪問的路徑滿足這個uri時就會執(zhí)行l(wèi)ocation塊里面的代碼
  • root : 根路徑,當(dāng)訪問http://localhost/test.html澎语,“/test.html”會匹配到”/”uri, 找到root為/usr/local/var/www/html途事,用戶訪問的資源物理地址=root + uri = /usr/local/var/www/html + /test.html=/usr/local/var/www/html/test.html
  • index : 設(shè)置首頁,當(dāng)只訪問server_name時后面不跟任何路徑是不走root直接走index指令的擅羞;如果訪問路徑中沒有指定具體的文件尸变,則返回index設(shè)置的資源,如果訪問http://localhost/html/ 則默認(rèn)返回index.html

5减俏、location uri正則表達(dá)式

  • . :匹配除換行符以外的任意字符
  • ? :重復(fù)0次或1次
  • + :重復(fù)1次或更多次
  • * :重復(fù)0次或更多次
  • \d :匹配數(shù)字
  • ^ :匹配字符串的開始
  • $ :匹配字符串的結(jié)束
  • {n} :重復(fù)n次
  • {n,} :重復(fù)n次或更多次
  • [c] :匹配單個字符c
  • [a-z] :匹配a-z小寫字母的任意一個
  • (a|b|c) : 屬線表示匹配任意一種情況召烂,每種情況使用豎線分隔,一般使用小括號括括住娃承,匹配符合a字符 或是b字符 或是c字符的字符串
  • \ 反斜杠:用于轉(zhuǎn)義特殊字符

小括號()之間匹配的內(nèi)容奏夫,可以在后面通過$1來引用,$2表示的是前面第二個()里的內(nèi)容历筝。正則里面容易讓人困惑的是\轉(zhuǎn)義特殊字符酗昼。

二、靜態(tài)服務(wù)器

在公司中經(jīng)常會遇到靜態(tài)服務(wù)器梳猪,通常會提供一個上傳的功能麻削,其他應(yīng)用如果需要靜態(tài)資源就從該靜態(tài)服務(wù)器中獲取。

1春弥、在/usr/local/var/www 下分別創(chuàng)建images和img目錄呛哟,分別在每個目錄下放一張test.jpg

image.gif
http {    server {        listen       80;        server_name  localhost;        set $doc_root /usr/local/var/www;        # 默認(rèn)location        location / {            root   /usr/local/var/www/html;            index  index.html index.htm;        }        location ^~ /images/ {            root $doc_root;       }       location ~* \.(gif|jpg|jpeg|png|bmp|ico|swf|css|js)$ {           root $doc_root/img;       }    }}

自定義變量使用set指令,語法 set 變量名值;引用使用變量名值;引用使用變量名; 這里自定義了doc_root變量惕稻。

靜態(tài)服務(wù)器location的映射一般有兩種方式:

  • 使用路徑竖共,如 /images/ 一般圖片都會放在某個圖片目錄下蝙叛,
  • 使用后綴俺祠,如 .jpg、.png 等后綴匹配模式

訪問http://localhost/test.jpg 會映射到 $doc_root/img

訪問http://localhost/images/test.jpg 當(dāng)同一個路徑滿足多個location時,優(yōu)先匹配優(yōu)先級高的location蜘渣,由于^~ 的優(yōu)先級大于 ~, 所以會走/images/對應(yīng)的location

常見的location路徑映射路徑有以下幾種:

  • = 進(jìn)行普通字符精確匹配淌铐。也就是完全匹配。
  • ^~ 前綴匹配蔫缸。如果匹配成功腿准,則不再匹配其他location。
  • ~ 表示執(zhí)行一個正則匹配拾碌,區(qū)分大小寫
  • ~* 表示執(zhí)行一個正則匹配吐葱,不區(qū)分大小寫
  • /xxx/ 常規(guī)字符串路徑匹配
  • / 通用匹配,任何請求都會匹配到

location優(yōu)先級

當(dāng)一個路徑匹配多個location時究竟哪個location能匹配到時有優(yōu)先級順序的校翔,而優(yōu)先級的順序于location值的表達(dá)式類型有關(guān)弟跑,和在配置文件中的先后順序無關(guān)。相同類型的表達(dá)式防症,字符串長的會優(yōu)先匹配孟辑。推薦:Java面試題大全

以下是按優(yōu)先級排列說明:

  • 等號類型(=)的優(yōu)先級最高。一旦匹配成功蔫敲,則不再查找其他匹配項饲嗽,停止搜索。
  • ^~類型表達(dá)式奈嘿,不屬于正則表達(dá)式貌虾。一旦匹配成功,則不再查找其他匹配項裙犹,停止搜索酝惧。
  • 正則表達(dá)式類型(~ ~*)的優(yōu)先級次之。如果有多個location的正則能匹配的話伯诬,則使用正則表達(dá)式最長的那個晚唇。
  • 常規(guī)字符串匹配類型。按前綴匹配盗似。
  • / 通用匹配哩陕,如果沒有匹配到,就匹配通用的

優(yōu)先級搜索問題:不同類型的location映射決定是否繼續(xù)向下搜索

  • 等號類型赫舒、^~類型:一旦匹配上就停止搜索了悍及,不會再匹配其他location了
  • 正則表達(dá)式類型(~ ~*),常規(guī)字符串匹配類型/xxx/ : 匹配到之后,還會繼續(xù)搜索其他其它location接癌,直到找到優(yōu)先級最高的心赶,或者找到第一種情況而停止搜索

location優(yōu)先級從高到底:

(location =) > (location 完整路徑) > (location ^~ 路徑) > (location ~,~* 正則順序) > (location 部分起始路徑) > (/)

location = / {    # 精確匹配/,主機(jī)名后面不能帶任何字符串 /    [ configuration A ]}location / {    # 匹配所有以 / 開頭的請求缺猛。    # 但是如果有更長的同類型的表達(dá)式缨叫,則選擇更長的表達(dá)式椭符。    # 如果有正則表達(dá)式可以匹配,則優(yōu)先匹配正則表達(dá)式耻姥。    [ configuration B ]}location /documents/ {    # 匹配所有以 /documents/ 開頭的請求销钝,匹配符合以后,還要繼續(xù)往下搜索琐簇。    # 但是如果有更長的同類型的表達(dá)式蒸健,則選擇更長的表達(dá)式。    # 如果有正則表達(dá)式可以匹配婉商,則優(yōu)先匹配正則表達(dá)式似忧。    [ configuration C ]}location ^~ /images/ {    # 匹配所有以 /images/ 開頭的表達(dá)式,如果匹配成功丈秩,則停止匹配查找橡娄,停止搜索。    # 所以癣籽,即便有符合的正則表達(dá)式location挽唉,也不會被使用    [ configuration D ]}location ~* \.(gif|jpg|jpeg)$ {    # 匹配所有以 gif jpg jpeg結(jié)尾的請求。    # 但是 以 /images/開頭的請求筷狼,將使用 Configuration D瓶籽,D具有更高的優(yōu)先級    [ configuration E ]}location /images/ {    # 字符匹配到 /images/,還會繼續(xù)往下搜索    [ configuration F ]}location = /test.htm {    root   /usr/local/var/www/htm;    index  index.htm;}

注意:location的優(yōu)先級與location配置的位置無關(guān)

三埂材、反向代理

反向代理應(yīng)該是Nginx使用最多的功能了塑顺,反向代理(Reverse Proxy)方式是指以代理服務(wù)器來接受internet上的連接請求,然后將請求轉(zhuǎn)發(fā)給內(nèi)部網(wǎng)絡(luò)上的服務(wù)器俏险,并將從服務(wù)器上得到的結(jié)果返回給internet上請求連接的客戶端严拒,此時代理服務(wù)器對外就表現(xiàn)為一個反向代理服務(wù)器。

簡單來說就是真實的服務(wù)器不能直接被外部網(wǎng)絡(luò)訪問竖独,所以需要一臺代理服務(wù)器裤唠,而代理服務(wù)器能被外部網(wǎng)絡(luò)訪問的同時又跟真實服務(wù)器在同一個網(wǎng)絡(luò)環(huán)境,當(dāng)然也可能是同一臺服務(wù)器莹痢,端口不同而已种蘸。

反向代理通過proxy_pass指令來實現(xiàn)。

啟動一個Java Web項目竞膳,端口號為8081

server {    listen       80;    server_name  localhost;    location / {        proxy_pass http://localhost:8081;        proxy_set_header Host $host:$server_port;        # 設(shè)置用戶ip地址         proxy_set_header X-Forwarded-For $remote_addr;         # 當(dāng)請求服務(wù)器出錯去尋找其他服務(wù)器         proxy_next_upstream error timeout invalid_header http_500 http_502 http_503;     }}   

當(dāng)我們訪問localhost的時候航瞭,就相當(dāng)于訪問 localhost:8081

四、負(fù)載均衡

負(fù)載均衡也是Nginx常用的一個功能坦辟,負(fù)載均衡其意思就是分?jǐn)偟蕉鄠€操作單元上進(jìn)行執(zhí)行刊侯,例如Web服務(wù)器、FTP服務(wù)器锉走、企業(yè)關(guān)鍵應(yīng)用服務(wù)器和其它關(guān)鍵任務(wù)服務(wù)器等滨彻,從而共同完成工作任務(wù)藕届。

簡單而言就是當(dāng)有2臺或以上服務(wù)器時,根據(jù)規(guī)則隨機(jī)的將請求分發(fā)到指定的服務(wù)器上處理疮绷,負(fù)載均衡配置一般都需要同時配置反向代理,通過反向代理跳轉(zhuǎn)到負(fù)載均衡嚣潜。而Nginx目前支持自帶3種負(fù)載均衡策略冬骚,還有2種常用的第三方策略。

負(fù)載均衡通過upstream指令來實現(xiàn)懂算。

1. RR(round robin :輪詢 默認(rèn))

每個請求按時間順序逐一分配到不同的后端服務(wù)器只冻,也就是說第一次請求分配到第一臺服務(wù)器上,第二次請求分配到第二臺服務(wù)器上计技,如果只有兩臺服務(wù)器喜德,第三次請求繼續(xù)分配到第一臺上,這樣循環(huán)輪詢下去垮媒,也就是服務(wù)器接收請求的比例是 1:1舍悯, 如果后端服務(wù)器down掉,能自動剔除睡雇。輪詢是默認(rèn)配置萌衬,不需要太多的配置

同一個項目分別使用8081和8082端口啟動項目

upstream web_servers {     server localhost:8081;     server localhost:8082;  }server {    listen       80;    server_name  localhost;    #access_log  logs/host.access.log  main;    location / {        proxy_pass http://web_servers;        # 必須指定Header Host        proxy_set_header Host $host:$server_port;    } }

訪問地址仍然可以獲得響應(yīng) http://localhost/api/user/login?username=zhangsan&password=111111 ,這種方式是輪詢的

2. 權(quán)重

指定輪詢幾率它抱,weight和訪問比率成正比, 也就是服務(wù)器接收請求的比例就是各自配置的weight的比例秕豫,用于后端服務(wù)器性能不均的情況,比如服務(wù)器性能差點就少接收點請求,服務(wù)器性能好點就多處理點請求观蓄。

upstream test {    server localhost:8081 weight=1;    server localhost:8082 weight=3;    server localhost:8083 weight=4 backup;}

示例是4次請求只有一次被分配到8081上混移,其他3次分配到8082上。backup是指熱備侮穿,只有當(dāng)8081和8082都宕機(jī)的情況下才走8083

3. ip_hash

上面的2種方式都有一個問題歌径,那就是下一個請求來的時候請求可能分發(fā)到另外一個服務(wù)器,當(dāng)我們的程序不是無狀態(tài)的時候(采用了session保存數(shù)據(jù))亲茅,這時候就有一個很大的很問題了沮脖,比如把登錄信息保存到了session中,那么跳轉(zhuǎn)到另外一臺服務(wù)器的時候就需要重新登錄了芯急,所以很多時候我們需要一個客戶只訪問一個服務(wù)器勺届,那么就需要用iphash了,iphash的每個請求按訪問ip的hash結(jié)果分配娶耍,這樣每個訪客固定訪問一個后端服務(wù)器免姿,可以解決session的問題。

upstream test {    ip_hash;    server localhost:8080;    server localhost:8081;}

4. fair(第三方)

按后端服務(wù)器的響應(yīng)時間來分配請求榕酒,響應(yīng)時間短的優(yōu)先分配胚膊。這個配置是為了更快的給用戶響應(yīng)

upstream backend {    fair;    server localhost:8080;    server localhost:8081;}

5. url_hash(第三方)

按訪問url的hash結(jié)果來分配請求故俐,使每個url定向到同一個后端服務(wù)器,后端服務(wù)器為緩存時比較有效紊婉。在upstream中加入hash語句药版,server語句中不能寫入weight等其他的參數(shù),hash_method是使用的hash算法

upstream backend {    hash $request_uri;    hash_method crc32;    server localhost:8080;    server localhost:8081;}

以上5種負(fù)載均衡各自適用不同情況下使用喻犁,所以可以根據(jù)實際情況選擇使用哪種策略模式,不過fair和url_hash需要安裝第三方模塊才能使用槽片。

五、動靜分離

動靜分離是讓動態(tài)網(wǎng)站里的動態(tài)網(wǎng)頁根據(jù)一定規(guī)則把不變的資源和經(jīng)常變的資源區(qū)分開來肢础,動靜資源做好了拆分以后还栓,我們就可以根據(jù)靜態(tài)資源的特點將其做緩存操作,這就是網(wǎng)站靜態(tài)化處理的核心思路传轰。

upstream web_servers {         server localhost:8081;         server localhost:8082;  }server {    listen       80;    server_name  localhost;    set $doc_root /usr/local/var/www;    location ~* \.(gif|jpg|jpeg|png|bmp|ico|swf|css|js)$ {       root $doc_root/img;    }    location / {        proxy_pass http://web_servers;        # 必須指定Header Host        proxy_set_header Host $host:$server_port;    }    error_page 500 502 503 504  /50x.html;      location = /50x.html {          root $doc_root;    } }

六剩盒、其他

1.return指令

返回http狀態(tài)碼 和 可選的第二個參數(shù)可以是重定向的URL

location /permanently/moved/url {    return 301 http://www.example.com/moved/here;}

2. rewrite指令

重寫URI請求 rewrite,通過使用rewrite指令在請求處理期間多次修改請求URI慨蛙,該指令具有一個可選參數(shù)和兩個必需參數(shù)辽聊。

第一個(必需)參數(shù)是請求URI必須匹配的正則表達(dá)式。

第二個參數(shù)是用于替換匹配URI的URI期贫。

可選的第三個參數(shù)是可以停止進(jìn)一步重寫指令的處理或發(fā)送重定向(代碼301或302)的標(biāo)志

location /users/ {    rewrite ^/users/(.*)$ /show?user=$1 break;}

3. error_page指令

使用error_page指令身隐,您可以配置NGINX返回自定義頁面以及錯誤代碼,替換響應(yīng)中的其他錯誤代碼唯灵,或?qū)g覽器重定向到其他URI贾铝。在以下示例中,error_page指令指定要返回404頁面錯誤代碼的頁面(/404.html)埠帕。

error_page 404 /404.html;

4. 日志

訪問日志:需要開啟壓縮 gzip on; 否則不生成日志文件垢揩,打開log_formataccess_log注釋

log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '                      '$status $body_bytes_sent "$http_referer" '                      '"$http_user_agent" "$http_x_forwarded_for"';access_log  /usr/local/etc/nginx/logs/host.access.log  main;gzip  on;

5. deny 指令

# 禁止訪問某個目錄location ~* \.(txt|doc)${    root $doc_root;    deny all;}   

6. 內(nèi)置變量

nginx的配置文件中可以使用的內(nèi)置變量以美元符$開始敛瓷,也有人叫全局變量叁巨。其中,部分預(yù)定義的變量的值是可以改變的呐籽。另外锋勺,關(guān)注Java知音公眾號,回復(fù)“后端面試”狡蝶,送你一份面試題寶典庶橱!

  • $args#這個變量等于請求行中的參數(shù),同$query_string
  • $content_length :請求頭中的Content-length字段贪惹。
  • $content_type :請求頭中的Content-Type字段苏章。
  • $document_root :當(dāng)前請求在root指令中指定的值。
  • $host :請求主機(jī)頭字段,否則為服務(wù)器名稱枫绅。
  • $http_user_agent :客戶端agent信息
  • $http_cookie :客戶端cookie信息
  • $limit_rate :這個變量可以限制連接速率泉孩。
  • $request_method :客戶端請求的動作,通常為GET或POST并淋。
  • $remote_addr :客戶端的IP地址寓搬。
  • $remote_port :客戶端的端口。
  • $remote_user :已經(jīng)經(jīng)過Auth Basic Module驗證的用戶名县耽。
  • $request_filename :當(dāng)前請求的文件路徑句喷,由root或alias指令與URI請求生成。
  • $scheme :HTTP方法(如http酬诀,https)脏嚷。
  • $server_protocol :請求使用的協(xié)議骆撇,通常是HTTP/1.0或HTTP/1.1瞒御。
  • $server_addr :服務(wù)器地址,在完成一次系統(tǒng)調(diào)用后可以確定這個值神郊。
  • $server_name :服務(wù)器名稱肴裙。
  • $server_port :請求到達(dá)服務(wù)器的端口號。
  • $request_uri :包含請求參數(shù)的原始URI涌乳,不包含主機(jī)名蜻懦,如:”/foo/bar.php?arg=baz”。
  • $uri :不帶請求參數(shù)的當(dāng)前URI夕晓,$uri不包含主機(jī)名宛乃,如”/foo/bar.html”。
  • $document_uri :與$uri相同
image.gif

這個Java開源建站神器有點吊蒸辆!Wordpress下崗了圖解 Spring 循環(huán)依賴征炼,寫得太好了!
教你用Java的方式創(chuàng)建一個自己的Tomcat容器

歡迎添加微信聊聊技術(shù)~

image.gif

好文章躬贡,我“在看****”

閱讀 428

分享 收藏

贊2 在看1

收藏此內(nèi)容的人還喜歡

[圖解 Redis 五種數(shù)據(jù)結(jié)構(gòu)底層實現(xiàn)

圖解 Redis 五種數(shù)據(jù)結(jié)構(gòu)底層實現(xiàn)

...

閱讀 1193

武培軒

不喜歡

不看的原因

確定

  • 內(nèi)容質(zhì)量低

  • 不看此公眾號](javascript:void(0);) [35 張圖帶你 MySQL 調(diào)優(yōu)

35 張圖帶你 MySQL 調(diào)優(yōu)

...

贊 29

我是程序汪

不喜歡

不看的原因

確定

  • 內(nèi)容質(zhì)量低

  • 不看此公眾號](javascript:void(0);) [【240期】說說Redis的讀寫分離技術(shù)

【240期】說說Redis的讀寫分離技術(shù)

...

閱讀 602

Java最全面試題庫

不喜歡

不看的原因

確定

  • 內(nèi)容質(zhì)量低

  • 不看此公眾號](javascript:void(0);)

寫下你的留言

精選留言

  • image

    Clown

    ?? ?? ??

<input readonly="" style="margin: 0px; padding: 0px; caret-color: var(--weui-BRAND); orphans: 2; white-space: normal; widows: 2; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial; position: absolute; left: -999999px;">

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末谆奥,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子拂玻,更是在濱河造成了極大的恐慌酸些,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,546評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件檐蚜,死亡現(xiàn)場離奇詭異魄懂,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)闯第,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,224評論 3 395
  • 文/潘曉璐 我一進(jìn)店門逢渔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人乡括,你說我怎么就攤上這事肃廓≈茄幔” “怎么了?”我有些...
    開封第一講書人閱讀 164,911評論 0 354
  • 文/不壞的土叔 我叫張陵盲赊,是天一觀的道長铣鹏。 經(jīng)常有香客問我,道長哀蘑,這世上最難降的妖魔是什么诚卸? 我笑而不...
    開封第一講書人閱讀 58,737評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮绘迁,結(jié)果婚禮上合溺,老公的妹妹穿的比我還像新娘。我一直安慰自己缀台,他們只是感情好棠赛,可當(dāng)我...
    茶點故事閱讀 67,753評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著膛腐,像睡著了一般睛约。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上哲身,一...
    開封第一講書人閱讀 51,598評論 1 305
  • 那天辩涝,我揣著相機(jī)與錄音,去河邊找鬼勘天。 笑死怔揩,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的脯丝。 我是一名探鬼主播商膊,決...
    沈念sama閱讀 40,338評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼巾钉!你這毒婦竟也來了翘狱?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,249評論 0 276
  • 序言:老撾萬榮一對情侶失蹤砰苍,失蹤者是張志新(化名)和其女友劉穎潦匈,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體赚导,經(jīng)...
    沈念sama閱讀 45,696評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡茬缩,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,888評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了吼旧。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片凰锡。...
    茶點故事閱讀 40,013評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出掂为,到底是詐尸還是另有隱情裕膀,我是刑警寧澤,帶...
    沈念sama閱讀 35,731評論 5 346
  • 正文 年R本政府宣布勇哗,位于F島的核電站昼扛,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏欲诺。R本人自食惡果不足惜抄谐,卻給世界環(huán)境...
    茶點故事閱讀 41,348評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望扰法。 院中可真熱鬧蛹含,春花似錦、人聲如沸塞颁。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,929評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽殴边。三九已至憎茂,卻和暖如春珍语,著一層夾襖步出監(jiān)牢的瞬間锤岸,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,048評論 1 270
  • 我被黑心中介騙來泰國打工板乙, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留是偷,地道東北人。 一個月前我還...
    沈念sama閱讀 48,203評論 3 370
  • 正文 我出身青樓募逞,卻偏偏與公主長得像蛋铆,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子放接,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,960評論 2 355

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