windows下nginx的使用(转)

https://blog.csdn.net/qq_38455201/article/details/80871541







windows下nginx的使用

2018年07月03日 10:43:02 梦里梦不出梦里梦的梦 阅读数:675 标签: nginxnginx配置nginx一个端口访问不同工程 更多

个人分类: Java开发

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_38455201/article/details/80871541

Nginx (engine x) 是一款轻量级的Web 服务器 、反向代理服务器及电子邮件(IMAP/POP3)代理服务器。

什么是反向代理?

反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。

一:nginx的优点

作为 Web 服务器:相比 Apache,Nginx 使用更少的资源,支持更多的并发连接,体现更高的效率,这点使 Nginx 尤其受到虚拟主机提供商的欢迎。能够支持高达 50,000 个并发连接数的响应,感谢 Nginx 为我们选择了 epoll and kqueue 作为开发模型。

作为负载均衡服务器:Nginx 既可以在内部直接支持 Rails 和 PHP,也可以支持作为 HTTP代理服务器 对外进行服务。Nginx 用 C 编写, 不论是系统资源开销还是 CPU 使用效率都比 Perlbal 要好的多。

作为邮件代理服务器: Nginx 同时也是一个非常优秀的邮件代理服务器(最早开发这个产品的目的之一也是作为邮件代理服务器),Last.fm 描述了成功并且美妙的使用经验。

Nginx 安装非常的简单,配置文件 非常简洁(还能够支持perl语法),Bugs非常少的服务器: Nginx 启动特别容易,并且几乎可以做到7*24不间断运行,即使运行数个月也不需要重新启动。你还能够在 不间断服务的情况下进行软件版本的升级。

二:nginx的下载安装

nginx官网

去官网,下载你需要的windows版本,解压到对应的目录,比如我解压到C:\Program Files\nginx下面

打开解压的文件,双击nginx.exe,在浏览器地址栏输入localhost,可以看到如下界面

三:nginx的常用命令

start nginx            开启nginx

nginx -s stop         快速关闭Nginx,可能不保存相关信息,并迅速终止web服务。

nginx -s quit         平稳关闭Nginx,保存相关信息,有安排的结束web服务。

nginx -s reload      因改变了Nginx相关配置,需要重新加载配置而重载。

nginx -s reopen     重新打开日志文件。

nginx -c filename   为 Nginx 指定一个配置文件,来代替缺省的。

nginx -t         不运行,而仅仅测试配置文件。nginx 将检查配置文件的语法的正确性,并尝试打开配置文件中所引用到的文件。

nginx -v         显示 nginx 的版本。

四:nginx的配置

我们从最简单的开始,仅仅实现一个最简单的反向代理配置

http反向代理配置

