Http 转 https 中 Nginx 的详细配置过程

摘要  本节将简要介绍从 HTTP 到 HTTPS 的配置过程,并完整展示 Nginx 的相关配置信息。

       经过两天断断续续的调试,终于将 http 变成 https 了。现在说说这个安装 ssl 证书的过程。

       服务器是在某云上。这个过程大致分为三个步骤:申请 ssl 证书、配置证书、开启并配置端口。   

       第一步是申请 ssl 证书。    

       这个可参考一分钟带你把http项目升级成https,并且打包上线。申请成功下载后,是一个压缩文件,打开后有两个文档;其中一个是 .key文档,一个是 .pem文档。

       第二步上传证书与配置Nginx 

       1. 将它们上传到服务器。

       从本地 Windows 上传到 远程 Ubuntu,可以用 putty。

       首先在Windows下,访问 PuTTY 官方网站,下载  PuTTY 安装包。比如,我下载的是 putty-64bit-0.81-installer.msi。双击下载文件,就开始执行安装。

       安装完后,可以在 Windows 命令提示符下查看版本

pscp -V

如果安装成功,应该会看到类似输出信息(以下是部分内容,并且实际是不含有行号的):

pscp: Release 0.81
Build platform: 64-bit x86 Windows

       安装完成后,则可以将 Windows 中文件上传到 Ubuntu上。例如下面是Windows的命令提示符下的命令,它将 my.key 上传到了 /certificate 目录中。当然,上传前,先在Ubuntu中用mkdir 创建 certificate 目录。 

pscp C:\\Users\\DELL\\Downloads\\my.key user@remotehost:/certificate/

其中 user@remotehost 要换成您的服务器网址。比如,root@123.456.678.1,其中123.456.678.1是您服务器的 ip 地址。

       如果只是需要从 Ubuntu 上传到Ubuntu,建议使用 scp 命令。例如:  

scp /local/path/to/file user@remotehost:/remote/path/to/destination/

       2. 配置 Nginx。

       首先,系统是Ubuntu。这时需要停用Apache(用命令 sudo service apache2 stop),而安装 Nginx(安装过程省略)。因为第一步选证书时,就是选的与 Nginx相关的(好像没有 Apache 选项)。另外,由于网页使用了 Php,所以还需要安装php7.2-fpm(安装过程省略)。最后,也是最重要的,是下面 Nginx 的配置。若配置不好,网页会出现 乱码、404 not found、下载(即不是显示内容,而总是下载网页)、无法访问此网站 等问题。

        Nginx 的配置文件是  /etc/nginx/sites-available/default 。可以用 nano 修改,比如

$ nano  /etc/nginx/sites-available/default

这时就在控制台下打开了 default 文件。修改后用 Ctrl+o 再 回车 保存文档内容,Ctrl+x 是退出。配置好后,是启动,用 sudo systemctl start nginx。重新启动 Nginx 命令是  sudo systemctl restart nginx。停止Nginx 是 sudo systemctl stop nginx。

# /etc/nginx/sites-available/default  文档的内容

server {
    listen 443 ssl;
    server_name www.my.com; #换成您的网址
    charset utf-8; # 设置字符编码为UTF-8
    ssl_certificate /pathl/to/my.pem; #换成您的实际的 .pem文档的路径
    ssl_certificate_key /path/to/my.key; #换成您的实际的 .key文档的路径

    root /var/www/html; #一般网页都在这儿存放。比如 /var/www/html/index.html
    index index.php index.html index.htm; #由于我的网页是 index.php,所以有 index.php

    location / {
        try_files $uri $uri/ /index.php?$query_string; #若您的网页是index.html, 那么好像php需要改成html
        add_header Content-Type text/html;
    }

    # PHP-FPM配置
    location ~ \\.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php7.2-fpm.sock; #根据实际安装版本调整数字或路径
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

    # 静态文件配置
    location ~* \\.(jpg|jpeg|png|gif|ico|css|js)$ {
        expires max;
    }
}

