栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

docker 部署nginx并配置通过https访问

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

docker 部署nginx并配置通过https访问

docker 部署nginx并配置通过https访问

之前的nginx都是直接在宿主机上部署的,今天使用docker部署尝试下。

1.在dockerHub上搜索对应的版本
dockerHub官网地址:https://hub.docker.com
搜索nginx 查看版本,支持的版本很多,就选个1.20的版本吧

2.拉取nginx:1.20镜像

docker pull nginx:1.20

docker images查看是否拉取下来

3.在宿主机上将配置文件和html文件配置好
我们需要将配置文件nginx.conf文件、静态html文件、证书文件在宿主机上配置完毕

在usr/local/nginx/下创建对应的文件(nginx.conf)和文件夹(cert、html)

cert文件夹中的文件

html文件夹中的文件

nginx.conf 配置文件内容

location /backend/ 中是后端代理的地址

#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

        # HTTPS server
    #
    server {
        listen 443 ssl;
        server_name  localhost;

        ssl_certificate      /usr/local/nginx/cert/server.crt;
        ssl_certificate_key  /usr/local/nginx/cert/server.key;

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

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

                location / {
            root   /usr/share/nginx/html/dist;
                        try_files $uri $uri/ /index.html;
            index  index.html index.htm;
        }

                location /backend/{
                       proxy_set_header Host $http_host;
                       proxy_set_header X-Real-IP $remote_addr;
                       proxy_set_header REMOTE-HOST $remote_addr;
                       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                       proxy_pass http://192.168.3.69:8991;
               }

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

4.运行nginx镜像

docker run -d --privileged=true --name nginx1.2 
	 -v /usr/local/nginx/html:/usr/share/nginx/html 
	 -v /usr/local/nginx/nginx.conf:/etc/nginx/nginx.conf 
	 -v /usr/local/nginx/cert:/usr/local/nginx/cert 
	 --restart always 
	 -p 443:443 -p 80:80 nginx:1.20
--privileged=true                                     # 容器内被赋予root权限
--name nginx1.2                                       # 容器名称为nginx1.2
-v /usr/local/nginx/html:/usr/share/nginx/html        # 挂载的静态文件目录     
-v /usr/local/nginx/nginx.conf:/etc/nginx/nginx.conf  # 挂载的nginx配置文件目录
-v /usr/local/nginx/cert:/usr/local/nginx/cert        # ssl证书挂载目录
--restart always                                      # 自启动
-p 443:443 -p 80:80                                   # 映射的端口号 由于是https协议 所以443需要映射出来

使用docker ps -a 查看容器运行的状况,运行成功
如果防火墙开着的话,把443、80端口放行

systemctl status firewalld                                 # 查看防火墙状态
firewall-cmd --zone=public --add-port=80/tcp --permanent   # 开放80端口
firewall-cmd --zone=public --add-port=443/tcp --permanent  # 开放443端口
systemctl restart firewalld                                # 重启防火墙

访问https://ip,即可访问

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/422321.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号