宝塔管理服务器部署
本教程详细介绍如何在宝塔面板中配置 Nginx 反向代理、静态资源服务,以及部署 Let’s Encrypt 免费 SSL 证书和自动续期功能。
在宝塔面板中配置您提供的 Nginx 反向代理和静态资源服务,可以按照以下步骤操作。下面的流程图汇总了核心配置步骤,帮助您快速了解整体流程:
1 | flowchart TD |
🔧 配置反向代理 (location ^~ /asapi)
-
登录宝塔面板,进入【网站】页面,找到您的站点,点击右侧的【设置】。
-
在站点设置中,找到并点击【反向代理】选项卡,然后点击【添加反向代理】。
-
在添加反向代理的界面中:
- 代理名称:可以自定义,例如
asapi_proxy。 - 目标URL:填写
http://127.0.0.1:7001。
- 代理名称:可以自定义,例如
-
点击【提交】后,宝塔会自动生成一个基础的反向代理配置。为了匹配您提供的配置,您可能需要点击【配置文件】选项卡,找到自动生成的
/asapi相关配置块,手动添加上其他proxy_set_header等参数,或者直接在反向代理设置的高级配置中进行添加 。确保最终的配置包含以下关键指令 :location ^~ /asapi { proxy_pass http://127.0.0.1:7001; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_set_header X-NginX-Proxy true; proxy_set_header Connection ""; proxy_http_version 1.1; }
📁 配置静态资源服务 (location /web)
宝塔面板的图形界面主要简化了反向代理配置,对于使用 alias指令的静态资源映射,通常需要直接编辑配置文件来实现。
-
在站点的设置中,点击【配置文件】选项卡。
-
在
server块内,找到或添加location /web的配置部分。您可能需要注释掉或调整宝塔面板自动生成的与根目录/相关的location块,以避免规则冲突。 -
将您提供的配置粘贴或修改到合适的位置:
location /web { alias /www/wwwroot/smartfarm/web/; # 请确保此路径正确且宝塔面板的www用户有权访问 index index.html; try_files $uri $uri/ /web/index.html; # 用于支持前端路由的history模式 }关键提示:
- 路径权限:请确认路径
/mnt/projects/smart-farm/web/存在,并且宝塔面板运行Nginx的用户(通常是www)拥有读取权限 。 - 历史模式路由:
try_files $uri $uri/ /web/index.html;这行配置对于使用 history 模式的前端路由框架(如 Vue Router、React Router)至关重要,它确保在直接访问非首页URL时能正确返回index.html。
- 路径权限:请确认路径
✅ 最终检查
配置完成后,请务必执行以下操作:
- 点击配置文件编辑器上方的【保存】按钮。
- 在宝塔面板的首页或软件管理中找到Nginx服务,执行【重载配置】或【重启】,使修改生效 。
- 重载或重启后,检查Nginx状态是否正常运行。如果启动失败,请查看【网站】日志或Nginx错误日志(通常在
/www/wwwlogs/目录下,以您的域名-error.log命名)来排查语法或路径错误 。
🔧 部署免费SSL证书
首先,您需要为网站申请并部署一张SSL证书。宝塔面板内置了对 Let‘s Encrypt 免费证书的支持,整个过程非常便捷。
-
前提准备:确保您的域名已经正确解析到当前服务器的IP地址,并且网站可以通过HTTP正常访问。
-
申请证书:
- 登录宝塔面板,进入【网站】列表,点击目标网站右侧的【设置】。
- 切换到【SSL】选项卡,在证书服务中选择 “Let’s Encrypt” 。
- 勾选您需要绑定的域名(例如
example.com和www.example.com)。 - 选择验证方式。如果您希望申请通配符证书(支持所有子域名)或为自动化续期打下最可靠的基础,强烈推荐使用 DNS验证(如阿里云DNS、Cloudflare等)。如果您的域名解析已生效且80端口畅通,也可以使用简单的文件验证。
- 点击【申请】或【验证】,系统会自动完成域名验证、证书申请和配置工作。
-
开启强制HTTPS:证书部署成功后,建议在SSL设置页面勾选【强制HTTPS】选项,这样所有HTTP请求都会被自动重定向到安全的HTTPS连接。
⚙️ 配置自动续期
Let‘s Encrypt证书的有效期为90天,因此设置自动续期至关重要。宝塔面板提供了两种主要方式来实现这一点。
-
方式一:利用面板内置的自动续签功能
当您通过宝塔面板成功申请Let’s Encrypt证书后,系统默认会创建一条自动续签计划任务。您可以在面板左侧导航栏点击【计划任务】,检查是否存在名为“续签Let‘s Encrypt证书”的任务。该任务通常会定期(如每天)检查证书并在到期前约30天自动续签。
-
方式二:手动创建或验证计划任务(更可靠)
如果内置任务不存在或您希望更主动地管理,可以手动添加一条Shell脚本任务,这是确保自动续期生效的最可靠方法。
-
进入【计划任务】。
-
【任务类型】选择 “Shell脚本”。
-
【执行周期】可以设置为每天或每周执行一次。
-
在【脚本内容】中填入以下命令:
/www/server/panel/pyenv/bin/python3 -u /www/server/panel/class/acme_v2.py --renew=1 -
点击【添加任务】即可。
对于使用DNS验证方式申请证书的用户,为了确保自动续期脚本有权限自动更新DNS记录,您需要提前在宝塔面板的SSL设置中配置好DNS服务商的API密钥(如阿里云的AccessKey ID和Secret)。
-

