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 文件,將原來的配置刪除,修改為如下圖所示內容:
upstream wordpress {
server 159.138.6.145:32773;
}
server {
listen 80;
server_name test.example.top;
location / {
proxy_pass http://wordpress;
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 Via "nginx";
}
}

注意:請將 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 和域名;
upstream portainer {
server 159.138.6.145:9000;
}
server {
listen 80;
listen 443 ssl;
server_name test.websoft9.top;
ssl_certificate /etc/nginx/cert/cert-1540972394298_test.websoft9.top.crt;
ssl_certificate_key /etc/nginx/cert/cert-1540972394298_test.websoft9.top.key;
location / {
proxy_pass http://portainer;
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 Via "nginx";
}
}

如果證書路徑和圖中不同,請將圖中證書路徑改為自己的證書所在路徑,並將證書名改為自己的證書名。
4.在容器列表中重啟 Nginx 容器使配置生效,就可以在瀏覽器內使用 https://域名 訪問 Portainer 了。
5.如果想要達到訪問 http 自動跳轉到 https 的效果,請將配置改成如下所示:
upstream portainer {
server 159.138.6.145:9000;
}
server {
listen 80;
listen 443 ssl;
server_name test.websoft9.top;
ssl_certificate /etc/nginx/cert/cert-1540972394298_test.websoft9.top.crt;
ssl_certificate_key /etc/nginx/cert/cert-1540972394298_test.websoft9.top.key;
if ($scheme != "https") {
return 301 https://$host$request_uri;
}
location / {
proxy_pass http://portainer;
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 Via "nginx";
}
}
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 工具
若不記服務器的密碼,請登錄雲服務器后台,修改服務器密碼,重啟后生效
