Nginx反向代理的简单配置

先去docker镜像仓库查找关于nginx的镜像,选择一款合适的,本文使用的是官方镜像nginx:1.23.4-alpine3.17。文章主要介绍两种nginx安装配置方式,一种为docker-compose部署,一种是包管理器直接部署。

docker-compose部署

思路步骤

  1. 创建宿主机映射目录
  2. 新建nginx容器
  3. 复制容器内部文件到宿主机
  4. 销毁容器
  5. 重建新容器

创建映射目录

mkdir -p /root/nginx/conf               作为nginx.conf和conf.d存放目录
mkdir -p /root/nginx/html               作为html文件存放目录
mkdir -p /root/nginx/log               作为nginx日志存放目录
mkdir -p /root/nginx/certs              作为网站反代存放证书目录

新建nginx容器

新建一个nginx容器,端口号随意,容器运行后,使用http://IP地址+端口 测试是否成功。

docker run --name nginx-test -p 7900:80 -d nginx:1.23.4-alpine3.17

复制目录

把容器内的目录复制到宿主机,省去了自己配置,也减少了不必要的麻烦,当然,如果允许完全可以自己配置。

将容器nginx.conf文件复制到宿主机
docker cp nginx-test:/etc/nginx/nginx.conf /root/nginx/conf/
将容器conf.d文件夹下内容复制到宿主机
docker cp nginx-test:/etc/nginx/conf.d /root/nginx/conf/
将容器中的html文件夹复制到宿主机
docker cp nginx-test:/usr/share/nginx/html /root/nginx/

销毁容器

需要的重要目录已经完全复制到宿主机了,删除容器

docker stop nginx容器ID
docker rm nginx容器ID

重建新容器

cd /root/nginx && nano docker-compose.yml
#### yml配置如下
version: '3.8'
services:
  nginx:
    image: nginx:1.23.4-alpine3.17
    container_name: my-nginx
    restart: always
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - /root/nginx/conf/nginx.conf:/etc/nginx/nginx.conf
      - /root/nginx/certs:/etc/nginx/certs
      - /root/nginx/conf/conf.d:/etc/nginx/conf.d
      - /root/nginx/log:/var/log/nginx
      - /root/nginx/html:/usr/share/nginx/html

运行容器

docker-compose up -d

编辑/root/nginx/conf/conf.d/default.conf,把下面这段代码放入到最下方,根据自己的需求进行修改

server {
    listen 80;
    server_name yourdomain.com;
    return 301 https://$host$request_uri;
    }
server{
    listen 443 ssl http2;
    server_name yourdomain.com;
    ssl_certificate /etc/nginx/certs/cert.pem;
    ssl_certificate_key /etc/nginx/certs/key.pem; #证书路径
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;
    location / {
        proxy_pass http://公网地址:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

包管理器部署

安装

apt install nginx

编辑/etc/nginx/sites-enabled/default文件,把下面这段代码放入到最下方,根据自己的需求进行修改

server {
    listen 80;
    server_name yourdomain.com;
    return 301 https://$host$request_uri;
    }
server{
    listen 443 ssl http2;
    server_name yourdomain.com;
    ssl_certificate /etc/nginx/certs/cert.pem;
    ssl_certificate_key /etc/nginx/certs/key.pem; #证书路径
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;
    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

写在最后

经过上述步骤,使用docker-compose安装nginx和使用包管理器安装nginx已经介绍完成,包管理器安装更为简单,但是却不能自己选择nginx版本,docker-compose部署方式相对复杂,但是灵活性更高。

证书申请请参考:https://012456.xyz/ldn/acme-certificate/

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