宝塔面板的nginx伪静态rewrite设置、反向代理设置

本文介绍如何使用Nginx进行伪静态地址重写,将动态请求映射到静态页面路径,以及宝塔面板下设置反向代理的方法,实现不同端口间的服务跳转。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最终成功结果演示:http://ys.wjsou.com/s2/无名之辈.html

原动态地址:http://wjsou.com:8080/s2.jsp?q=无名之辈

 

参考官方原文:http://nginx.org/en/docs/http/ngx_http_rewrite_module.html

Syntax:rewrite regex replacement [flag];
Default:
Context:serverlocationif

rewrite 伪静态地址 真动态地址 标志;

示例

比如我想把真动态地址http://wjsou.com/s2.jsp/q=searchword通过伪静态地址 http://wjsou.com/s2/searchword.html访问。配置:

rewrite ^/s2/(.+?)\.html$ /s2.jsp?q=$1 last;

1.配置中正则含义:

"^"起始

"$"结束

(exp)匹配exp,并捕获文本到自动命名的组里

 ".":匹配除了换行符以外的任何字符

\.转义 .

"+"(懒惰)   重复一次或更多次

"?"(占有)   重复零次或一次

"+?"  重复1次或更多次,但尽可能少重复(懒惰限定符,后面加?表示尽可能少重复)

$1表示前面正则表达式中的第一个()匹配的内容。

2.flag标志位

  • last : 相当于Apache的[L]标记,表示完成rewrite
  • break : 停止执行当前虚拟主机的后续rewrite指令集
  • redirect : 返回302临时重定向,地址栏会显示跳转后的地址
  • permanent : 返回301永久重定向,地址栏会显示跳转后的地址

 

 

另外,宝塔面板的反向代理设置

我把80端口用作php,8080端口用作jsp。比如访问ys.wjsou.com跳到wjsou.com:8080,设置如下(如图)

目标URL:http://wjsou.com:8080

发送域名:wjsou.com:8080

内容替换:

启用反向代理    开启缓存

### 宝塔面板部署前后端分离项目的配置教程 #### 1. 准备工作 在开始之前,确保已经完成以下准备工作: - 已经安装并初始化好宝塔面板。 - 前端项目已打包成静态文件(通常是一个 `dist` 文件夹),后端服务能够正常运行。 --- #### 2. 创建站点 登录宝塔面板,在左侧菜单栏点击 **【网站】** -> **【添加站点】**。 输入域名或者服务器IP地址作为访问路径[^1]。如果没有域名,可以直接使用云服务器的公网IP地址(例如:`http://106.24.65.109`)。 如果需要指定端口,则可以在URL后面附加端口号(例如:`http://106.24.65.109:9999`)[^1]。 --- #### 3. 配置前端部分 ##### (1) 设置根目录 进入刚刚创建好的站点设置页面,找到 **【根目录】** 并将其修改为前端构建后的静态资源所在位置(通常是Vue项目的 `dist` 文件夹)。 ##### (2) Nginx伪静态规则 为了支持HTML5路由模式(适用于单页应用SPA场景),需要编辑Nginx配置文件。操作如下: - 进入该站点的 **【设置】** 页面; - 找到 **【伪静态】** 功能模块,清空原有内容,并填入以下代码: ```nginx location / { try_files $uri $uri/ /index.html; } ``` 此规则的作用是当请求未匹配任何实际文件时,返回 `index.html`,从而实现前端路由跳转功能。 --- #### 4. 配置后端部分 假设后端SpringBoot程序监听的是本地9099端口,那么可以通过Nginx反向代理的方式对外提供API接口服务[^2]。 ##### (1) 修改Nginx配置 同样是在当前站点的 **【设置】** 中打开 **【配置文件】** ,追加一段针对 `/api/` 路径的处理逻辑: ```nginx location /api/ { rewrite_log on; rewrite ^/api/(.*)$ /$1 break; proxy_pass http://127.0.0.1:9099/; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-real-ip $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } ``` 这段配置表示所有以 `/api/` 开头的请求都会被转发至本机上的9099端口[^2]。 --- #### 5. 启动后端服务 通过SSH连接到您的Linux服务器,启动SpringBoot应用程序。以下是常见的命令形式: ```bash nohup java -jar your-springboot-app.jar > app.log 2>&1 & ``` 其中 `your-springboot-app.jar` 是您编译得到的应用包名称;日志会保存到同级目录下的 `app.log` 文件里以便后续排查问题之用。 确认进程成功开启之后再回到浏览器测试整个系统的连通性情况。 --- #### 6. 测试与验证 最后一步就是分别尝试访问首页以及调用某个后台接口来检验整体架构是否搭建正确无误。比如发送GET请求给类似这样的链接看看能否获取预期的数据响应结果:`http://<YourDomainOrIp>/api/someEndpoint`. ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小黄人软件

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值