通过Nginx转发admin连接后端接口

本文详细描述了如何在本地部署并配置开发环境,包括安装和配置nginx、mysql、rabbitmq、redis等服务,使用Docker构建和运行应用容器,以及设置跨域和Nginx配置,最终实现前端项目访问测试。

1.需求配置

在本地环境部署一套开发环境,方便开发金磊调试功能

所使用到的服务有nginx,mysql,rabbitmq,redis,docker

服务安装网上都有教程这里就不一一列举出来了,服务都配置好之后 开始组建开发环境

2.开发环境搭建

在root用户下新建一个目录,licloud-api-develop


mkdir /root/licloud-api-develop

然后将后端接口包通过put拉取到这个目录下面


发现下面有一个Dockerfile文件,构建是这个Dockerfile

Dockerfile -t build licloud-api-develop .

ls查看一下

构建完成之后会出现两个镜像,这个时候我们运行第一个


docker run -it --name licloud-api-1 -p 5000:5000 /bin/bash docker ps -a

然后确定一下容器的状态

确定没有问题之后,我们开始修改nginx的配置,ubuntu中nginx配置文件的路劲在这里


cat /etc/nginx/sites-available/default

配置如下:

注意:

第一处ip必须写IP地址 不能写localhost 不然会报错

第二处跨域 域名后面要加 / 号 不然会读取不到数据

然后将我们前端项目admin的文件夹拉取到/usr/share/www/html/dist下

重置nginx配置


nginx -t nginx -s reload

访问192.168.5.177测试,访问成功

<think>我们正在配置Nginx反向代理,将请求路径为`/xxl-job-admin/`的请求转发后端服务器`http://10.11.1.8:8084/xxl-job-admin/`,并确保参数正确传递。 关键点: 1. 使用location匹配路径`/xxl-job-admin/` 2. 使用proxy_pass将请求转发后端 3. 设置必要的header以传递原始请求信息(如Host、客户端真实IP等) 4. 注意路径结尾的斜杠问题,避免出现404 配置示例: ``` location /xxl-job-admin/ { # 结尾的斜杠很重要,它会影响URI的传递方式 proxy_pass http://10.11.1.8:8084/xxl-job-admin/; # 传递原始Host头部 proxy_set_header Host $host; # 传递客户端真实IP proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } ``` 注意: - 在`proxy_pass`中,我们使用了后端地址的完整路径(包括`/xxl-job-admin/`),这样Nginx会将`/xxl-job-admin/`之后的路径部分拼接到后端地址上。 - 例如,请求`http://your-domain.com/xxl-job-admin/jobinfo`将被转发到`http://10.11.1.8:8084/xxl-job-admin/jobinfo`。 如果希望将`/xxl-job-admin`(不带末尾斜杠)的请求也重定向到带斜杠的版本,可以添加一个重写规则: ``` location = /xxl-job-admin { return 301 /xxl-job-admin/; } ``` 这样配置后,当用户访问`/xxl-job-admin`时,会被重定向到`/xxl-job-admin/`,然后再由上面的location处理。 另外,确保在配置文件中没有其他location块匹配了相同的路径,以免冲突。 配置完成后,重新加载Nginx使配置生效: ``` nginx -s reload ``` 如果遇到问题,可以检查Nginx错误日志(通常位于`/var/log/nginx/error.log`)以获取更多信息。 引用说明: 1. Nginx官方文档中关于`proxy_pass`指令的说明指出,当`proxy_pass`的URL中包含路径时,请求的URI部分会被替换为指定的URI[^1]。 2. 关于传递原始请求头,这是反向代理的标准做法,以确保后端服务器能够正确识别客户端信息[^2]。 相关问题: 1. Nginx反向代理配置中,`proxy_pass`指令末尾加斜杠和不加斜杠有什么区别? 2. 如何配置Nginx以支持WebSocket的反向代理? 3. Nginx中如何配置负载均衡到多个XXL-JOB管理后台实例?</think>### Nginx 配置转发 XXL-JOB 管理后台请求 以下是完整的 Nginx 配置,实现将 `/xxl-job-admin/` 路径的请求转发到 `http://10.11.1.8:8084/xxl-job-admin/` 并正确传递参数: ```nginx server { listen 80; server_name your-domain.com; # 替换为你的域名或IP # XXL-JOB 管理后台代理配置 location /xxl-job-admin/ { # 核心代理指令 proxy_pass http://10.11.1.8:8084/xxl-job-admin/; # 关键头信息传递配置 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 X-Forwarded-Proto $scheme; # 连接超时设置 proxy_connect_timeout 60s; proxy_read_timeout 600s; proxy_send_timeout 600s; # WebSocket支持 (如果XXL-JOB使用) proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } # 可选:重定向不带斜杠的请求 location = /xxl-job-admin { return 301 /xxl-job-admin/; } } ``` #### 关键配置说明: 1. **路径匹配** `location /xxl-job-admin/` 会匹配所有以该路径开头的请求(包括子路径) 2. **代理传递** `proxy_pass http://10.11.1.8:8084/xxl-job-admin/;` 末尾的斜杠确保 URI 正确拼接 例如: `http://nginx/xxl-job-admin/login` → `http://10.11.1.8:8084/xxl-job-admin/login` 3. **参数传递** - `proxy_set_header` 系列指令确保原始请求信息透传 - `Host` 头保持客户端原始域名 - `X-Forwarded-*` 头传递客户端真实 IP 和协议 4. **WebSocket 支持** 最后两行 `Upgrade` 和 `Connection` 头确保 WebSocket 连接正常工作[^1] #### 验证步骤: 1. 保存配置文件(如 `/etc/nginx/conf.d/xxl-job.conf`) 2. 测试配置语法: ```bash nginx -t ``` 3. 重载配置: ```bash nginx -s reload ``` 4. 访问测试: `http://your-domain.com/xxl-job-admin/` 应显示 XXL-JOB 登录页 #### 常见问题处理: - **404 错误**:检查 `proxy_pass` 末尾斜杠和路径大小写 - **参数丢失**:添加 `proxy_pass_request_headers on;` - **Cookie/Session 问题**:添加: ```nginx proxy_cookie_path /xxl-job-admin/ /; proxy_cookie_domain ~.your-domain.com 10.11.1.8; ``` --- ### 相关问题 1. 如何为 Nginx 反向代理配置 HTTPS 加密? 2. Nginx 负载均衡如何配合 XXL-JOB 集群部署? 3. 如何通过 Nginx 限制访问 XXL-JOB 管理后台的 IP 地址? 4. 代理后出现 502 网关错误可能有哪些原因? 5. 如何配置 Nginx 日志以监控 XXL-JOB 接口的访问情况? [^1]: WebSocket 代理需要特殊头信息处理,详见 Nginx 官方文档
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值