#user用来指定nginx worker进程运行用户以及用户组,默认nobody账号运行#user  nobody;#worker_processes指定nginx要开启的子进程数量,运行过程中监控每个进程#消耗内存(一般几M~几十M不等)根据实际情况进行调整,通常数量是CPU内核数量的整数倍worker_processes4;#定义错误日志文件的位置及输出级别【debug / info / notice / warn /error/ crit】#error_log  logs/error.log;#error_log  logs/error.log  notice;#error_log  logs/error.log  info;#用来指定进程id的存储文件的位置#pid        logs/nginx.pid;#用于指定一个进程可以打开最多文件数量的描述#worker_rlimit_nofile 1024;#针对nginx服务器的工作模式的一些操作配置events {#指定最大可以同时接收的连接数量,这里一定要注意,最大连接数量是和worker processes共同决定的。worker_connections1024;#配置指定nginx在收到一个新连接通知后尽可能多的接受更多的连接#multi_accept on;#配置指定了线程轮询的方法,如果是linux2.6+,使用epoll,如果是BSD如Mac请使用Kqueue#use epoll; }#作为web服务器,http模块是nginx最核心的一个模块http {### 基础配置###配置on让sendfile发挥作用,将文件的回写过程交给数据缓冲去去完成,而不是放在应用中完成,这样的话在性能提升有有好处sendfileon;#让nginx在一个数据包中发送所有的头文件,而不是一个一个单独发#tcp_nopush on;#让nginx不要缓存数据,而是一段一段发送,如果数据的传输有实时性的要求的话可以配置它,发送完一小段数据就立刻能得到返回值,但是不要滥用tcp_nodelayon;#给客户端分配连接超时时间,服务器会在这个时间过后关闭连接。一般设置时间较短,可以让nginx工作持续性更好keepalive_timeout65;#混淆数据,影响三列冲突率,值越大消耗内存越多,散列key冲突率会降低,检索速度更快;值越小key,占用内存较少,冲突率越高,检索速度变慢types_hash_max_size2048;#虽然不会让nginx执行速度更快,但是可以在错误页面关闭nginx版本提示,对于网站安全性的提升有好处# server_tokens off;# server_names_hash_bucket_size 64;# server_name_in_redirect off;#指定在当前文件中包含另一个文件的指令include      mime.types;#指定默认处理的文件类型可以是二进制default_type  application/octet-stream;#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  logs/access.log  main;#设置存储记录错误发生的日志error_log  logs/error.log;### SSL证书配置###指令用于启动特定的加密协议,nginx在1.1.13和1.0.12版本后默认是ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2,#TLSv1.1与TLSv1.2要确保OpenSSL >= 1.0.1 ,SSLv3 现在还有很多地方在用但有不少被攻击的漏洞。#ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE#设置协商加密算法时,优先使用我们服务端的加密套件,而不是客户端浏览器的加密套件#ssl_prefer_server_ciphers on;### Gzip 压缩配置###是告诉nginx采用gzip压缩的形式发送数据。这将会减少我们发送的数据量。gzipon;#为指定的客户端禁用gzip功能。我们设置成IE6或者更低版本以使我们的方案能够广泛兼容。gzip_disable"msie6";#upstream模块主要负责负载均衡的配置,通过默认的轮询调度方式来分发请求到后端服务器 upstream tomcatserver1 {  server localhost:8011;}#一个虚拟主机的配置,一个http中可以配置多个serverserver {#监听的端口号listen80;#用来指定ip地址或者域名,多个配置之间用空格分隔,假如在本地运行,配置www.xx.com就需要去更改电脑的host文件#如何更改host:在C:\Windows\System32\drivers\etc目录下的host文件中添加一条DNS记录:127.0.0.1  www.helloworld.comserver_name  www.helloworld.com;#用于设置www/路径中配置的网页的默认编码格式charset        utf-8;#用于指定该虚拟主机服务器中的访问记录日志存放路径#access_log  logs/host.access.log  main;#用于指定该虚拟主机服务器中访问错误日志的存放路径#error_log    logs/host.error.log;#用户访问web网站时的全局首页#index        index.php index.html index.html;#主要用于配置路由访问信息,关联到反向代理、负载均衡等等各项功能#表示匹配访问根目录#location / {#用于指定访问根目录时,访问虚拟主机的web目录#  root  html;#在不指定访问具体资源时,默认展示的资源文件列表#  index  index.html index.htm;#}#反向代理代理服务器访问模式,通过proxy_set配置让客户端访问透明化location / {    proxy_pass    http://tomcatserver1;#Proxy Settingsproxy_set_header        Host            $host;                    proxy_set_header        X-Real-IP      $remote_addr;                    proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;                    client_max_body_size10m;                    client_body_buffer_size128k;                    proxy_connect_timeout90;                    proxy_send_timeout90;                    proxy_read_timeout90;                    proxy_buffer_size4k;                    proxy_buffers432k;                    proxy_busy_buffers_size64k;                    proxy_temp_file_write_size64k;}#error_page  404              /404.html;# redirect servererrorpages to the static page /50x.html#error_page500502503504/50x.html;        location = /50x.html {            root  html;        }    }}

在上述配置中,我们想达到的效果是通过www.helloworld.com这个域名,去访问我们允许在8011端口上面的工程。复制上述配置文件,我们来试一试

第一步:更改host:在C:\Windows\System32\drivers\etc目录下的host文件中添加一条DNS记录:127.0.0.1  www.helloworld.com,这样我们通过www.helloworld.com去访问的时候电脑才可以解析。

第二步:启动nginx

第三步:启动我们的工程,运行于我们在upstream当中运行的端口,这里是8011。我们在工程当中提供一个接口供外界访问。

@RestController

@RequestMapping("/hello")

publicclassHelloController{

privatefinalLogger logger= LoggerFactory.getLogger(this.getClass());

@RequestMapping("/test")

publicStringrun1(HttpServletRequest request){

        Map<String,Object> map = Maps.newHashMap();

map.put("name","King James");

map.put("team"," Lakers");

map.put("port",request.getLocalPort());

logger.info("看下打印的信息:"+JSON.toJSONString(map));

returnJSON.toJSONString(map);

    }

}

