Docker 安装 Nginx,证书签发及 HTTPS 配置

前言

随着互联网的发展,网站安全性越来越受到人们的关注。HTTPS 协议可以加密数据传输,提高网络安全性。而 Nginx 是一款开源的高性能 Web 服务器和反向代理服务器,可以用于静态网页、动态网页、负载均衡、反向代理等多种场景,是前端工程师必备的技能之一。本文将介绍如何使用 Docker 安装 Nginx,并配置 HTTPS 协议。

Docker 安装 Nginx

Docker 是一个用于开发、发布和运行应用程序的开源平台,可以通过容器化技术,将应用程序与其依赖项打包到一个可移植的容器中,从而实现快速部署和跨平台运行。使用 Docker 安装 Nginx,可以避免与系统环境产生冲突,同时也可以方便地进行版本管理和更新。

安装 Docker

首先需要安装 Docker,可以参考 Docker 官方文档 进行安装。

下载 Nginx 镜像

Docker Hub 是一个开放的镜像仓库,可以下载各种镜像,包括 Nginx 镜像。使用以下命令可以下载 Nginx 镜像:

------ ---- -----

运行 Nginx 容器

使用以下命令可以启动 Nginx 容器:

------ --- ------ ----- -- ----- -- -----

其中,--name 参数指定容器名称为 nginx-p 参数指定端口映射,将容器的 80 端口映射到主机的 80 端口,-d 参数指定容器在后台运行。

访问 Nginx

使用浏览器访问 http://localhost,可以看到 Nginx 的欢迎页面。

证书签发

在配置 HTTPS 协议之前,需要先签发证书。HTTPS 协议需要使用 SSL/TLS 证书进行加密,通过证书可以验证服务器的身份和数据的完整性。可以使用 Let's Encrypt 免费证书进行签发。

安装 Certbot

Certbot 是一个自动化的证书管理工具,可以用于签发、更新和撤销证书。使用以下命令可以安装 Certbot:

---- ------- ------
---- ------- ------- -------

签发证书

使用以下命令可以签发证书:

---- ------- -------- ------------ -- -----------

其中,--standalone 参数指定使用独立模式签发证书,-d 参数指定域名。

证书签发成功后,会在 /etc/letsencrypt/live/example.com/ 目录下生成证书文件。

HTTPS 配置

在签发证书之后,可以配置 HTTPS 协议。

配置 Nginx

使用以下命令可以编辑 Nginx 配置文件:

---- ---- ------------------------------

在配置文件中添加以下内容:

------ -
    ------ ---
    ----------- ------------
    ------ --- ---------------------------------
-

------ -
    ------ --- ----
    ----------- ------------

    --------------- ------------------------------------------------
    ------------------- ----------------------------------------------

    -------- - -
        ---- ----------------------
        ----- -----------
    -
-

其中,第一个 server 块是将所有 HTTP 请求重定向到 HTTPS,第二个 server 块是配置 HTTPS,指定证书文件路径和 Web 根目录。

重启 Nginx

使用以下命令可以重启 Nginx:

---- --------- ------- -----

访问 HTTPS

使用浏览器访问 https://example.com,可以看到浏览器地址栏中出现了绿色的锁标志,证明 HTTPS 协议已经生效。

总结

本文介绍了如何使用 Docker 安装 Nginx,并配置 HTTPS 协议。通过本文的学习,可以掌握 Docker 的基本用法,了解 Nginx 的基本配置和 HTTPS 协议的原理。同时,也可以了解到如何使用 Let's Encrypt 签发免费证书,提高网站的安全性。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/65d56621add4f0e0ffd20826