当前位置: 首页 > news >正文

nginx代理请求到内网不同服务器

需求:之前用的是frp做的内网穿透,但是每次电脑断电重启,路由或者端口会冲突,现在使用汉土云盒替换frp。
需要把公网ip映射到任意一台内网服务器上,然后在这台内网服务器上用Nginx做代理即可访问内网其它服务器,如果内网仅一台服务器则不需要代理

需要准备三台云服务器,一台带有公网ip,另外两台不需要公网ip,有内网ip即可,只要这三台的内网ip在同一个网段中。

要在 Ubuntu 上安装 Nginx,可以按照以下步骤进行操作:

1.更新系统软件包列表:

sudo apt update

2.安装 Nginx:

sudo apt install nginx

3.安装完成后,Nginx 服务将会自动启动。可以使用以下命令来检查 Nginx 服务状态

sudo systemctl status nginx

测试:这里使用了两个相同的项目在两台服务器上运行
切换到/etc/nginx/conf.d 创建nginx.conf文件
若使用80端口是需要备案的

server {listen 81;  // 服务器1        server_name test21.zzb97.com;  //有域名的话可以写在这个位置 上面改成80端口location / {proxy_pass http://192.168.1.12:8092;  // 这里代理的是前端项目 使用该服务器的ipproxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header REMOTE-HOST $remote_addr;}location /ps_vin/ {#  反向代理proxy_pass http://192.168.1.12:9872/ps_vin/;  // 这里代理的是后端项目 使用该服务器的ip}
}server {listen 82; // 服务器2location / {proxy_pass http://192.168.1.11:8092;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header REMOTE-HOST $remote_addr;}location /ps_vin/ {#  反向代理proxy_pass http://192.168.1.11:9872/ps_vin/;}
}

服务器2的前端项目的nginx配置文件

user  nginx;
worker_processes  1;
error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;
events {worker_connections  1024;
}
http {include       /etc/nginx/mime.types;default_type  application/octet-stream;log_format  main  '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';access_log  /var/log/nginx/access.log  main;sendfile        on;keepalive_timeout  65;server {listen       8080;server_name  localhost;location / {alias   /app/;index  index.html;
#      try_files $uri $uri/ /index.html;}error_page  404 /40x.html;location = /40x.html {root   /usr/share/nginx/html;}# 后端接口,反向代理location /ps_vin/ {proxy_pass http://36.150.110.203:82/ps_vin/;}}
}

项目的请求url

import axios from "axios";
// import NProgress  from 'nprogress'
// import 'nprogress/nprogress.css'
let baseURL = 'http://36.150.110.203:82/ps_vin/'
if(process.env.NODE_ENV == "development") {baseURL = 'http://172.16.10.8:8008/ps/'
}const request = axios.create({baseURL: baseURL,
})

后端可以直接使用下面url访问

http://36.150.110.203:82/ps_vin/

效果
在这里插入图片描述

http://www.lryc.cn/news/127996.html

相关文章:

  • 【C# 基础精讲】文件读取和写入
  • 设计模式——经典单例
  • 【HarmonyOS】鸿蒙应用获取华为帐号手机号码步骤(API7及以下)
  • webpack相关面试
  • 如何使用ChatGPT创建个性化的健身锻炼计划
  • 人工智能与云计算实训室建设方案
  • 使用 Apache Kafka 和 Go 将数据引入 OpenSearch
  • 2.SpringMvc中Model、ModelMap和ModelAndView使用详解
  • Spark repartition和coalesce的区别
  • 微服务最佳实践,零改造实现 Spring Cloud Apache Dubbo 互通
  • leetcode 力扣刷题 两数/三数/四数之和 哈希表和双指针解题
  • (搜索) 剑指 Offer 12. 矩阵中的路径 ——【Leetcode每日一题】
  • 构建高可用的去中心化微服务集群架构指南
  • Sui主网升级至V1.7.1版本
  • 自然语言处理从入门到应用——LangChain:索引(Indexes)-[基础知识]
  • k8s集群监控方案--node-exporter+prometheus+grafana
  • nginx反向代理流程
  • Java“牵手”根据店铺ID获取淘宝店铺所有商品数据方法,淘宝API实现批量店铺商品数据抓取示例
  • 从0开始yolov8模型目标检测训练
  • 设计模式-抽象工厂模式
  • 如何用Apipost实现sign签名?
  • Hive底层数据存储格式
  • 双向-->带头-->循环链表
  • Opencv4基于C++基础入门笔记:OpenCV环境配置搭建
  • JS基础之实现map方法
  • FPGA应用学习笔记-----复位电路(二)和小结
  • 信捷 XD PLC 16位整数转换为双精度浮点数
  • (二)结构型模式:1、适配器模式(Adapter Pattern)(C++实现示例)
  • 【编程二三事】ES究竟是个啥?
  • 爬虫逆向实战(三)--天某云登录