第四步:在浏览器当中输入www.helloworld.com/hello/test,看测试的结果如下,成功的实现了反向代理。

http反向代理+负载均衡

我们可以在不同的服务器上运行相同的服务,或者同一个机子不同端口运行相同的服务,这个时候就可以使用负载均衡来分流

#user用来指定nginx worker进程运行用户以及用户组,默认nobody账号运行#user  nobody;#worker_processes指定nginx要开启的子进程数量,运行过程中监控每个进程#消耗内存(一般几M~几十M不等)根据实际情况进行调整,通常数量是CPU内核数量的整数倍worker_processes4;#定义错误日志文件的位置及输出级别【debug / info / notice / warn /error/ crit】#error_log  logs/error.log;#error_log  logs/error.log  notice;#error_log  logs/error.log  info;#用来指定进程id的存储文件的位置#pid        logs/nginx.pid;#用于指定一个进程可以打开最多文件数量的描述#worker_rlimit_nofile 1024;#针对nginx服务器的工作模式的一些操作配置events {#指定最大可以同时接收的连接数量,这里一定要注意,最大连接数量是和worker processes共同决定的。worker_connections1024;#配置指定nginx在收到一个新连接通知后尽可能多的接受更多的连接#multi_accept on;#配置指定了线程轮询的方法,如果是linux2.6+,使用epoll,如果是BSD如Mac请使用Kqueue#use epoll;}#作为web服务器,http模块是nginx最核心的一个模块http {### 基础配置###配置on让sendfile发挥作用,将文件的回写过程交给数据缓冲去去完成,而不是放在应用中完成,这样的话在性能提升有有好处sendfileon;#让nginx在一个数据包中发送所有的头文件,而不是一个一个单独发#tcp_nopush on;#让nginx不要缓存数据,而是一段一段发送,如果数据的传输有实时性的要求的话可以配置它,发送完一小段数据就立刻能得到返回值,但是不要滥用tcp_nodelayon;#给客户端分配连接超时时间,服务器会在这个时间过后关闭连接。一般设置时间较短,可以让nginx工作持续性更好keepalive_timeout65;#混淆数据,影响三列冲突率,值越大消耗内存越多,散列key冲突率会降低,检索速度更快;值越小key,占用内存较少,冲突率越高,检索速度变慢types_hash_max_size2048;#虽然不会让nginx执行速度更快,但是可以在错误页面关闭nginx版本提示,对于网站安全性的提升有好处# server_tokens off;# server_names_hash_bucket_size 64;# server_name_in_redirect off;#指定在当前文件中包含另一个文件的指令include      mime.types;#指定默认处理的文件类型可以是二进制default_type  application/octet-stream;#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  logs/access.log  main;#设置存储记录错误发生的日志error_log  logs/error.log;### SSL证书配置###指令用于启动特定的加密协议,nginx在1.1.13和1.0.12版本后默认是ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2,#TLSv1.1与TLSv1.2要确保OpenSSL >= 1.0.1 ,SSLv3 现在还有很多地方在用但有不少被攻击的漏洞。#ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE#设置协商加密算法时,优先使用我们服务端的加密套件,而不是客户端浏览器的加密套件#ssl_prefer_server_ciphers on;### Gzip 压缩配置###是告诉nginx采用gzip压缩的形式发送数据。这将会减少我们发送的数据量。gzipon;#为指定的客户端禁用gzip功能。我们设置成IE6或者更低版本以使我们的方案能够广泛兼容。gzip_disable"msie6";#upstream模块主要负责负载均衡的配置,通过默认的轮询调度方式来分发请求到后端服务器upstream tomcatserver1 {#指定请求调度算法,默认是weight权重轮询调度,可以指定 #ip_hash; 每个请求按照访问ip(即Nginx的前置服务器或者客户端IP)的hash结果分配,#这样每个访客会固定访问一个后端服务器,可以解决session一致问题。 #server host:port:分发服务器的列表配置server localhost:8011weight=1;server localhost:8012weight=2;#down:表示该主机暂停服务#server 192.168.1.100:8001 down;#max_fails:表示失败最大次数,超过失败最大次数暂停服务#server 192.168.1.100:8002 max_fails=3;#fail_timeout:表示如果请求受理失败,暂停指定的时间之后重新发起请求#server 192.168.1.100:8003 fail_timeout=20s;#server 192.168.1.100:8004 max_fails=3 fail_timeout=20s;}#一个虚拟主机的配置,一个http中可以配置多个serverserver {#监听的端口号listen80;#用来指定ip地址或者域名,多个配置之间用空格分隔,假如在本地运行,配置www.xx.com就需要去更改电脑的host文件#如何更改host:在C:\Windows\System32\drivers\etc目录下的host文件中添加一条DNS记录:127.0.0.1  www.helloworld.comserver_name  www.helloworld.com;#用于设置www/路径中配置的网页的默认编码格式charset        utf-8;#用于指定该虚拟主机服务器中的访问记录日志存放路径#access_log  logs/host.access.log  main;#用于指定该虚拟主机服务器中访问错误日志的存放路径#error_log    logs/host.error.log;#用户访问web网站时的全局首页#index        index.php index.html index.html;#主要用于配置路由访问信息,关联到反向代理、负载均衡等等各项功能#表示匹配访问根目录#location / {#用于指定访问根目录时,访问虚拟主机的web目录#  root  html;#在不指定访问具体资源时,默认展示的资源文件列表#  index  index.html index.htm;#}#反向代理代理服务器访问模式,通过proxy_set配置让客户端访问透明化location / {    proxy_pass    http://tomcatserver1;#Proxy Settingsproxy_set_header        Host            $host;            proxy_set_header        X-Real-IP      $remote_addr;            proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;            client_max_body_size10m;              client_body_buffer_size128k;              proxy_connect_timeout90;              proxy_send_timeout90;              proxy_read_timeout90;              proxy_buffer_size4k;              proxy_buffers432k;              proxy_busy_buffers_size64k;              proxy_temp_file_write_size64k;}#error_page  404              /404.html;# redirect servererrorpages to the static page /50x.html#error_page500502503504/50x.html;        location = /50x.html {            root  html;        }                      }}

