Docker 安装 Nginx Proxy Manager
1.背景
对于想自己搭建网站的朋友,使用自己个性化域名的朋友,使用Nginx的不在少数,可能也会使用Apache来管理自己的网站,但Nginx轻量又好用,还支持正向/反向代理,谁不喜欢呢?
Nginx Proxy Manager就是一款让你能通过网页的一些设置,完成网站的代理配置,无需自己再手动安装Nginx修改配置文件了,大大提高了效率。项目也是开源的,不用担心项目的安全性。
2.安装docker
安装依然使用我们的老伙计-docker,但这次要使用到docker的伙计:docker-compose,使用docker-compose可以帮助我们编排自己的容器,通过一个简单的脚本启动复杂的程序,自动处理依赖项目,从而简化操作。
服务器上执行以下命令安装docker, 安装完成后执行第二条命令,启动并设置开机启动docker。
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun systemctl enable --now docker
安装docker-compose,建议使用备用下载速度更快。
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-
国内下载
curl -L "https://get.daocloud.io/docker/compose/releases/download/v2.5.1/docker-compose-
sudo chmod +x /usr/local/bin/docker-compose
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
检查一下安装是否成功
# 查看docker版本
docker -v
# 查看docker-compose版本
docker-compose -v
如果未能查看docker-compose版本 可能是因为/usr/local/bin没有加入到系统环境变量
export PATH=/usr/local/bin:$PATH
3.部署Nginx Proxy Manager
创建一个目录用于存放Nginx Proxy Manager的配置和项目文件
mkdir -p /opt/docker/NginxProxyManager && cd /opt/docker/NginxProxyManager
创建一个docker-compose.yml文件
vi docker-compose.yml
粘贴以下内容:
version: '3'
services:
app:
image: 'jc21/nginx-proxy-manager:latest'
restart: unless-stopped
ports:
- '80:80'
- '81:81'
- '443:443'
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
按下键盘上的esc键,输入:wq保存退出。 请注意文件间的缩进,如果缩进不正确,可以使用文本编辑器编辑好后上传到服务器上。
docker-compose up -d
4.访问控制页面
使用你的ip:81,如果有防火墙,可以临时放通81的tcp端口。 初始的用户和密码如下:
Email: admin@example.com
Password: changeme
我的博客即将同步至腾讯云开发者社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=394p003w63ggg
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- SAP Spartacus pageSlot一览
- Angular @Hostbinding工作原理
- Python干货 | 遥感影像拼接
- SAP Spartacus 自定义指令的实现以及通过@HostBinding实现属性绑定
- Python气象绘图教程—(十九)剖面图
- Angular DefaultDomRenderer2.setProperty
- 在pandas中利用hdf5高效存储数据
- AMS机器学习课程:Keras深度学习 - 卷积神经网络
- python教程 | 最标准的地图调用方式(国家测绘局提供数据)
- 「万物生长」一个APK从诞生到活跃在Android手机上
- webpack实战——生产环境配置【下】
- R语言作图——Violin plot with dot
- AkShare-中国宏观-全社会用电分类情况表
- Angular应用从Component到Html的数据绑定是如何实现的
- 3分钟短文:Laravel Form,让你不再写 HTML 的好“库”