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了。

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • protel 99se 简单的手动画pcb

    protel 99se 简单的手动画pcb(只适合做超级简单的板子)脑子里有原理图即可直接打开protel99se新建一个pcb(PCBdocument)1.      在左侧browsepcb下的browse的下拉框中选择libraries2.      可以看到compoents中有许多元器件选择自己需要的比如单片机就用DIP40就可以了3.      sip单列直插dip双列直插一

  • ajax写法_ajax一次请求多次响应

    ajax写法_ajax一次请求多次响应ajax—-js原生写法varxhr;functionrukou()//入口函数{xhr=getxhr();if(xhrnull){alert(“浏览器不支持!”);}varurl="";xhr.onreadystatechange=fanhui;xhr.open(“GET”,url,true);xhr.send(null);}functionfanhui…

  • cmd ping大包命令_cmd中ping命令无效

    cmd ping大包命令_cmd中ping命令无效在cmd中用PING命令时,出现’Ping’不是内部或外部命令,也不是可运行的程序或批处理文件。先了解一下内容:1、可执行文件、命令文件和批处理文件以.exe或者.com或者.bat为扩展名的文件分别被称为可执行文件、命令文件和批处理文件。2、外部命令和内部命令DOS命令可以分为外部命令和内部命令,内部命令包含在一个名为command.com的文件,在系统启动时候驻留在内存中。外部命令是保存在c…

  • 电脑很大,电脑内存很大为什么还是很卡「建议收藏」

    电脑很大,电脑内存很大为什么还是很卡「建议收藏」2019-10-09阅读(121)”电脑反应慢原因:1.电脑反应太慢,第一我们打开任务管理器,检查CPU资源的使用,若某个程序的CPU资源占用一直比较高(比如占到50%以上),系统速度就会明显变慢。因一般情况下,除大型游戏程序之外,应用程序在运行过程中只是瞬间占用较高,而不会一直持续2019-10-09阅读(132)一.清理垃圾在Windows在安装和使用过程中都会产生相当多的垃圾文件,包括临时文…

  • spdlog用法

    spdlog用法转自:https://blog.csdn.net/haojie_superstar/article/details/89383433?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-19.control&dist_request_id=1328730.643.16167433128441371&depth_1-utm_source=distribute.pc_relevant.none-task-bl

  • SenticNet情感词典介绍[通俗易懂]

    SenticNet情感词典介绍[通俗易懂]在进行情感分析时,一个好的情感词典能够让我们的工作事半功倍,较为出名的情感词典有SentiWordNet,GeneralInquirer等,这篇博客将介绍另外一个出色情感词典,SenticNet。简介当谈论SenticNet时,我们正在谈论概念层面的情感分析,即通过语义和语言学来完成极性探测、情感识别等任务,而不是单纯的依靠词共现频率。SenticNet可以看作是以下其中一种:1…

发表回复

您的电子邮箱地址不会被公开。

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