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

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

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

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

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

javascript 复制代码
sudo apt update

2.安装 Nginx:

javascript 复制代码
sudo apt install nginx

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

javascript 复制代码
sudo systemctl status nginx

测试:这里使用了两个相同的项目在两台服务器上运行

切换到/etc/nginx/conf.d 创建nginx.conf文件

若使用80端口是需要备案的

javascript 复制代码
server {
	
    listen 81;  // 服务器1        
    server_name test21.zzb97.com;  //有域名的话可以写在这个位置 上面改成80端口

    location / {
        proxy_pass http://192.168.1.12:8092;  // 这里代理的是前端项目 使用该服务器的ip
        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.12:9872/ps_vin/;  // 这里代理的是后端项目 使用该服务器的ip
    }
}

server {
    listen 82; // 服务器2


    location / {
        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配置文件

javascript 复制代码
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

javascript 复制代码
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访问

javascript 复制代码
http://36.150.110.203:82/ps_vin/

效果

相关推荐
塔能物联运维3 分钟前
物联网运维中的自适应DNS解析优化与动态负载均衡技术
运维·物联网·负载均衡
wheeldown17 分钟前
【Linux】Linux内存管理与线程控制核心解析
linux·运维·服务器
努力努力再努力wz1 小时前
【Linux进阶系列】:线程(下)
linux·运维·服务器·c语言·数据结构·c++·算法
KV_T1 小时前
centos运维常用命令
linux·运维·centos
todoitbo1 小时前
使用n8n搭建服务器监控系统:从Webhook到Telegram告警的完整实现
运维·服务器·数据库·ai·向量数据库·流处理·n8n
dessler1 小时前
MYSQL-主键(Primary Key)
linux·运维·mysql
全栈小51 小时前
【C#】从一次异步锁逐渐展开浅谈服务器架构解决重复编码问题,我与AI的一次深度讨论得出的一些解决方案
服务器·架构·c#
安丘贾队长1 小时前
json啊啊啊啊啊啊啊啊啊
运维
weixin_537765801 小时前
【负载均衡】LVS原理与配置
服务器·负载均衡·lvs
我什么都学不会1 小时前
DNS主从服务器练习
linux·运维·服务器