【用homebrew配置nginx+配置前端项目与后端联调】Macbook M1(附一些homebrew操作)

文章目录

1.安装nginx

bash 复制代码
brew install nginx

测试是否安装成功

bash 复制代码
nginx -v

2.报错

我的报错了,我需要处理

bash 复制代码
Symbol not found: _SSL_set_quic_tls_cbs

新安装的 nginx (1.29.2) 是一个很新的版本,它需要一个同样很新的 openssl@3 依赖库(因为它需要一个与 QUIC/HTTP/3 相关的函数 _SSL_set_quic_tls_cbs)。

但是,系统上已安装的 openssl@3 (3.4.1) 版本稍旧,还没有这个函数。

当运行 nginx -v 时,动态链接器 (dyld) 尝试加载 Nginx,Nginx 说"我需要那个函数",但 OpenSSL 库里没有,于是程序就 abort (中止) 了。

这通常发生在 install 一个新包之前,没有 update Homebrew 的包列表。

3.解决办法

升级openssl@3库

这里比较极端,直接升级了所有包

(1)更新 Homebrew 的包列表 运行这个命令来获取所有包的最新版本信息:

bash 复制代码
brew update

(2)升级你已安装的所有包 这个命令会将你本地过时的包(包括 openssl@3)升级到最新版本:

bash 复制代码
brew upgrade

其实到这一步升级完成之后,nginx就不会报错了。但是可以清理一下homebrew包

bash 复制代码
brew doctor

看看有什么链接的问题,可能会提供一些解决办法,或者把输出粘贴给ai问一下

看看有哪些文件可以被删除。

bash 复制代码
brew cleanup --dry-run  

确定删除执行brew cleanup 就可以了,应该能节省出一些空间

4.配置前端项目+nginx代理转发

目前是把前端项目放在了默认目录/opt/homebrew/var/www下,但是后续肯定不能一直放这里。

要是删除的话得把11.22+12.15这几个文件都删了

然后是配置proxy_pass。我的前端用的是8080端口(默认的),后端用的是8081端口(在yml文件里配置的,本来默认也是8080,但是会冲突,加上后端端口比较好改),这里要从前端监听的8080转发到后端执行的8081,所以需要配置反向代理。

配置文件如下:

bash 复制代码
nano /opt/homebrew/etc/nginx/nginx.conf

因为后端请求是http://localhost:8081/api/depts,所以要在nginx的配置文件中加上转发路径

bash 复制代码
location /api/ {
    proxy_pass http://localhost:8081/;
   }

注意末尾斜杠和分号,注意前面location api的写法。

nginx根据这个代码找到把请求转发到这里,后端服务器根据请求再进行解析。

5.启动nginx,前后端联调

bash 复制代码
brew services start nginx   

关闭的话把start改成stop即可。

后端先启动,保证数据库连通,然后启动nginx。之后在浏览器输入:http://localhost:8080,浏览器向 8080 端口发起 HTTP GET 请求,Nginx(监听 8080 端口)接收请求,再根据配置文件进行下一步处理。比如本项目中,nginx发现匹配location /api/ → 代理转发到 8081端口。

sql 复制代码
前端 JavaScript 代码:
fetch('/api/depts')
  ↓
浏览器发起 HTTP 请求到 8080 端口
  ↓
GET /api/depts HTTP/1.1
Host: localhost:8080

输入8080这段请求之后,应该就能看到前端页面了,点击对应api功能的那个界面,应该就是发送请求,能根据后端所写代码进行处理了。

相关推荐
wangruofeng14 分钟前
AI Models 1.1.0 发布,查大模型价格、对比模型和找 API 地址
前端·aigc·ai编程
wangruofeng17 分钟前
给前端开发者的 100 个设计参考网站
前端·设计
星栈3 小时前
视频即代码,Remotion 能做什么、不能做什么
前端·音视频开发
广州华水科技3 小时前
单北斗GNSS位移监测系统的应用与技术解析
前端
用户47949283569154 小时前
从一句话或代码仓到可交互 HTML:开源 Agent 画图技能 Archify v3.2 实测与选型边界
前端·后端·面试
风骏时光牛马6 小时前
生成一个AI多模态标题,仅输出一条标题,无额外文字、问句、备选、配图、文案等任何附加内容,不需要其他的任务服务 只要标题。
前端
Decay__6 小时前
VMware 安装 SQL Server 双节点 AlwaysOn 可用性组教程 —— WSFC、AG 与侦听器完整部署(系列核心篇)
运维·数据库·sql·mysql·架构
测试界的小码农7 小时前
【Linux 命令实战(06):Linux 文件权限管理,掌握 chmod、chown、chgrp】
linux·运维·服务器
wangruofeng7 小时前
从 GIF 到 AVIF:网页图片格式演进与 2026 年选型指南
前端·架构
清晨Coding8 小时前
为什么用 React Developer Tools 查看组件树这么乱?
前端·react.js