侧边栏壁纸
  • 累计撰写 22 篇文章
  • 累计创建 29 个标签
  • 累计收到 2 条评论

目 录CONTENT

文章目录

【好玩儿的Docker项目】一个反向代理神器——Nginx Proxy Manager

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

Nginx proxy manager是一个很简单的反向代理工具。

官网:https://nginxproxymanager.com/

门槛极低,操作简单,不需要你掌握很复杂的Nginx配置知识,只需要几步就能很轻松完成反向代理的设置和SSL证书的部署。

it had to be so easy that a monkey could do it.

开始部署

服务器环境:Centos7.9(Debian 10,Ubuntu 20.04也可以)或以上版本

添加SWAP虚拟内存

注意:VPS的内存如果过小,建议设置一下SWAP,一般为内存的1-1.5倍即可,可以让系统运行更流畅。

设置SWAP可以用的脚本

wget -O box.sh https://raw.githubusercontent.com/BlueSkyXN/SKY-BOX/main/box.sh && chmod +x box.sh && clear && ./box.sh

image

选择18,然后输入你想要扩容的数值即可。

image

安装docker脚本

#!/bin/bash

#基础安装
yum update -y
yum install vim -y
yum install wget -y

# 卸载旧版本
yum remove -y docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine

#docker 安装前提 && 关闭防火墙
systemctl disable firewalld
yum install  yum-utils device-mapper-persistent-data lvm2 -y

#添加软件源信息
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo


#更新&&安装
yum makecache fast
yum install epel-release -y
yum install container-selinux -y
yum  install docker-ce -y


#开启docker服务
service docker start

#创建配置文件
mkdir -p /etc/docker

#添加镜像地址
cat <<EOF > /etc/docker/daemon.json 
{
    "registry-mirrors": ["https://xsgbmvdm.mirror.aliyuncs.com"],    
    "log-driver":"json-file",
    "log-opts": {"max-size":"50m", "max-file":"3"},
    "insecure-registries":["192.168.0.166"]
}
EOF

#加载daemon.json
systemctl daemon-reload
#设置开机启动,启动docker
systemctl enable docker && systemctl start docker

#安装docker-compose
curl -L "https://get.daocloud.io/docker/compose/releases/download/1.27.3/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
#添加权限
chmod +x /usr/local/bin/docker-compose
#输出检查
docker ps
docker-compose -version

echo -e "\033[32;1mdocker安装成功\033[0m"

安装docker-compose

curl -L "https://github.com/docker/compose/releases/download/v2.27.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose && chmod +x /usr/local/bin/docker-compose && ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose && docker-compose --version

安装Nginx Proxy Manager

创建安装的目录

mkdir -p /data/docker_data/nginxproxymanger

cd /data/docker_data/nginxproxymanger

直接用docker的方式安装

vim docker-compose.yml

输入以下内容

原始版本为英文

version: '3'
services:
  app:
    image: 'jc21/nginx-proxy-manager:latest'
    restart: unless-stopped
    ports:
      - '80:80'  # 保持默认即可,不建议修改左侧的80
      - '81:81'  # 冒号左边可以改成自己服务器未被占用的端口
      - '443:443' # 保持默认即可,不建议修改左侧的443
    volumes:
      - ./data:/data # 冒号左边可以改路径,现在是表示把数据存放在在当前文件夹下的 data 文件夹中
      - ./letsencrypt:/etc/letsencrypt  # 冒号左边可以改路径,现在是表示把数据存放在在当前文件夹下的 letsencrypt 文件夹中

大神修改过的中文版本

version: '3'
services:
  app:
    image: 'chishin/nginx-proxy-manager-zh:release'
    restart: unless-stopped
    ports:
      - '80:80'  # 保持默认即可,不建议修改左侧的80
      - '81:81'  # 冒号左边可以改成自己服务器未被占用的端口
      - '443:443' # 保持默认即可,不建议修改左侧的443
    volumes:
      - ./data:/data # 冒号左边可以改路径,现在是表示把数据存放在在当前文件夹下的 data 文件夹中
      - ./letsencrypt:/etc/letsencrypt  # 冒号左边可以改路径,现在是表示把数据存放在在当前文件夹下的 letsencrypt 文件夹中

查看端口是否被占用(以81为例)

lsof -i:81  #查看 81 端口是否被占用,如果被占用,重新自定义一个端口

如果什么都没出现,表示端口未被占用,我们就可以继续下面的操作了。

如果出现:

-bash: lsof: command not found

运行:

yum install lsof  #安装 lsof

然后在重新执行测试。

运行并访问Nginx Proxy Manager

cd /data/docker_data/nginxproxymanger   # 来到 dockercompose 文件所在的文件夹下

docker-compose up -d

到这里理论上我们就可以输入http://ip:81访问了

默认登录名和密码

Email:    admin@example.com
Password: changeme

注意:

1.不知道服务器IP,可以直接在命令行输入:ip a或者是curl ip.sb,会显示当前服务器的IP。

2.遇到访问不了的情况,请检查防火墙是否打开了对应的端口。

更新Nginx proxy manager

cd /data/docker_data/nginxproxymanger

docker-compose down 

cp -r /data/docker_data/nginxproxymanger /data/docker_data/nginxproxymanger.archive  # 万事先备份,以防万一

docker-compose pull

docker-compose up -d    # 请不要使用 docker-compose stop 来停止容器,因为这么做需要额外的时间等待容器停止;docker-compose up -d 直接升级容器时会自动停止并立刻重建新的容器,完全没有必要浪费那些时间。

docker image prune  # prune 命令用来删除不再使用的 docker 对象。删除所有未被 tag 标记和未被容器使用的镜像

卸载Nginx proxy manager

cd /data/docker_data/nginxproxymanger

docker-compose down 

rm -rf /data/docker_data/nginxproxymanger  # 完全删除映射到本地的数据

可以卸载的很干净

参考链接:

https://blog.laoda.de/archives/nginxproxymanager

0

评论区