【Nginx】将http升级到https并且同时支持http和https两种请求

一、如何将http升级到https

需要满足下面三个:

1.域名

2.nginx

3.SSL证书

一般第三方证书颁发机构下发的证书是收费的,一年好几千。

1) 从腾讯云申请免费的SSL证书,有效期一年,可申请多个 

SSL 证书申请地址在这里: https://console.qcloud.com/ssl

申请过程几分钟就可以搞定,主要分两步

1.申请免费的证书,设置手动DNS验证

2.到域名对应的域名解析商处添加解析记录

下载申请好的域名,上传到服务器指定位置

2) nginx配置

2.1.使Nginx 支持 SSL

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
2) 若不支持,为nginx添加SSL 模块
进入nginx安装目录执行:
./configure --with-http_ssl_module
然后,注意不要make install
make
3)备份原 Nginx 执行脚本
mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.old
4)将新版本 Nginx 编译脚本放到可执行文件目录下
cd objs/ cp nginx /usr/local/nginx/sbin/
5)进行平滑升级
make upgrade

再次检查是否安装成功:

/usr/local/nginx/sbin/nginx -V

2.2.编辑Nginx配置文件

cd /usr/local/nginx/conf

vim nginx.conf

  server {
        listen       443 ssl;
        server_name  你的域名;

        ssl_certificate      你的证书.crt;
        ssl_certificate_key  你的证书.key;

        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;

        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;

        location / {
                proxy_pass  http://127.0.0.1:8080;
                proxy_redirect off;
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

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

nginx配置新增server的配置

# http -> https
 server {
        listen 80;
        server_name 你的域名;
        rewrite ^(.*)$ https://$host$1 permanent;
}

原文地址:https://www.cnblogs.com/756623607-zhang/p/11638413.html

时间: 2024-10-12 09:51:26

【Nginx】将http升级到https并且同时支持http和https两种请求的相关文章

Nginx支持PHP环境的两种方法

操作系统: CentOS6.5   Nginx软件版本: nginx-1.6.0   PHP软件版本:php-5.3.28 Nginx默认是不支持PHP环境的,我们可以通过两种方法来让Nginx支持PHP环境 方法一:编译安装PHP的时候,在配置时添加PHP的fpm模块"--enable-fpm",用来调用本机的PHP环境 1.编译安装PHP 首先安装PHP所需要的工具包 然后编译安装PHP,在配置的时候加上"--enable-fpm"这个配置项 安装后调整 2.配

nginx 同一个端口同时 支持 http 和 https

遇到一个场景: 开始测试时,使用的是 88 端口,比如 www.abc.com:88 后来上线了切换到 80 端口,www.abc.com, 然后升级到 https 默认使用443端口,https://www.abc.com 但是呢,有部分老用户还是在使用 88 和 80 端口,这个好解决,就是一个 http 到 https 的 rewrite. 但是呢,有部分用户会这样访问: https://www.abc.com:88/ 协议使用的是 https 协议,但是呢 端口使用的是 88! 这样就会

HTTPS和HTTP的主要区别 HTTPS有什么缺点 如何优化HTTPS的速度

HTTP与HTTPS介绍        超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此,HTTP协议不适合传输一些敏感信息,比如:信用卡号.密码等支付信息. 为了解决HTTP协议的这一缺陷,需要使用另一种协议:安全套接字层超文本传输协议HTTPS,为了数据传输的安全,HTTPS在HTTP的基础上加入了SSL/TLS协议,SSL/

Nginx安装与升级

Nginx WEB服务器最主要就是各种模块的工作,模块从结构上分为核心模块.基础模块和第三方模块,其中三类模块分别如下: 核心模块:HTTP模块.EVENT模块和MAIL模块等: 基础模块:HTTP Access模块.HTTP FastCGI模块.HTTP Proxy模块和HTTP Rewrite模块: 第三方模块:HTTP Upstream Request Hash模块.Notice模块和HTTP Access Key模块.Limit_req模块.Upstream check module等:

配置nginx支持ssl服务器—HTTPS

下文摘自: http://docs.bigbluebutton.org/install/install.html     Configuring HTTPS on BigBlueButtonAnchor link for: configuring https on bigbluebutton You'll want to add HTTPS support to your BigBlueButton server for increased security. Also, as of Chrom

源码安装nginx以及平滑升级

作者:尹正杰 这个博客不方便上传软件包,我给大家把软件包放到百度云了: 链接:http://pan.baidu.com/s/1eS3bn4u 密码:04a1 欢迎加入:高级运维工程师之路 598432640 操作平台: 1.创建ngxin用户,(用于管理nginx服务,您也可以随意指定的哟~) useradd -s /sbin/nologin nginx 2.安装基础环境 yum -y install gcc pcre-devel openssl-devel zlib-devel 3.安装ngi

nginx的平滑升级方法:

最简单的nginx的平滑升级方法: 1 找到nginx的执行文件的路径 # ps auxf|grep nginx  记下nginx的master进程 pid(我这里是2752 ) 2 查看当前nginx的版本及编译参数: # nginx -V nginx version: nginx/1.8.0 built by gcc 4.4.7 20120313 (Red Hat 4.4.7-16) (GCC) built with OpenSSL 1.0.1e-fips 11 Feb 2013 TLS S

Nginx安装的两种方法

Nginx安装的两种方法 方法一:通过操作系统的包管理器进行安装. centos操作系统,自带的包管理器就是yum,配置yum源,通过yum源安装nginx的方法很简单,这就是方法一的优点:方法一的缺点就是,我们安装nginx时,无法定义安装哪些模块.这里我们解释一下模块的概念,nginx的结构是高度的模块话的,不同的模块拥有不同的功能,所以,我们想要在使用nginx的时候可以使用某些特定的功能就必须安装对应的模块.不过,yum安装的nginx,包含了常用的基本模块,不需要我们安装模块.方法二与

两种web最简单的负载均衡配置(nginx haproxy)

-------------------------------------------------------------- Centos 6.6 环境  php  http://lampol.blog.51cto.com/11662628/1851016 -------------------------------------------------------------- 负载均衡,英文名称为Load Balance,其意思就是分摊到多个操作单元上进行执行,例如Web服务器.FTP服务器