一、制作离线镜像文件

1、下载离线镜像

需要在可以访问互联网的环境中下载所需的 Docker 镜像

 docker pull redis:6.2.20

在这里插入图片描述

2、制作离线镜像

1、查看当前电脑镜像文件
docker images
2、镜像文件打包
docker save -o redis.6.2.20.tar redis:6.2.20

在这里插入图片描述

3、离线文件下载至本地电脑

在这里插入图片描述

二、安装离线镜像文件

1、上传ngixn离线镜像文件到服务器上

链接:https://pan.baidu.com/s/1-HS_wszZvblmuwKKaxD_ng
提取码:6666
在这里插入图片描述

2、docker加载镜像文件到本地镜像仓库中

# 加载命令
docker load -i nginx-1.2.31.tar
# 查询是否加载成功
docker images | grep nginx

在这里插入图片描述

3、配置docker-compose.yml文件(docker容器里面的目录请勿修改)

1、/home/cttic/nginx/* 是自己的目录

version: '3'

services:
  nginx:
    #host代表使用本机网络
    network_mode: "host"
    #容器异常重启  
    restart: always
    #容器名字
    container_name: docker_nginx_1
    #使用的镜像,使用docker images查看在docker的镜像名称,自行更改
    image: nginx:stable
    #设置时区
    environment:
      TZ: Asia/Shanghai
    #端口号,根据配置 自行更改
    ports:
      - "80:80"
    #挂载容器内文件到宿主机,自行根据实际情况更改
    volumes:
       #日志文件夹,可以比较随意,是根据nginx的配置文件中定义的
      - /home/cttic/dockerConfig/nginx/logs:/data/nginx/logs
      #nginx配置文件,/etc/nginx/nginx.conf 是nginx的config不覆盖映射目录,不能修改
      - /home/cttic/nginx/conf/nginx.conf:/etc/nginx/nginx.conf
       # html文件夹,/usr/share/nginx/html是nginx的HTML覆盖映射目录,不能修改
      - /home/cttic/nginx/conf/html:/usr/share/nginx/html
     #特权模式运行
     privileged: true

4、nginx.conf文件(以https写协议为例子)

user nginx;  # 以 `nginx` 用户身份运行进程
worker_processes auto;  # 自动根据 CPU 核心数设置工作进程数(推荐)
worker_rlimit_nofile 65535;  # 每个工作进程的最大文件描述符数(防止“too many open files”错误)

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

#pid        logs/nginx.pid;


events {
    use epoll;  # 使用 Linux 的高效 epoll 事件模型(适用于高并发)
    multi_accept on;  # 允许一次接受所有新连接(提升吞吐量)
    accept_mutex off;  # 禁用进程间接受连接的互斥锁(减少锁竞争)
    worker_connections 4000;  # 每个工作进程的最大连接数(需根据内存调整)
}
 

http {
 
    include mime.types;  # 加载 MIME 类型定义文件
    default_type application/octet-stream;  # 默认二进制流类型(兜底配置)
	
    access_log  /data/nginx/logs/access.log ;
    error_log  /data/nginx/logs/error.log ;

    sendfile on;  # 启用零拷贝文件传输(提升静态文件传输效率)
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout 65;  # 保持长连接的超时时间(秒)

    client_header_buffer_size 512k;  # 客户端请求头缓冲区大小
    large_client_header_buffers 4 512k;  # 大请求头缓冲区配置(防止 414 错误)
    client_max_body_size 300m;  # 允许的最大请求体大小(如文件上传)
	
	gzip on;  # 启用 Gzip 压缩
    gzip_min_length 1k;  # 最小压缩文件大小
    gzip_buffers 4 16k;  # 压缩缓冲区
    gzip_http_version 1.1;  # 压缩的 HTTP 协议版本
    gzip_comp_level 9;  # 压缩级别(1-99 最强但 CPU 占用高)
    gzip_types text/plain application/x-javascript text/css application/xml text/javascript application/x-httpd-php application/javascript application/json;  # 压缩的 MIME 类型
    gzip_disable "MSIE [1-6]\.";  # 禁用 IE6 的 Gzip(避免兼容性问题)
    gzip_vary on;  # 根据 `Accept-Encoding` 头返回压缩内容

			
    server {
        listen       444 ssl http2;
        server_name  *.baidu.*;

        add_header Access-Control-Allow-Origin *;
        add_header Access-Control-Allow-Methods *;
        add_header Access-Control-Allow-Headers 'Origin,Accept,DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';
		
			#填写证书文件名称
	    ssl_certificate /opt/cert/111.pem;
	    	#填写证书私钥文件名称  
	    ssl_certificate_key /opt/cert/111.key;


		ssl_session_timeout 5m;
		#表示使用的加密套件的类型
		ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
		#表示使用的TLS协议的类型,您需要自行评估是否配置TLSv1.1协议。
		ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
		ssl_prefer_server_ciphers on;


		#解决跨域问题-预检请求直接返回成功
		if ($request_method = 'OPTIONS') {
			return 200;
		}	

			 # 访问根目录
        location  /  {
            expires -1;
            root   /opt/;
            index  index.html index.htm;
         }
				# 前端地址
        location /yn-work-pc/  {
            alias   /opt/yn-work-pc/dist/;
            expires  -1;
            index  index.html index.htm;
            autoindex on;
            try_files $uri $uri/   /yn-work-pc/;
        }
			 # 后端接口
        location /yn-hs-api/ {
        
            proxy_redirect off;
            proxy_set_header Host $http_host;
            proxy_set_header X-Real-Ip $remote_addr;
            proxy_set_header X-Forwarded-For $remote_addr;

            # webScoket
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";

            proxy_pass http://127.0.0.1:9999/;
        }

    }


	}

}

5、通过docker-compose构建nginx

#来到docker-compose文件目录下,执行构建nginx命令
docker-compose -f  ./docker-compose.yml up nginx --build -d
#查询docker进程运行命令,状态为 up 即是正常运行
docker ps | grep nginx

在这里插入图片描述

6、访问nginx,测试效果

这里选择了放了一张静态图片来显示效果
在这里插入图片描述

6.1、查看nginx日志

在这里插入图片描述

6.2、服务器目录

在这里插入图片描述
在这里插入图片描述

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