在上述配置当中,我们在upstream分配两台服务,分别运行于8011和8012端口上,并且使用weight去分配权限,weigth参数表示权值,权值越高被分配到的几率越大。我们在这里分配的1和2,也就是来三次请求,2次去请求8012端口,一次去请求8011端口。

第一步:复制上述配置文件,重启nginx

第二步:开启两个工程,分别运行于8011和8012端口

第三步:浏览器当中输入www.helloworld.com/hello/test,我们可以看到浏览器按照weight值去访问服务。

nginx同一端口访问多个工程

我们知道,http的默认端口号是80,如果在一台服务器上同时启动两个工程,都用80端口,肯定是不成的。但是我们使用使用应用上下文去区别,比如:

我们可以让以www.helloworld.com/web1开头的都去访问工程1,www.helloworld.com/web2的都去访问工程2,这样就可以解决一个端口多个工程的问题。

#user用来指定nginx worker进程运行用户以及用户组,默认nobody账号运行#user  nobody;#worker_processes指定nginx要开启的子进程数量,运行过程中监控每个进程#消耗内存(一般几M~几十M不等)根据实际情况进行调整,通常数量是CPU内核数量的整数倍worker_processes4;#定义错误日志文件的位置及输出级别【debug / info / notice / warn / error / crit】#error_log  logs/error.log;#error_log  logs/error.log  notice;#error_log  logs/error.log  info;#用来指定进程id的存储文件的位置#pid        logs/nginx.pid;#用于指定一个进程可以打开最多文件数量的描述#worker_rlimit_nofile 1024;#针对nginx服务器的工作模式的一些操作配置events {#指定最大可以同时接收的连接数量,这里一定要注意,最大连接数量是和worker processes共同决定的。worker_connections1024;#配置指定nginx在收到一个新连接通知后尽可能多的接受更多的连接#multi_accept on;#配置指定了线程轮询的方法,如果是linux2.6+,使用epoll,如果是BSD如Mac请使用Kqueue#use epoll; }#作为web服务器,http模块是nginx最核心的一个模块http {### 基础配置###配置on让sendfile发挥作用,将文件的回写过程交给数据缓冲去去完成,而不是放在应用中完成,这样的话在性能提升有有好处sendfile on;#让nginx在一个数据包中发送所有的头文件,而不是一个一个单独发#tcp_nopush on;#让nginx不要缓存数据,而是一段一段发送,如果数据的传输有实时性的要求的话可以配置它,发送完一小段数据就立刻能得到返回值,但是不要滥用tcp_nodelay on;#给客户端分配连接超时时间,服务器会在这个时间过后关闭连接。一般设置时间较短,可以让nginx工作持续性更好keepalive_timeout65;#混淆数据,影响三列冲突率,值越大消耗内存越多,散列key冲突率会降低,检索速度更快;值越小key,占用内存较少,冲突率越高,检索速度变慢types_hash_max_size2048;#虽然不会让nginx执行速度更快,但是可以在错误页面关闭nginx版本提示,对于网站安全性的提升有好处# server_tokens off;# server_names_hash_bucket_size 64;# server_name_in_redirect off;#指定在当前文件中包含另一个文件的指令includemime.types;#指定默认处理的文件类型可以是二进制default_type  application/octet-stream;#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  logs/access.log  main;#设置存储记录错误发生的日志error_log  logs/error.log;### SSL证书配置###指令用于启动特定的加密协议,nginx在1.1.13和1.0.12版本后默认是ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2,#TLSv1.1与TLSv1.2要确保OpenSSL >= 1.0.1 ,SSLv3 现在还有很多地方在用但有不少被攻击的漏洞。#ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE#设置协商加密算法时,优先使用我们服务端的加密套件,而不是客户端浏览器的加密套件#ssl_prefer_server_ciphers on;### Gzip 压缩配置###是告诉nginx采用gzip压缩的形式发送数据。这将会减少我们发送的数据量。gzip  on;#为指定的客户端禁用gzip功能。我们设置成IE6或者更低版本以使我们的方案能够广泛兼容。gzip_disable"msie6";#第一台tomcat,8080端口upstream tomcat_server1 {        ip_hash;        server localhost:8011;    }#第二台tomcat,7080端口upstream tomcat_server2 {        ip_hash;        server localhost:8012;    }#一个虚拟主机的配置,一个http中可以配置多个serverserver {#监听的端口号listen80;#用来指定ip地址或者域名,多个配置之间用空格分隔,假如在本地运行,配置www.xx.com就需要去更改电脑的host文件#如何更改host:在C:\Windows\System32\drivers\etc目录下的host文件中添加一条DNS记录:127.0.0.1  www.helloworld.comserver_name  www.helloworld.com;#用于设置www/路径中配置的网页的默认编码格式charset        utf-8;#用于指定该虚拟主机服务器中的访问记录日志存放路径#access_log  logs/host.access.log  main;#用于指定该虚拟主机服务器中访问错误日志的存放路径#error_log    logs/host.error.log;#用户访问web网站时的全局首页#index        index.php index.html index.html;#主要用于配置路由访问信息,关联到反向代理、负载均衡等等各项功能#表示匹配访问根目录#location / {#用于指定访问根目录时,访问虚拟主机的web目录#  root  html;#在不指定访问具体资源时,默认展示的资源文件列表#  index  index.html index.htm;#}#配置访问路径,location ^~ /web1/ {#设置对应tomcat端口跳转路径proxy_pass  http://tomcat_server1/;proxy_set_header        Host            $host;            proxy_set_header        X-Real-IP      $remote_addr;            proxy_set_header        X-Forwarded-For$proxy_add_x_forwarded_for;            client_max_body_size10m;            client_body_buffer_size128k;            proxy_connect_timeout90;            proxy_send_timeout90;            proxy_read_timeout90;            proxy_buffer_size4k;            proxy_buffers432k;            proxy_busy_buffers_size64k;            proxy_temp_file_write_size64k;        }#配置访问路径location ^~ /web2/ {#设置对应tomcat端口跳转路径proxy_pass  http://tomcat_server2/;proxy_set_header        Host            $host;            proxy_set_header        X-Real-IP      $remote_addr;            proxy_set_header        X-Forwarded-For$proxy_add_x_forwarded_for;            client_max_body_size10m;            client_body_buffer_size128k;            proxy_connect_timeout90;            proxy_send_timeout90;            proxy_read_timeout90;            proxy_buffer_size4k;            proxy_buffers432k;            proxy_busy_buffers_size64k;            proxy_temp_file_write_size64k;        }#error_page  404              /404.html;# redirect server error pages to the static page /50x.html#error_page500502503504/50x.html;        location = /50x.html {            root  html;        }    }}

第一步:复制配置文件,重启nginx

第二步:运行两个工程,分别于8011端口和8012端口

第三步:打开浏览器,分别输入www.helloworld.com/web1/hello/test和www.helloworld.com/web2/hello/test,可以看到浏览器返回如下结果,说明我们已经可以按照应用上下文去区分不用的应用了。

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

推荐阅读更多精彩内容