Portainer使用 Nginx 容器实现端口转发

在 WordPress 部署完成后,需要在浏览器内输入 IP:端口或域名:端口 的形式访问网站,但我们一般访问应用的时候都是希望不加端口就能访问域名,所以这时就要用到 Nginx 的端口转发功能。

一、创建 Nginx 容器

1.进入到 Portainer 页面,选择左边的 Containers 选项,单击上方的 Add container 按钮转到如图 2 所示的页面;

2.按照下图创建 Nginx 容器;

3.回到容器列表,点击刚刚创建的 Nginx 容器,可进入到容器详情页,往下可看到 volueme 信息,记录下 /etc/nginx 目录 对应的 volume 的值。

二、创建 FileBrowser 容器

1.进入到 Portainer 页面,选择左边的 App Templates 选项,往下找到 File browser 容器模板,单击选择;



2.按照下图创建 File browser 容器;

3.进入到容器列表,单击刚刚创建的 File browser 容器,点击 Duplicate/Edit 按钮,进入到修改容器信息页面;

4.按照下图,将 File browser 的 volume 值修改为 和 Nginx 的 volume 值相同;

三、更改 Nginx 配置文件实现端口转发

1.打开第二步中创建的 File Browser 网站(公网ip:端口),账号密码为 admin/admin,登录到 File Browser;

2.进入 conf.d 目录,双击 default.conf 文件,将原来的配置删除,修改为如下图所示内容:

  1. upstream wordpress {
  2. server 159.138.6.145:32773;
  3. }
  4. server {
  5. listen 80;
  6. server_name test.example.top;
  7. location / {
  8. proxy_pass http://wordpress;
  9. proxy_set_header Host $host;
  10. proxy_set_header X-Real-IP $remote_addr;
  11. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  12. proxy_set_header Via "nginx";
  13. }
  14. }

注意:请将 server_name 改为自己的域名,proxy_pass 改为自己网站容器的 IP:端口号

3.到容器列表重启 Nginx 容器,现在就可以在浏览器地址栏输入域名直接访问自己的网站了。

修改完 Nginx 的配置文件后,File Browser 容器可选择继续保留使用或删除。

Portainer绑定域名

域名绑定可在 上一步 配置Nginx实现端口转发 将 server_name 改成自己的域名即可。

Portainer设置HTTPS

1.参考 安装File Browser容器 新建 File Browser 容器;

注意设置 File Browser 的 volume 。

2.在浏览器打开 File Browser ,新建一个名为 cert 文件夹,将证书上传至 cert;

3.修改 Nginx 的配置文件,注意将 IP 和域名改成自己的服务器 IP 和域名;

  1. upstream portainer {
  2. server 159.138.6.145:9000;
  3. }
  4. server {
  5. listen 80;
  6. listen 443 ssl;
  7. server_name test.websoft9.top;
  8. ssl_certificate /etc/nginx/cert/cert-1540972394298_test.websoft9.top.crt;
  9. ssl_certificate_key /etc/nginx/cert/cert-1540972394298_test.websoft9.top.key;
  10. location / {
  11. proxy_pass http://portainer;
  12. proxy_set_header Host $host;
  13. proxy_set_header X-Real-IP $remote_addr;
  14. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  15. proxy_set_header Via "nginx";
  16. }
  17. }

如果证书路径和图中不同,请将图中证书路径改为自己的证书所在路径,并将证书名改为自己的证书名。

4.在容器列表中重启 Nginx 容器使配置生效,就可以在浏览器内使用 https://域名 访问 Portainer 了。

5.如果想要达到访问 http 自动跳转到 https 的效果,请将配置改成如下所示:

  1. upstream portainer {
  2. server 159.138.6.145:9000;
  3. }
  4. server {
  5. listen 80;
  6. listen 443 ssl;
  7. server_name test.websoft9.top;
  8. ssl_certificate /etc/nginx/cert/cert-1540972394298_test.websoft9.top.crt;
  9. ssl_certificate_key /etc/nginx/cert/cert-1540972394298_test.websoft9.top.key;
  10. if ($scheme != "https") {
  11. return 301 https://$host$request_uri;
  12. }
  13. location / {
  14. proxy_pass http://portainer;
  15. proxy_set_header Host $host;
  16. proxy_set_header X-Real-IP $remote_addr;
  17. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  18. proxy_set_header Via "nginx";
  19. }
  20. }

Portainer连接到容器内部运行命令

在此以连接到 MySQL 容器为例进行说明:

1.返回到容器列表,点击下图中 MySQL 的 Quick actions 一栏下的 >_ 图标;

2.在新打开的页面,点击 Connetc 按钮,连接到容器;

3.接下来就可以在命令窗口中输入mysql -uroot -ppassword;",其中 “password” 为您在自己设置的数据库密码,这样就可以开始使用数据库命令对 MySQL 进行管理了;

Portainer备份

到 Portainer 的容器列表里面查看 portainer 的 volume 对应的服务器目录,在/var/lib/docker/volumes下可找到 volume 对应的目录名,将其备份即可。

Portainer升级

只需运行 docker pull portainer就可以将 Portainer 升级到最新版本。

常用账号与密码说明

程序安装、使用和维护中需要用到两种账户:

MySQL账号和密码:

MySQL 的 root 账户默认密码已优化为强随机密码,查看方式:

1.使用 SFTP远程管理工具 连接到服务器;

2.找到 password.txt 文件 ( /root/password.txt ),打开即可查看 MySQL 数据库用户名和密码;

3.若无 password.txt 文件,则为旧版镜像,其 MySQL 默认用户名和密码为 :root/123456;

4.查看密码后,可自行访问 http://公网IP/phpmyadmin 管理数据库相关信息。

