关于宝塔面板的 Nginx 反向代理以及SSL证书部署 - YuMao233/MCSManager-v8.7 GitHub Wiki
本wiki最后修改与 2020/3/6
这里将告知你如何配置 宝塔面板 MCSM面板 Nginx反代,来达到反向代理并且使用HTTPS进行访问.
本文相关的链接
宝塔面板# https://bt.cn/
MCSM# https://github.com/Suwings/MCSManager
阿里云域名# https://wanwang.aliyun.com/
阿里云AccessKey# https://help.aliyun.com/document_detail/145787.html?spm=5176.10695662.1996646101.searchclickresult.6b676106MOp96x
哪些需要代理
面板需要一个 Websocket 链接,一个 http 链接。所以你需要将此两个协议均代理。
MCSM面板配置(仅8.7.0之前版本需要)
面板默认端口是 23333
,无需修改。
进入 public/common/URL.js
文件,可以看见以下内容:
// 如果只是进行反代,不需要HTTPS访问的,请无视这个修改
// 如果你想要使用HTTPS进行访问请修改以下内容
// 将ws://和 http:// 修改为 wss:// 和 https://
MCSERVER.WS_PROTOCOL = 'ws://';
MCSERVER.HTTP_PROTOCOL = 'http://';
MCSERVER.URL = function (url, protocol) {
var _protocol = protocol || MCSERVER.HTTP_PROTOCOL;
var hostName = window.location.host;
var openURL = hostName + '/' + url;
return _protocol + openURL;
};
注意
修改为 wss://
和 https://
后,本地将无法通过IP连接至面板,只能通过HTTPS开头的域名访问
反向代理的配置
Step 1.
首先进行宝塔面板的安装,请根据宝塔官网的教程进行安装部署(windows版不推荐使用)
安装完成后进入宝塔的网页管理后台.选择安装环境为 Nginx + PHP7.2(或者更高) + 可有可无的数据库以及FTP
注意如果你只想要进行反向代理,那么数据库以及FTP都不需要安装
等待安装完成
Step 2.
点击"网站"按钮跳转到网站控制页.点击"添加站点"
所有设置都为默认 数据库以及FTP都不开启
域名请输入你购买的域名例如 mcsm.suwings.top:80
(这里推荐使用阿里云域名后面需要用到它.端口请根据自身情况填写)
至此,你想要的站点创建成功了.接下来就是配置 Nginx
反向代理(非常简单)
Step 3.
在"网站名"这一列找到你刚刚创建的网站
找到"反向代理"这个选项,点击"添加反向代理"
所有设置都为默认.在"目标URL"这一栏里填写你要反代的链接
比如 http://mcsm.suwings.top:23333
这个链接为你的MCSM面板的地址记得带上端口
后面 "发送域名" 这一栏不需要修改,由程序自动补全.然后点击"提交"
以上完成了最基本的 反向代理 服务创建接下来进行反向代理详细配置
Step 4.
在刚才创建的 "反向代理" 中点击 配置文件
找到该字句
location /
{
在其中添加
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
以下为修改后的示例文件:
#PROXY-START/
location ~* \.(php|jsp|cgi|asp|aspx)$
{
proxy_pass http://mcsm.suwings.top:23333;
proxy_set_header Host mcsm.suwings.top;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header REMOTE-HOST $remote_addr;
}
location /
{
proxy_pass http://mcsm.suwings.top:23333;
proxy_set_header Host mcsm.suwings.top;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
add_header X-Cache $upstream_cache_status;
#Set Nginx Cache
add_header Cache-Control no-cache;
expires 12h;
}
#PROXY-END/
这两条信息.点击保存.至此反向代理环境已配置完成.
免费申请并部署SSL证书
基于宝塔面板的SSL部署.点击网站,找到你的站点.(在网站名这一列)
打开站点配置,找到 "SSL" 选择 "Let's Encrypt" 点击 "DNS验证(支持通配符)"
选择 DNS接口 这里就要用到之前购买的阿里云域名.选择 "阿里云DNS"
接下来会弹出一个窗口,让你填写 AccessKey
以及 SecretKey
关于如何获取,本文开头已提供所有相关链接
接下来宝塔面板就会在自动验证成功后生成证书部署在该站点 可以开启 "强制HTTPS" 功能
宝塔申请的 Let's Encrypt 证书为免费证书.有效期为3个月.在到期前宝塔会自动续签,不需要操心.
以上所有步骤完成后即可通过HTTPS来访问你的面板.
请放行相关端口或者配置安全组.否则将无法访问.
注意
由于政策原因,国内所有80以及443端口需要域名备案后才能正常使用.
未备案状态下阿里云默认为放行443拦截80.即可以通过HTTPS访问
不影响使用.
本文到此结束,完成以上设置,即可通过
https://你的域名
来访问MCSM面板