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/

效果

相关推荐
zkmall1 小时前
企业电商解决方案哪家好?ZKmall模块商城全渠道支持 + 定制化服务更省心
大数据·运维·重构·架构·开源
云资源服务商3 小时前
解锁阿里云日志服务SLS:云时代的日志管理利器
服务器·阿里云·云计算
绝不偷吃3 小时前
ELK日志分析系统
运维·elk·jenkins
朱包林4 小时前
day45-nginx复杂跳转与https
linux·运维·服务器·网络·云计算
孙克旭_4 小时前
day045-nginx跳转功能补充与https
linux·运维·nginx·https
孞㐑¥5 小时前
Linux之Socket 编程 UDP
linux·服务器·c++·经验分享·笔记·网络协议·udp
Hacker_Oldv6 小时前
软件测试(功能、工具、接口、性能、自动化、测开)详解
运维·自动化
Java樱木6 小时前
使用字节Trae + MCP,UI 到网页自动化。
运维·自动化
柳鲲鹏6 小时前
WINDOWS最快布署WEB服务器:apache2
服务器·前端·windows
无敌暴龙兽z8 小时前
离线环境安装elk及设置密码认证
运维·elk