千家信息网

Nginx反向代理跨域基本配置与常见误区的示例分析

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章将为大家详细讲解有关Nginx反向代理跨域基本配置与常见误区的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Nginx接口服务反向代理基本配置ser
千家信息网最后更新 2026年11月02日Nginx反向代理跨域基本配置与常见误区的示例分析

这篇文章将为大家详细讲解有关Nginx反向代理跨域基本配置与常见误区的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

Nginx接口服务反向代理基本配置

server {  listen 8443; # 监听的端口号  server_name a.test.com; # 服务器名称  client_max_body_size 100m;  # 定义读取客户端请求头的超时时间  ssl on;  ssl_certificate test.pem;  ssl_certificate_key test.key;  ssl_session_timeout 5m;  ssl_protocols SSLv3 TLSv1.2;  ssl_ciphers ECDHE-RSA-AES256-SHA384:AES256-SHA256:RC4:HIGH:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!AESGCM;  ssl_prefer_server_ciphers on;  location / {    root /test-static-app; # 静态资源目录    index index.html index.htm;    try_files $uri $uri/ /index.html; # 动态解析目录,配合vue的history模式  }}

基本配置实现了页面及静态服务器的基本功能,并可以实现使用vue的history模式时的路由解析。进一步的,为了实现向接口服务器的统一转发,我们需要和后端开发人员规定接口名的前缀,比如所有接口的相对路径都以api开头,此时我们可以添加如下配置(和上一个location平级),

...location /api {  proxy_pass https://b.test.com; # 设置代理服务器的协议和地址  proxy_cookie_domain b.test.com a.test.com; # 修改cookie,针对request和response互相写入cookie}    ...

其中主要依赖proxy_pass,实现将a.test.com下的/api/x接口转发到了b.test.com下面,这个过程大致如下

cookie的交互主要就是proxy_cookie_domain,加上下面这段

proxy_cookie_domain b.test.com a.test.com;

这个实现了,a.test.com和b.test.com域名之间cookie的传递与回写。

如果用node来模拟一下的话,大致如下

module.exports = (router) => { router.get('/api/index/getCmsInfo', async function (ctx, next) {  // 接口转发  let result = await superagent.post('https://b.test.com/api/card/home').set(browserMsg)  // 获取返回的set-cookie,并设置header  let setCookie = result.headers['set-cookie']  if (setCookie) {    ctx.response.header['set-cookie'] = setCookie  }  // 返回  ctx.response.body={    success: true,    result: result.body   } })}

综上nginx反向代理的本质其实就是接口服务的转发与header的处理,仔细想想也就容易理解了。

常见误区

1、无用的ACA-Header ?

网上很多的nginx跨域设置里面都加了跨域header设置相关的内容,比如

add_header 'Access-Control-Allow-Origin' '*';add_header 'Access-Control-Allow-Credentials' "true"; add_header Access-Control-Allow-Headers X-Requested-With;

想想上面的原理,各位看官觉得这个还有用么?ACA(Access-Control-Allow-)系列的header本身是为了cors中做协商跨域而配置的,在这里配这个纯属脱裤子放屁多此一举。

2、proxy_pass 域名带不带'斜杠/' ?

同样的,在网上看到了有的网友在配置proxy_pass的时候,会在后面加一个斜杠,如下,然后说报错啦,找不到接口啦~咋整啊~

...location /api {  #proxy_pass https://b.test.com;  proxy_pass https://b.test.com/;}    ...

看到这个我们来想一想哈,proxy_pass的作用是抓发,加了斜杠意味着所有的/api请求都会转发到根目录下,也就是说 /api 会被 / 替代,这个时候接口路径就变了,少了一层/api。而不加斜杠的时候呢?这代表着转发到b.test.com 的域名下,/api的路径不会丢失。

针对这种情况,如果后端接口统一有了规定前缀,比如/api,那你这里就不要配置斜杠了。另一种情况,后端接口shit一样,没有统一前缀,这边又要区分,那就在前端所有接口都加一个统一前缀,比如/api,然后通过加斜杠来替换掉好了~

关于"Nginx反向代理跨域基本配置与常见误区的示例分析"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

接口 配置 斜杠 服务 代理 基本配置 前缀 服务器 统一 常见 误区 域名 时候 篇文章 路径 示例 分析 内容 就是 情况 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技公司 小米移动互联网科技园 互联网佳科技有限公司 湖南永感互联网科技有限公司 互联网科技作文 互联网科技视频 互联网科技英文翻译 一五八零互联网科技 佰商互联网科技有限公司 科技类的互联网平台 西藏七维空间互联网科技有限公司 恒银科技与互联网金融 银川新华互联网科技职业技术培训学校图片 来此购互联网科技有限公司 互联网金融中的现代科技 恒生互联网科技指数跳水 互联网科技公司营业执照怎么办理 济南小医互联网科技有限公司招聘 福州德业互联网科技 株洲百竞科技的互联网营销顾问 互联网是第几次科技革命的成果 撒么互联网科技公司 花神(南京)互联网科技有限公司 广州市恰铎互联网科技有限公司 民营互联网公司国防科技 西安小鹰速贷互联网科技有限公司 中天科技中国工业互联网 扫呗互联网科技有限公司 科技互联网行业投资研究 亚光科技低轨卫星互联网
0