docker安装nginx并配置ssl的方法步骤

 更新时间:2022年03月30日 10:46:28   作者:大屁登  
本文主要介绍了docker安装nginx并配置ssl的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

最近想在吃灰了一年多的服务器上,安装一下docker,结果始终找不到合适的yum源,后来经过一番百度才知道,原来centos8要凉了,所以好多镜像站都移除了CentOS 8的源。

没办法,短暂的思考之后,决定重装一下操作系统,换成centos7.9,好在服务器上没啥重要东西,只要给blog挪个窝就行了。

重装系统之后,安装docker过程非常顺利。

开始安装nginx。

1、直接拉取最新的nginx镜像

docker pull nginx

2、新建一些目录,把nginx容器内的相关文件夹挂载到宿主机上,主要方便改写配置,其次是删除容器,这些文件不会丢失

mkdir -p /usr/local/nginx/{conf,html,logs,ssl}

3、启动一个nginx容器,用来cp一些文件,放到步骤2新建的文件夹里面

docker run --name nginx -p 80:80 -d nginx

4、把容器内的配置文件复制到宿主机内

可以简单看一下容器内文件夹详情,顺便说个题外话,直接使用yum安装nginx-1.20.x版本的话,nginx目录都是放在/usr/local/nginx下面的,但是docker安装的还是和老版本nginx一样的目录。

docker cp a25b9f301349:/etc/nginx/nginx.conf /usr/local/nginx/conf/
docker cp a25b9f301349:/etc/nginx/conf.d /usr/local/nginx/ 

5、停止当前nginx容器,并删除

docker stop a25b9f301349
docker rm a25b9f301349

6、生成证书并放到宿主机ssl目录下面

7、修改配置文件

可以看到配置文件有两个,现在只需要修改default.conf文件就可以了。原因嘛可以看下图:

vim conf/nginx.conf

就是说不管叫不叫default.conf,只要在conf.d目录下面,都会被加载

server {
    listen       80;
    listen  [::]:80;
    server_name  www.telami.cn;

    rewrite ^(.*) https://$server_name$1 permanent;

}

server {
    listen       443 ssl;
    server_name  www.telami.cn;

    ssl_certificate      /etc/nginx/ssl/telami.cn.pem;
    ssl_certificate_key  /etc/nginx/ssl/telami.cn.key;

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

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

    location / {
        proxy_set_header   X-Real-IP         $remote_addr;
        proxy_set_header   Host              $http_host;
        proxy_set_header   X-Forwarded-For   $proxy_add_x_forwarded_for;
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}

8、启动新的nginx容器

docker run \
--name nginx \
-p 443:443 -p 80:80 \
-v /usr/local/nginx/logs:/var/log/nginx \
-v /usr/local/nginx/html:/usr/share/nginx/html \
-v /usr/local/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /usr/local/nginx/conf.d:/etc/nginx/conf.d \
-v /usr/local/nginx/ssl:/etc/nginx/ssl/  \
--privileged=true -d --restart=always nginx

简单解释一下:

  • -v:挂载宿主机的目录,冒号":"前面的目录是宿主机目录,后面的目录是容器内目录;
  • -d:后台运行;
  • --restart=always:重启docker时,自动重启改容器;

说到这里,有一个点需要注意一下,就是上面的defaul.conf文件中,出现的绝对路径都是容器内的路径,而不是宿主机的,比如说配置ssl时:

ssl_certificate      /etc/nginx/ssl/telami.cn.pem;
ssl_certificate_key  /etc/nginx/ssl/telami.cn.key;

只不过在run时,-v /usr/local/nginx/ssl:/etc/nginx/ssl/,把目录挂载起来了,让容器可以读到证书,如果说改成这样的配置:

ssl_certificate /usr/local/nginx/ssl/telami.cn.pem;

nginx是无法启动的,会报错找不到文件。

到此这篇关于docker安装nginx并配置ssl的方法步骤的文章就介绍到这了,更多相关docker安装nginx配置ssl内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 利用Docker制作Nginx+PHP镜像的步骤详解

    利用Docker制作Nginx+PHP镜像的步骤详解

    Nginx是一个高性能的Web和反向代理服务器,它具有很多非常优越的特性,那么这篇文章小编就分步骤向大家介绍如何利用Docker制作Nginx+PHP的镜像,文章介绍的很详细,对大家具有一定的参考借鉴价值,有需要的朋友们下面来一起看看吧。
    2016-10-10
  • Docker安装MySQL及授权远程访问的详细教程

    Docker安装MySQL及授权远程访问的详细教程

    Docker是一种流行的容器化平台,可以简化应用程序的部署和管理,下面这篇文章主要给大家介绍了关于Docker安装MySQL及授权远程访问的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-05-05
  • docker部署kafka的方法步骤

    docker部署kafka的方法步骤

    本文主要介绍了docker部署kafka的方法步骤,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-10-10
  • Docker搭建Redis主从复制的实现步骤

    Docker搭建Redis主从复制的实现步骤

    本文主要介绍了Docker搭建Redis主从复制的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-11-11
  • Docker如何固定IP设置的方法

    Docker如何固定IP设置的方法

    本篇文章主要介绍了Docker如何固定IP设置的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-07-07
  • Docker下mysql设置字符集的方法

    Docker下mysql设置字符集的方法

    这篇文章主要介绍了Docker下的mysql设置字符集的方法,需要的朋友可以参考下
    2018-03-03
  • 使用Docker开发python Web 应用

    使用Docker开发python Web 应用

    本文给大家详细讲解了如何使用Docker开发python应用,特别是WEB应用的步骤,Docker本质上提供了非常轻量化的VMs,我们可以使用其创建一个高标准隔离并能大大减少失配的开发和产品环境。
    2016-10-10
  • Docker使用阿里加速器安装centos教程

    Docker使用阿里加速器安装centos教程

    这篇文章主要介绍了Docker使用阿里加速器安装centos教程,需要的朋友可以参考下
    2017-04-04
  • 解决Docker之mysql容器数据库更改不生效的问题

    解决Docker之mysql容器数据库更改不生效的问题

    这篇文章主要介绍了解决Docker之mysql容器数据库更改不生效的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • dockerfile部署前端vue打包的ist文件实战

    dockerfile部署前端vue打包的ist文件实战

    这篇文章主要为大家介绍了dockerfile部署前端vue打包的ist文件实战,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-10-10

最新评论