默认的 “123456” 请务必修改为强密码,类似于:f@N7eUUm25xAjP!$ ,这样有助于提高数据库的安全性,减少数据库密码被破解的风险。

Linux 服务器操作系统账号和密码:

账号:root

密码:是安装镜像的时候客户自行设置的

登录:使用 SFTP 或 SSH 工具

若不记服务器的密码,请登录云服务器后台,修改服务器密码,重启后生效

Portainer实用教程的更多相关文章

  1. 蓝牙BLE实用教程

    蓝牙BLE实用教程 Bluetooth BLE 欢迎使用 小书匠(xiaoshujiang)编辑器,您可以通过 设置 里的修改模板来改变新建文章的内容. 1.蓝牙BLE常见问答 Q: Smart Re ...

  2. Unix sed实用教程系列目录[已完成]

    本系列文章已经译完了,译自awk-sed@theunixschool,收获颇丰,作者没有讲明白的我做了补充,并且尝试讲的更清楚,整理成系列索引,方便学习,开篇非译文,是我为了方便后面的理解写的一篇,感 ...

  3. 学习笔记之Java程序设计实用教程

    Java程序设计实用教程 by 朱战立 & 沈伟 学习笔记之JAVA多线程(http://www.cnblogs.com/pegasus923/p/3995855.html) 国庆休假前学习了 ...

  4. js模版引擎handlebars.js实用教程

    js模版引擎handlebars.js实用教程 阅读本文需要了解基本的Handlebars.js概念,本文并不是Handlebars.js基础教程,而是注重于实际应用,为读者阐述使用过程中可能会遇到的 ...

  5. iptables实用教程(二):管理链和策略

    概念和原理请参考上一篇文章"iptables实用教程(一)". 本文讲解如果管理iptables中的链和策略. 下面的代码格式中,下划线表示是一个占位符,需要根据实际情况输入参数, ...

  6. iptables实用教程(一):基本概念和原理

    概述 iptables是linux自带的防火墙软件,用于配置IPv4数据包过滤或NAT(IPv6用ip6tables). 在linux上,防火墙其实是系统内核的一部分,基于Netfilter构架,基本 ...

  7. 《UNIX实用教程》读书笔记

    原著:<Just Enough UNIX>  Fifth Edition  [美]Paul K.Andersen 译著:<UNIX实用教程> 第5版 宋虹 曾庆冬 段桂华 杨路 ...

  8. 《Java2 实用教程(第五版)》学习指导

    <Java2 实用教程(第五版)> 第1章Java入门 主要内容:P1 1.1Java的地位:P1 1.2Java的特点:P2 1.3安装JDK:P5 1.4Java程序的开发步骤:P8 ...

  9. MUI 实用教程

    MUI 实用JS教程: https://www.kancloud.cn/benhailong/mui/319751  MUI 实用教程: https://www.kancloud.cn/benhail ...

随机推荐

  1. vue中如何在自定义组件上使用v-model和.sync

    自定义事件 tips 推荐始终使用 kebab-case 的事件名.(v-on会将事件名自动转换为小写,避免匹配不到) changeData × change-data √ 自定义组件的v-model ...

  2. 2509-Druid监控功能的深入使用与配置-基于SpringBoot-完全使用 .properties配置文件

    java实现的数据库连接池有很多,c3p0,dbcp等,还有号称速度最快的HikariCP,并且springboot2.0.2版本默认使用的就是HikariCP. 为什么选用Druid呢? - 性能够 ...

  3. mysql开发实战8问

    mysql读写性能是多少,有哪些性能相关的配置参数? Mysql负载高时,如何找到是由哪些SQL引起的? 如何针对具体的SQL做优化? SQL层面已难以优化,请求量继续增大时的应对策略? Mysql如 ...

  4. python对象的独有功能与面向对象的特征

    目录 对象的独有功能 动静态方法 面向对象的特征 面向对象的的三大特征 继承的本质 不继承的名字查找顺序 单继承的名字查找顺序 多继承的名字查找顺序 经典类与新式类 派生方法 对象的独有功能 1.定义 ...

  5. 聚是一团火散作满天星,前端Vue.js+elementUI结合后端FastAPI实现大文件分片上传

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_175 分片上传并不是什么新概念,尤其是大文件传输的处理中经常会被使用,在之前的一篇文章里:python花式读取大文件(10g/50 ...

  6. powershell和cmd对比

    前言 计算机啊这东西,本质上是硬件和软件的综合体.如果只有硬件没有软件的话,这也是台辣鸡而已.而计算机软件中最靠近硬件的一层,就是操作系统层. 操作系统有很多种,比如Unix/Linux/Mac OS ...

  7. MySQL查询性能优化七种武器之索引潜水

    有读者可能会一脸懵逼? 啥是索引潜水? 你给起的名字的吗?有没有索引蛙泳? 这个名字还真不是我起的,今天要讲的知识点就叫索引潜水(Index dive). 先要从一件怪事说起: 我先造点数据复现一下问 ...

  8. 3.0.0 alpha 重磅发布!九大新功能、全新 UI 解锁调度系统新能力

    2022 年 4 月 22 日,Apache DolphinScheduler 正式宣布 3.0.0 alpha 版本发布!此次版本升级迎来了自发版以来的最大变化,众多全新功能和特性为用户带来新的体验 ...

  9. List的同步类比较

    TL;NRs CopyOnWriteArrayList类在多线程顺序读取上有很大的优势,但在随机读取上反而有较大的劣势,且在写入方面性能极差. Vector类在顺序读取方面性能较差,但在随机读取方面有 ...

  10. 查看 npm 的全局安装依赖包

    在控制台中输入以下指令可以直接查看 npm 全局安装的依赖包: npm list -g --depth 0