nginx配置参考(/etc/nginx/sites-available路径下创建配置文件)

server {listen 80;  # 监听80端口server_name ip;  # 你的域名或IPlocation / {root /var/www/test_page/;index index.html;      # 默认文件try_files $uri $uri/ /index.html;  # 单页应用的路由支持}# 后端接口代理location /api/ {proxy_pass http://127.0.0.1:8080;  # 注意8080后不要加斜杠/proxy_http_version 1.1;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;add_header Access-Control-Allow-Origin *;add_header Access-Control-Allow-Methods "GET, POST, OPTIONS, PUT, DELETE";add_header Access-Control-Allow-Headers "Content-Type, Authorization";if ($request_method = 'OPTIONS') {add_header Access-Control-Allow-Origin *;add_header Access-Control-Allow-Methods "GET, POST, OPTIONS, PUT, DELETE";add_header Access-Control-Allow-Headers "Content-Type, Authorization";return 204;}}}

特别注意:proxy_pass的url后边 带"/"会把 /system 给替换掉,也就是实际会直接访问http://127.0.0.1:8080/后的接口,而不是http://127.0.0.1:8080/system后的接口

golang后端代码示例

package mainimport ("encoding/json""log""net/http"
)type Response struct {Message string `json:"message"`
}func main() {// 创建一个路由处理器router := http.NewServeMux()router.HandleFunc("/api/hello", func(w http.ResponseWriter, r *http.Request) {w.Header().Set("Content-Type", "application/json")response := Response{Message: "Hello from Golang backend!"}json.NewEncoder(w).Encode(response)})// 直接使用路由处理器启动服务器log.Println("Starting server on :8080")if err := http.ListenAndServe(":8080", router); err != nil {log.Fatalf("Failed to start server: %v", err)}
}

前端代码示例

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Frontend Demo</title>
</head>
<body><h1>Frontend Demo</h1><button id="fetchButton">Fetch Message from Backend</button><p id="message"></p><script>document.getElementById('fetchButton').addEventListener('click', function() {fetch('/api/hello')  // 调用后端接口.then(response => {if (!response.ok) {throw new Error('Network response was not ok ' + response.statusText);}return response.json();  // 解析 JSON 响应}).then(data => {document.getElementById('message').innerText = data.message;  // 显示消息}).catch(error => {console.error('Error:', error);document.getElementById('message').innerText = 'Failed to fetch message: ' + error.message;});});</script>
</body>
</html>

测试

点击按钮出现Hello from Golang backend!表示代理成功
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/91969.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/91969.shtml
英文地址,请注明出处:http://en.pswp.cn/web/91969.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【秋招笔试】2025.08.03虾皮秋招笔试-第二题

📌 点击直达笔试专栏 👉《大厂笔试突围》 💻 春秋招笔试突围在线OJ 👉 笔试突围在线刷题 bishipass.com 02. 城市规划的连通网络 问题描述 A先生是一名城市规划师,他负责设计一个智能城市的通信网络。城市被划分为一个 n m n \times m n

JVM 01 运行区域

Java 虚拟机 跨平台 虚拟机隐藏平台差异&#xff0c;解决不同平台代码运行结果不一致问题&#xff0c;实现Write Once, Run Anywhere&#xff0c;实现用户代码跨平台。它本身是一个操作系统上的应用程序&#xff0c;将字节码文件翻译成特定机器的机器码。 Java 虚拟机 运行时内…

[学习笔记-AI基础篇]03_Transfommer与GPT架构学习

介绍GPT-1,GPT-2,GPT-3,GPT-4 GPT-1 介绍2018年6月,OpenAI公司发表了论文"|mproving Language Understanding by Generative Pre-training”《用生成式预训练提高模型的语言理解力》,推出了具有1.17亿个参数的GPT-1(Generative Pre-trainingTransformers,生成式预训练变换…

HPNetworkCheckControl.dll HPEnvRes.dll hpcasl.dll HpBwcDecode.dll HpBlogic.dll hpbhilxres.dll

在使用电脑系统时经常会出现丢失找不到某些文件的情况&#xff0c;由于很多常用软件都是采用 Microsoft Visual Studio 编写的&#xff0c;所以这类软件的运行需要依赖微软Visual C运行库&#xff0c;比如像 QQ、迅雷、Adobe 软件等等&#xff0c;如果没有安装VC运行库或者安装…

飞算 JavaAI:给需求分析装上 “智能大脑“

在软件开发的漫长旅途中&#xff0c;需求分析是至关重要的起点&#xff0c;其精准度与效率直接关乎整个项目的成败。传统的需求分析依赖人工梳理&#xff0c;不仅耗费大量时间与精力&#xff0c;还时常出现理解偏差和逻辑漏洞。而飞算 JavaAI 的横空出世&#xff0c;犹如为需求…

javacc学习笔记 01、JavaCC本地安装与测试

文章目录前言本章节源码一、什么是javacc二、Mac环境安装javacc三、javacc测试案例1、编写词法描述文件2、借助javacc命令来处理demo01.jj文件3、idea配置输入参数&#xff0c;运行Adder类方法四、javacc文件编译类描述4.1、demo1.jj文件生成内容描述&解析转换过程4.2、解析…

Java基础-stream流的使用

目录 案例要求&#xff1a; 实现思路&#xff1a; 代码&#xff1a; 总结&#xff1a; 案例要求&#xff1a; 实现思路&#xff1a; 创建一个包含学生姓名(String)和选择地址变量(集合)的实体类,然后将题干数据封装到集合,然后进行stream操作 代码&#xff1a; import ja…

virtualbox+UBuntu20.04+内存磁盘扩容

写在前面&#xff1a;1.由于我写博客都是偏向个人笔记性质的&#xff0c;所以写的比较粗糙&#xff0c;如果有疑问私信评论我即可。2.这篇博客的解决方法应该算是“全网”首发吧&#xff0c;因为我为了磁盘扩容真的找了好多相关资料&#xff0c;但是基本都没有用。如果你也是找…

关于对Spring的理解,以及对spring中的两大核心概念AOP和IOC的理解

我们先来说一说Spring&#xff0c;从总体上Spring就是一个基础框架&#xff0c;同时Spring给我们提供了一个Bean容器&#xff0c;用来装载和管理具体的Bean对象&#xff0c;你像我们之前创建对象的时候就是通过new关键字来实现的&#xff0c;但是现在我们只需要告诉容器有哪些对…

Next Terminal 实战:内网无密码安全登录

本文首发于 Anyeの小站&#xff0c;点击阅读原文体验更加。 前言 在日常的 HomeLab 或小型私有云环境中&#xff0c;我们常常通过反向代理&#xff08;如 Nginx、Caddy 等&#xff09;将内网服务暴露到公网&#xff0c;方便远程访问。然而&#xff0c;一旦端口映射开启、公网…

WebSocket断线重连机制:保障实时通信的高可用性

一、为什么需要断线重连&#xff1f;WebSocket虽提供全双工通信能力&#xff0c;但实际环境中连接稳定性受多重威胁&#xff1a;​​网络层波动​​&#xff1a;Wi-Fi切换、4G/5G信号抖动&#xff08;触发onclose事件&#xff09;​​服务端异常​​&#xff1a;服务器宕机、主…

低空三维多物理场耦合风洞试验,保证飞行器的性能安全是低空飞行的底线,是低空经济发展的基础

风墙\风矩阵开发背景&#xff1a;2024年被称为中国低空经济产业发展元年&#xff0c;国家发改委提出“无安全、不低空”原则&#xff0c;要求低空经济产业在技术研发、适航认证、运营管理各环节优先保障安全。目前无人机及其他低空飞行器技术已深度融入军事、民用与工业领域&am…

中文基于Qwen3-235B-2507蒸馏数据集的操作

中文基于Qwen3-235B-2507蒸馏数据集的操作 flyfish 方式1 from datasets import load_dataset from transformers import AutoTokenizer# -------------------------- 配置参数 -------------------------- TOKENIZER_PATH "/media/models/models/Qwen/Qwen3-8B/" #…

论文阅读笔记:《Dataset Distillation by Matching Training Trajectories》

论文阅读笔记&#xff1a;《Dataset Distillation by Matching Training Trajectories》1.动机与背景2.核心方法&#xff1a;轨迹匹配&#xff08;Trajectory Matching&#xff09;3.实验与效果4.个人思考与启发主体代码算法逻辑总结一句话总结&#xff1a; 这篇论文通过让合成…

STM32标准库的工程创建

一.所需文件说明 1.启动文件startup_xxxx.s 作用&#xff1a;初始化堆栈指针、复位向量、中断向量表&#xff0c;执行 SystemInit() 后跳转到 main()。 位置&#xff1a;Libraries/CMSIS/Device/ST/STM32Fxx/Source/Templates/arm/ 文件名&#xff1a; startup_stm32f10x_l…

k8s ceph sc 设置文件系统格式化参数

前言 默认的 sc 文件系统 inode 太少,对于小文件场景,往往会出现容量没满,inode 已经用尽的情况,本文说明如何设置 inode。 说明 本文使用的是 rook-ceph 部署的 ceph 作为存储后端。 xfs 文件系统 sc 创建带格式化参数的 xfs 文件系统的 sc allowVolumeExpansion: t…

关于Npm和Nvm的用法

npm是个什么东西 npm是什么 node package managernodejs包管理工具处理复杂的包的管理的问题那么使用npm以后就不需要从前端引入相应的代码和文件等。 npm相关的命令 查看版本npm -v 更新npm install npm5.4.0 更新到最新版本npm install npmlatest 初始化项目 npm ini…

MyBatis高效查询:简化JDBC开发实战

Mybatis MyBatis 是一款优秀持久层(DAO)框架&#xff0c;用于简化 JDBC 开发 &#xff0c;原是 Apache 开源项目 iBatis&#xff0c;经历迁移改名&#xff0c;2010 年从 Apache 迁到 Google Code 并改名&#xff0c;2013 年 11 月迁至 GitHub&#xff0c;官网为 https://mybati…

系统信息及进程管理命令

系统信息及进程管理 一、系统信息查看 常用命令&#xff1a;uname、hostnam、hostnamectl、uptime、df、du、free、lscpu 1、uname (1)、命令简介 uname 是一个在 Unix 和类 Unix 系统&#xff08;如 Linux、macOS&#xff09;中常用的命令行工具&#xff0c;用于显示系统信息。…

【Z字形变换】

代码思路分析&#xff1a;Z 字形变换 1. 边界情况处理 if (r 1 || r > n) return s;r 1&#xff1a;只有一行&#xff0c;直接返回原字符串&#xff08;无需变换&#xff09;。r > n&#xff1a;行数大于等于字符串长度&#xff0c;每行只有一个字符&#xff0c;直接返…