Linux上nginx配置SSL协议非80、443端口自动跳往https端口

Linux上nginx配置SSL协议非80、443端口自动跳往https端口在生产环境中往往碰到一个网站需要多个访问端口,而默认的http访问端口是80,https访问的端口是443,然而这是不够在生产环境下使用的,这个时候就需要配置更多的端口来弥补这一缺点。默认情况下用户输入URL时是约简单越好,比如http://baidu.com,用户只需要输入baidu.com就可以访问。但是这样是通过http协议进行访问,而并非https进行访问。站在用户的角度来考虑问题他不…

大家好,又见面了,我是你们的朋友全栈君。

在生产环境中往往碰到一个网站需要多个访问端口,而默认的http访问端口是80,https访问的端口是443,然而这是不够在生产环境下使用的,这个时候就需要配置更多的端口来弥补这一缺点。
默认情况下用户输入URL时是约简单越好,比如http://baidu.com ,用户只需要输入baidu.com就可以访问。但是这样是通过http协议进行访问,而并非https进行访问。站在用户的角度来考虑问题他不会管你的网站是通过什么来访问的,他只管我的一些信息不被别人劫持到,这就要使用到https加密来进行访问。
比如我的nginx已经配置好了配置文件,如下图。
nginx配置
但是这种配置需要用户自动输入http还是https,这时我只需要添加一个配置就可以实现80端口自动跳转到443端口。

   #  80端口自动转发到443端口
    server {
        listen        80;
       server_name   ********.com;
       rewrite ^(.*)$ https://${server_name}$1 permanent;
    }
    server {
        listen    80;
        listen    443 ssl;
……
   }

但是这样会牵扯到配置的其他非80端口,所以上面的配置在生产环境是行不通的
这些还是默认的端口,但如果要是其他端口呢?
比如:

    server {
        listen        9116 ssl;
        server_name   *********.com;

        ssl_certificate  /data/nginx/cert/214376322580000.pem;
        ssl_certificate_key /data/nginx/cert/214376322580000.key;
        ssl_session_timeout 5m;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers AESGCM:ALL:!DH:!EXPORT:!RC4:+HIGH:!MEDIUM:!LOW:!aNULL:!eNULL;
        ssl_prefer_server_ciphers on;

        charset UTF8;
        access_log  logs/******.access.log  main;
        error_log   logs/*****.error.log;

        location / {
               proxy_pass https://***;
               }
               }

重新检查nginx配置没有任何的报错。用浏览器访问时就会出来一个报错“The plain HTTP request was sent to HTTPS port”。
那么这时我就需要对配置文件进行更改。
首先注释掉80端口自动转发到443端口。

    # 80端口自动转发到443端口
    #server {
    #    listen        80;
    #   server_name   ******.com;
    #   rewrite ^(.*)$ https://${server_name}$1 permanent;
    #}

然后在server配置里面添加一句**‘error_page 497 301 https://$http_host$request_uri;’ **

    server {
        listen        9116 ssl;
        server_name   ******.com;
        
        ssl_certificate  /data/nginx/cert/214376322580000.pem;
        ssl_certificate_key /data/nginx/cert/214376322580000.key;
        ssl_session_timeout 5m;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers AESGCM:ALL:!DH:!EXPORT:!RC4:+HIGH:!MEDIUM:!LOW:!aNULL:!eNULL;
        ssl_prefer_server_ciphers on;
        error_page 497 301 https://$http_host$request_uri;
        
        charset UTF8;
        access_log  logs/******.access.log  main;
        error_log   logs/********.error.log;
        
        location / {
               proxy_pass https://****;
            }
        }

这样就可以实现http自动跳转到https了。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/151179.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • eigen库安装vs_捷达vs5顶配啥配置

    eigen库安装vs_捷达vs5顶配啥配置(一)在官网下载所需版本的Eigen库,可查找历史版本Eigen(二)找到所需版本,下载压缩包,并解压(三)打开解压后的文件,复制路径D:\library\eigen-3.3.4(四)在vs的项目中点击“属性”——“C/C++”——“常规”——“附加包含目录”,添加路径D:\library\eigen-3.3.4(五)如果不想每次都添加路径的话,可以在属性管理器中添加属性表,然后在属性表的包含目录中添加路径D:\library\eigen-3.3.4,在其他项目需要使用Eigen库时,直接添加现有属性表即

    2022年10月9日
    0
  • asp.net mvc实现文件下载「建议收藏」

    asp.net mvc实现文件下载「建议收藏」前段时间一直对如何解决文件下载的问题比较困惑,对文件下载的问题一直都是用的前端的方式解决的,代码如下//下载functiondownload(filePath){window.open(filePath);}但是这个方法有他的缺陷:1.下载的文件后缀必须为iis程序池中存在的文件2.此方法是通过浏览器打开服务器文件,无法直接下载近期看了asp.net下载文件几种方式…

    2022年7月22日
    11
  • Python的lambda表达式

    Python的lambda表达式1、lambda只是一个表达式,函数体比def简单很多2、lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去3、lambda函数拥有自己的名字空间,且不能访问自有参数列表之外或全局名字空间里的参数4、简单单行代码或者一次性的函数可以用lambda函数来书写,可以让代码更简洁。5、对于复杂函数或者函数体体量大的函数,最好不要用lambda函数,会增加代码的阅读难度,使代码晦涩难懂。6、在非多次调用的函数的情况下,lambda表达式即用既得,提高性能

    2022年10月18日
    0
  • 树莓派Python教程:树莓派能做什么

    树莓派Python教程:树莓派能做什么第一课:什么是树莓派第二课:树莓派能做什么第三课:购买您的第一个树莓派第四课:如何安装树莓派系统1~4课如果看过C语言版本的,请掠过…第二课:树莓派能做什么树莓派能做什么,莫过于来看一遍树莓派的10个经典项目的视频了,我们先以图片的形式过一遍。NO.1树莓派实现VR注意这个人头上戴的是一个虚拟3D眼镜,他看到的场景是树莓派上安装的两个摄像头,这两个摄像头就相当于人的两只眼睛,把视频传到这个眼镜,然后通过openGl渲染一个场景出来,从而控制这个机器人去做一些事情,这个机器人就是用树莓派

    2022年5月1日
    57
  • 反射之动态拼接sql字符串「建议收藏」

    反射之动态拼接sql字符串「建议收藏」反射之动态拼接sql字符串前言自己在学习JDBC连接数据库,不用框架手动实现时,个人觉得反射动态拼接sql的思想很好,当然了大家伙觉得好才是真的好(广州好迪,手动狗头),所以才有了本文对该知识点梳理与总结。分享给大家,下面开始步入文章的正文,亲们不要掉队。正文…

    2025年5月27日
    0
  • DirectSound的应用

    DirectSound的应用

    2021年11月14日
    41

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号