# HTTP重定向到HTTPS
server {
    listen 80;
    server_name www.my.com; #//换成您的网址
    return 301 https://$host$request_uri;
}

types {
    text/html html;
    # 其他 MIME 类型...
}
       第三步是开启并配置端口

       需要注意的是云上要开启并配置443端口(过程省略),否则网页来不了,永远显示好像是“无法访问此网站”。另外,80端口也不要被占用。关闭Apache,以免它占用80端口。

       对于大多数现代Linux发行版,可以用下列命令来禁用Apache开机自启:

sudo systemctl disable apache2

可以进一步确认 apache2 服务的状态是否为禁用状态,使用如下命令:

systemctl is-enabled apache2

若输出为 disabled,则说明已经成功地禁用了 apache2 的自启动功能。

       执行完以上步骤后,就可以在浏览器中输入网址,比如 www.yours.com,这时,浏览器会自动添加 “https://” 。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/61898.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

神经网络12-Time-Series Transformer (TST)模型

Time-Series Transformer (TST) 是一种基于 Transformer 架构的深度学习模型,专门用于时序数据的建模和预测。TST 是 Transformer 模型的一个变种,针对传统时序模型(如 RNN、LSTM)在处理长时间依赖、复杂数据关系时的限制而提出的…

【Linux】安装cuda

一、安装nvidia驱动 # 添加nvidia驱动ppa库 sudo add-apt-repository ppa:graphics-drivers/ppa sudo apt update# 查找推荐版本 sudo ubuntu-drivers devices# 安装推荐版本 sudo apt install nvidia-driver-560# 检验nvidia驱动是否安装 nvidia-smi 二、安装cudatoolkit&…

go-web项目通用脚手架

前言 构建go-web项目时,在编写业务逻辑代码之前,还需搭建脚手架(框架):进行编写配置文件、整合web框架(gin框架)和数据库框架(sqlx)等,搭建脚手架的过程就类…

深度学习图像视觉 RKNN Toolkit2 部署 RK3588S边缘端 过程全记录

深度学习图像视觉 RKNN Toolkit2 部署 RK3588S边缘端 过程全记录 认识RKNN Toolkit2 工程文件学习路线: Anaconda Miniconda安装.condarc 文件配置镜像源自定义conda虚拟环境路径创建Conda虚拟环境 本地训练环境本地转换环境安装 RKNN-Toolkit2:添加 lin…

论文模型设置与实验数据:scBERT

Yang, F., Wang, W., Wang, F. et al. scBERT as a large-scale pretrained deep language model for cell type annotation of single-cell RNA-seq data. Nat Mach Intell 4, 852–866 (2022). https://doi.org/10.1038/s42256-022-00534-z 论文地址:scBERT as a…

Jenkins的环境部署

day22 回顾 Jenkins 简介 官网Jenkins Jenkins Build great things at any scale The leading open source automation server, Jenkins provides hundreds of plugins to support building, deploying and automating any project. 用来构建一切 其实就是用Java写的一个项目…

怎么编译OpenWrt镜像?-基于Widora开发板

1.准备相应的环境,我使用的环境是VMware16ubuntu20.04,如图1所示安装编译所需的依赖包; sudo apt-get install build-essential asciidoc binutils bzip2 gawk gettext git libncurses5-dev libz-dev patch python3 python2.7 unzip zlib1g-…

拉格朗日乘子(Lagrange Multiplier)是数学分析中用于解决带有约束条件的优化问题的一种重要方法,特别是SVM

拉格朗日乘子(Lagrange Multiplier)是数学分析中用于解决带有约束条件的优化问题的一种重要方法,也称为拉格朗日乘数法。 例如之前博文写的2月7日 SVM&线性回归&逻辑回归在支持向量机(SVM)中,为了…

Python 获取微博用户信息及作品(完整版)

在当今的社交媒体时代,微博作为一个热门的社交平台,蕴含着海量的用户信息和丰富多样的内容。今天,我将带大家深入了解一段 Python 代码,它能够帮助我们获取微博用户的基本信息以及下载其微博中的相关素材,比如图片等。…

