zoukankan      html  css  js  c++  java
  • nginx将http升级到https并且同时支持http和https两种请求、http自动转向https

    1、http升级到https

    1.1、检查 Nginx 是否支持 SSL

    /usr/local/nginx/sbin/nginx  -V
    configure arguments中是否有--with-http_ssl_module
    如:
    nginx version: nginx/1.13.4
    built by gcc 4.8.5 20150623 (Red Hat 4.8.5-16) (GCC)
    built with OpenSSL 1.0.2k-fips  26 Jan 2017
    TLS SNI support enabled
    configure arguments: --with-http_ssl_module

    1.2、为nginx添加SSL 模块

    1)进入nginx安装目录执行:
    ./configure --with-http_ssl_module 
    然后,注意不要make install
    make
    2)备份原 Nginx 执行脚本
    mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.old
    3)将新版本 Nginx 编译脚本放到可执行文件目录下
    cd objs/ cp nginx /usr/local/nginx/sbin/
    4)进行平滑升级
    make upgrade
    再次检查是否安装成功:
    /usr/local/nginx/sbin/nginx -V 

    1.3、修改nginx配置

    cd /usr/local/nginx/conf
    vim nginx.conf 
    server{
            listen 88;
            listen 443 ssl;
            ssl on;
            ssl_certificate     /etc/nginx/nginx.nopasswd.crt;   ##证书.crt
            ssl_certificate_key /etc/nginx/nginx.nopasswd.key;   ##证书.key
            server_name  ****;
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                    root   html;
            }
            location / {
                   try_files $uri $uri/ /index.html;
                   root  /var/www/test;
                  index  index.html index.htm;
            }
            location ~ /api/(.*)$ {
                proxy_pass http://****/$1?$query_string;
                proxy_set_header Host $http_host;
                proxy_set_header X-Forward-For $remote_addr;
            }
        
        }

    注意:https需要SSL证书,可以到阿里云或腾讯云申请免费版,有效期一年

    2、同时支持http和https两种请求

    server{
            listen 88;
            listen 443 ssl;
            # ssl on;
            ssl_certificate     /etc/nginx/nginx.nopasswd.crt;
            ssl_certificate_key /etc/nginx/nginx.nopasswd.key;
    ......

    将ssl on;注释就可以了,其中http访问88端口,而https访问443端口(http默认80端口,https默认443端口)

    3、http自动转向https

    nginx配置新增server的配置

     server {
            listen 80;
            server_name 你的域名;
            rewrite ^(.*)$ https://$host$1 permanent;
    }
  • 相关阅读:
    Coding Souls团队第二阶段冲刺(三)
    Coding Souls团队第二阶段冲刺(二)
    第一阶段意见评价
    PHPMailer/PHPMailer的使用
    使用jquery.media.js实现pdf在线预览
    select2(前端选择框_框架)
    安装Docker CE+阿里云镜像仓库
    docker学习
    前端开发框架WeUI
    php _Markdown转HTML
  • 原文地址:https://www.cnblogs.com/gxp69/p/11927405.html
Copyright © 2011-2022 走看看