侧边栏壁纸
博主头像
STONE

行动起来,活在当下

  • 累计撰写 70 篇文章
  • 累计创建 67 个标签
  • 累计收到 5 条评论

目 录CONTENT

文章目录

用Docker创建Nginx,自动申请免费的域名证书,并且配置重定向或反向代理

STONE
2024-06-02 / 0 评论 / 2 点赞 / 62 阅读 / 0 字
温馨提示:
本文最后更新于2024-06-02,若内容或图片失效,请留言反馈。 部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

更新环境

apt update -y  && apt upgrade -y && apt install -y curl wget sudo socat

安装 Docker

curl -fsSL https://get.docker.com | sh

搭建nginx

创建nginx目录结构

mkdir -p /home/nginx

touch /home/nginx/nginx.conf

mkdir -p /home/nginx/certs

申请证书

curl https://get.acme.sh | sh

~/.acme.sh/acme.sh --register-account -m xxxx@gmail.com

~/.acme.sh/acme.sh --issue -d 自己的域名 --standalone

下载证书

~/.acme.sh/acme.sh --install-cert -d www.shiyunhao.cn \
> --key-file /home/nginx/ssl/private.key \
> --fullchain-file /home/nginx/ssl/cert.crt

进入目录编辑文件

cd /home/nginx/ && vim nginx.conf

重定向配置,跳转到域名

events {

    worker_connections  1024;

}

http {

  server {

    listen 80;

    server_name a.**kjlion.gq**;

    return 301 https://**www.baidu.com**$request_uri;

  }

  server {

    listen 443 ssl http2;

    server_name a.**kjlion.gq**;

    ssl_certificate /etc/nginx/certs/cert.pem;

    ssl_certificate_key /etc/nginx/certs/key.pem;

    return 301 https://**www.baidu.com**$request_uri;

  }

}

  

**反向代理配置,代理指定IP加端口**

events {

    worker_connections  1024;

}

http {

  client_max_body_size 1000m;  

  server {

    listen 80;

    server_name b.**kjlion.gq**;

    return 301 https://$host$request_uri;

  }

  server {

    listen 443 ssl http2;

    server_name b.**kjlion.gq**;

    ssl_certificate /etc/nginx/certs/cert.crt;

    ssl_certificate_key /etc/nginx/certs/private.key;

    location / {

      proxy_pass http://**127.0.0.1:5212**;

      proxy_set_header Host $host;

      proxy_set_header X-Real-IP $remote_addr;

      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

    }

  }

}

  

**代理静态网页的配置方式**

events {

    worker_connections  1024;

}

server {

    listen 80;

    server_name c.**kjlion.gq**;

    return 301 https://$server_name$request_uri;

}

server {

    listen 443 ssl http2;

    server_name c.**kjlion.gq**;

    ssl_certificate /etc/nginx/certs/cert.pem;

    ssl_certificate_key /etc/nginx/certs/key.pem;

    charset utf-8;  # 添加这行来指定编码

    location / {

        root /usr/share/nginx/html;

        index index.html;

    }

}

部署容器

docker run -d --name nginx -p 80:80 -p 443:443 -v /home/nginx/nginx.conf:/etc/nginx/nginx.conf -v /home/nginx/certs:/etc/nginx/certs -v /home/nginx/html:/usr/share/nginx/html nginx:latest

查看运行状态

docker ps -a

开机自启动

docker update --restart=always nginx

Docker常用命令

Docker常用命令

2

评论区