# linux 清理指定目录下,指定时间的历史文件

如何使用这个脚本 1、创建脚本 cleanup.sh #!/bin/bash# 默认值 DEFAULT_DIR"/path/to/default/directory" DEFAULT_DAYS7# 使用方法提示 usage() {echo "Usage: $0 [-d directory] [-t days]"echo " -d 目标目录 (默认为: ${DEFAULT_DIR})"…

MySQL的DELETE(删除数据)详解

MySQL的DELETE语句用于从数据库表中删除记录。与UPDATE语句类似,DELETE语句也非常强大,支持多种用法和选项。本文将详细介绍DELETE语句的基本语法、高级用法、性能优化策略以及注意事项。 1. 基本语法 单表删除 单表删除的基本语法如下: …

C#里怎么样实现多播委托?

C#里怎么样实现多播委托? 如果你想实现一次通知,就可以让多个地方同步执行, 这时候就可以使用多播。 在这里使用委托来实现多播的功能。delegate void dele(int a, int b); 先定义一个委托的形式。 dele del = new dele(Oper.Add); del += new dele(Oper.Sub); 这里添加…

MySQL底层概述—1.InnoDB内存结构

大纲 1.InnoDB引擎架构 2.Buffer Pool 3.Page管理机制之Page页分类 4.Page管理机制之Page页管理 5.Change Buffer 6.Log Buffer 1.InnoDB引擎架构 (1)InnoDB引擎架构图 (2)InnoDB内存结构 (1)InnoDB引擎架构图 下面是InnoDB引擎架构图,主要分为内存结构和磁…

Linux---ps命令

​​​​​​Linux ps 命令 | 菜鸟教程 (runoob.com) process status 用于显示进程的状态 USER: 用户名,运行此进程的用户名。PID: 进程ID(Process ID),每个进程的唯一标识号%CPU: 进程当前使用的CPU百分比%MEM: 进程当前使用的…

企业OA管理系统:Spring Boot技术实现与案例研究

摘要 随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了企业OA管理系统的开发全过程。通过分析企业OA管理系统管理的不足,创建了一个计算机管理企业OA管理系统的方案。文章介绍了企业OA管理系统的系统分析部…

Charles抓包工具-笔记

摘要 概念: Charles是一款基于 HTTP 协议的代理服务器,通过成为电脑或者浏览器的代理,然后截取请求和请求结果来达到分析抓包的目的。 功能: Charles 是一个功能全面的抓包工具,适用于各种网络调试和优化场景。 它…

vue2面试题10|[2024-11-24]

问题1:vue设置代理 如果你的前端应用和后端API服务器没有运行在同一个主机上,你需要在开发环境下将API请求代理到API服务器。这个问题可以通过vue.config.js中的devServer.proxy选项来配置。 1.devServer.proxy可以是一个指向开发环境API服务器的字符串&…

Apache Maven 标准文件目录布局

Apache Maven 采用了一套标准的目录布局来组织项目文件。这种布局提供了一种结构化和一致的方式来管理项目资源,使得开发者更容易导航和维护项目。理解和使用标准目录布局对于有效的Maven项目管理至关重要。本文将探讨Maven标准目录布局的关键组成部分,并…

数据结构(顺序队列——c语言实现)

队列的概念: 队列是限制在两端进行插入和删除操作的线性表,允许进行存入的一端称为“队尾”,允许进行删除操作的一端称为“队头”。当线性表中没有元素时,称为“空队”。特点:先进先出(FIFO)。 …

Vulnhub靶场 Jangow: 1.0.1 练习

目录 0x00 准备0x01 主机信息收集0x02 站点信息收集0x03 漏洞查找与利用1. 命令执行2. 反弹shell3. 提权4. 补充4.1 其他思路4.2 问题 0x04 总结 0x00 准备 下载链接:https://download.vulnhub.com/jangow/jangow-01-1.0.1.ova 介绍: Difficulty: easy…