自从之前给blog申请了一个ssl证书后,我是把http段和https段分成了2个server。但是这样有个问题是改配置的时候比较麻烦,有时候修改了http段的就忘记了修改https段的。实际上是可以直接把这两个配置文件合并起来的。方法比较简单,就是一个server段同时listen 443和80端口,然后listen 443后面加上ssl参数,并且需要把以前ssl on给删除掉(这种配置方式本来也不是现在提倡的了,详细的可以参考nginx的WIKI)。配置文件如下

[WIKI](http://wiki.nginx.org/HttpCoreModule#listen)```
server {listen [::]:443 ssl so_keepalive=on;listen [::]:80 so_keepalive=on;root /home/www/blog;index index.html index.htm index.php;server_name localhost;ssl_certificate      cert/server.crt;ssl_certificate_key  cert/server.key;ssl_session_timeout  5m;ssl_session_cache shared:sslcache:1m;ssl_protocols  SSLv3 TLSv1 TLSv1.1 TLSv1.2;ssl_ciphers  HIGH:!aNULL:!MD5;ssl_prefer_server_ciphers   on;location / {……}}
之前我配置的时候只是同时listen了80和443,但是同时开启了ssl on。这个时候就遇到了400 Bad Request: The plain HTTP request was sent to HTTPS port这种报错。