Nginx的http和https(ssl)共存配置方法

因为公司项目有需要用到https的链接,就去弄了个证书,配置上之后,https可以正常访问,但是之前的http的都是显示400错误,nginx的配置如下:

 代码如下 复制代码

server {
            listen 80 default backlog=2048;
            listen 443;
            server_name 111cn.net;
            root /var/www/html;

            ssl on;
            ssl_certificate /usr/local/Tengine/sslcrt/111cn.net.crt;
            ssl_certificate_key /usr/local/Tengine/sslcrt/111cn.net.key;
}

http访问的时候,报错如下:

400 Bad Request
The plain HTTP requset was sent to HTTPS port. Sorry for the inconvenience.
Please report this message and include the following information to us.
Thank you very much!

说是http的请求被发送到https的端口上去了,所以才会出现这样的问题。那这样不是很坑了,,,我只是一部分需要https,但是这样搞的话,http的链接都不能用了,后来经查询资料调整配置文件如下:

 代码如下 复制代码

server {
            listen 80 default backlog=2048;
            listen 443 ssl;
            server_name 111cn.net;
            root /var/www/html;

            ssl_certificate /usr/local/Tengine/sslcrt/111cn.net.crt;
            ssl_certificate_key /usr/local/Tengine/sslcrt/111cn.net.key;
}

把ssl on;这行去掉,ssl写在443端口后面。这样http和https的链接都可以用,完美解决。

时间: 2024-10-25 12:50:26

Nginx的http和https(ssl)共存配置方法的相关文章

Nginx和Apache几种防盗链配置方法实例_nginx

要实现防盗链,我们就必须先理解盗链的实现原理,提到防盗链的实现原理就不得不从HTTP协议说起,在HTTP协议中,有一个表头字段叫 referer,采用URL的格式来表示从哪儿链接到当前的网页或文件.换句话说,通过referer,网站可以检测目标网页访问的来源网页,如果是资源 文件,则可以跟踪到显示它的网页地址.有了referer跟踪来源就好办了,这时就可以通过技术手段来进行处理,一旦检测到来源不是本站即进行阻止或者返 回指定的页面. Nginx防盗链的配置 1.nginx针对文件类型的防盗链配置

【图解】nginx配置ssl双向验证及nginx https ssl证书配置教程

1.安装nginx centos下Nginx安装配置步骤详解 http://www.111cn.net/sys/CentOS/80387.htm windows下安装nginx 详解教程 http://www.111cn.net/wy/156/38731.htm 2.使用openssl实现证书中心 由于是使用openssl架设私有证书中心,因此要保证以下字段在证书中心的证书.服务端证书.客户端证书中都相同 Country Name  State or Province Name  Localit

Nginx服务器对数据传输速度限制的基本配置方法讲解_nginx

注意: nginx 1.1.8 之后的版本的语法改为limit_conn_zone $binary_remote_addr zone=NAME:10m; NAME 就是 zone 的名字详情请看这里 http://nginx.org/en/docs/http/ngx_http_limit_conn_module.html 限制连接数: 要限制连接,必须先有一个容器对连接进行计数,在http段加入如下代码: "zone=" 给它一个名字,可以随便叫,这个名字要跟下面的 limit_con

Nginx实现网站多机负载均衡配置方法

Nginx的高并发特性就不用多说了,单机静态并发能承受大压力测试,但并不代表在搭载后端的情况下依然保持高并发,因为后端动态处理才是并发瓶颈.nginx作者初衷是为邮件提供多机反向代理,而这特性也正好能用在其他网络服务上,因为这是nginx原生基础服务,比apache等其他服务器需提供外部插件的实现形式显得更快捷高效. 传统负载均衡的方法是在后端服务器前设置一台前端服务器负责总调度,这是最简单的方式,当前端搭载的是nginx负责单点均衡,后端服务可以是任意web服务,譬如apache,tomcat

详解Nginx与Apache共用80端口的配置方法_nginx

一个典型的 Nginx + Apache 应用方案可以是Nginx 占用 80 端口,过滤静态请求,然后动态请求即 Proxy 到 Apache 的 8080 端口.Proxy 反向代理的好处是访问的时候,始终就是 80 端口,来访者不会觉察到有任何的区别. 但有的应用确非常"聪明",识别到 Apache 所位于的端口是 8080 ,就会把相关的超链接都一并加上 :8080 的后续.这么就死定了,还能有正常访问麽?! 有个方法可以解决这事,就是把 apache 也运行在80端口上.同一

nginx中文件下载指定保存文件名的配置方法_nginx

一般在我们上传完资源文件之后,为了避免文件名冲突,会将文件名改成毫无意义的一段字符.这个字符,可能是MD5产生的,或者是其他方式产生的字符串.这时候,下载的时候,默认保存的文件名会是这段毫无意义的文件名(图1). 其实,nginx是支持下载时重命名的,让文件名更加友好. nginx也很容易配置:只要加入以下几行即可: 复制代码 代码如下: location ~* .*\.(doc|txt|jar|zip|apk)(\?.*)?$ {         if ($request_uri ~* ^.*

Nginx防跨目录与跨站配置方法

Nginx有一个缺陷,就是没有像apache的php_value_basedir给我们限制php文件访问目录,PHP低版本下,fastcgi 模式 下open_base设置无效,PHP在PHP5.3.3以上已经增加了HOST配置,可以起到防跨站.跨目录的问题 如果你是PHP 5.3.3以上的版本,可以修改/usr/local/php/etc/php.ini在末尾里加入: [HOST=111cn.net]  代码如下 复制代码 open_basedir=/home/wwwroot/111cn.ne

Nginx跨域使用字体文件的配置方法_nginx

今天在使用子域名访问根域名的CSS时,发现字体无法显示,在确保CSS和Font字体的路径加载无问题后,基本确定是因为跨域的问题. 通过Nginx模块HttpHeadersModule来添加Access-Control-Allow-Origin允许的地址. 解决方法 在Nginx的conf目录下修改nginx.conf或者vhost下对应的domain conf,添加以下代码: 复制代码 代码如下: location ~* \.(eot|ttf|woff)$ {add_header Access-

SharePoint 2013 配置HTTPS(SSL)

1.打开服务器上的IIS,找到服务器证书,如下图: 2.进入服务器证书,点击右侧操作"创建自签名证书",如下图: 3.为证书指定一个好记名称,存储选择个人,如下图: 4.点击确定以后,服务器证书页面,多出了我们新建的证书,如下图: 5.双击证书,进入详细信息页面,点击复制到文件,如下图: 6.进入证书导出向导,点击下一步,如下图: 7.选择"不,不要导出私钥",点击下一步,如下图: 8.选择"DER 编码二进制",点击下一步,如下图: 9.选择指