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

Nginx反向代理

配置步骤

  1. 确保内网服务可访问
    在Nginx服务器上测试内网服务是否可达(如 curl http://内网IP:端口)。

  2. 修改Nginx配置文件
    编辑Nginx配置文件(通常位于 /etc/nginx/nginx.conf 或 /etc/nginx/conf.d/ 目录下)。

  3. 添加反向代理配置
    示例配置(将公网IP的80端口代理到内网服务 192.168.1.100:8080):

    server {listen 80;  # 监听公网IP的80端口(HTTP)server_name your-public-ip.com;  # 替换为公网IP或域名location / {proxy_pass http://192.168.1.100:8080;  # 内网服务地址proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}
    }
  4. 保存并测试配置

    sudo nginx -t        # 检查配置语法
    sudo systemctl reload nginx  # 重启Nginx生效

关键参数说明

配置项作用
listen 80;监听公网IP的80端口(HTTP),如需HTTPS改用 listen 443 ssl;
server_name填写公网IP或域名(若无私用域名可直接用 _ 或省略)
proxy_pass核心参数:指向内网服务的地址(格式:http://内网IP:端口
proxy_set_header传递客户端真实IP和Host信息,避免内网服务丢失来源信息

高级场景配置

1. 通过域名区分多个内网服务
server {listen 80;server_name service1.your-domain.com;  # 域名1location / {proxy_pass http://192.168.1.101:8000;}
}server {listen 80;server_name service2.your-domain.com;  # 域名2location / {proxy_pass http://192.168.1.102:9000;}
}
2. 启用HTTPS加密
server {listen 443 ssl;server_name your-domain.com;ssl_certificate /path/to/cert.pem;ssl_certificate_key /path/to/privkey.pem;location / {proxy_pass http://192.168.1.100:8080;proxy_set_header Host $host;proxy_set_header X-Forwarded-Proto $scheme;  # 告诉内网服务是HTTPS}
}
3. 路径转发(非根路径)
location /api/ {proxy_pass http://192.168.1.100:3000/;  # 注意结尾的斜杠(/)会移除/api前缀
}

网络与安全设置

  1. 防火墙开放端口

    sudo ufw allow 80/tcp    # 开放HTTP端口
    sudo ufw allow 443/tcp   # 开放HTTPS端口
  2. 路由器端口转发(如果Nginx不在公网)
    将公网IP的端口(如80)转发到运行Nginx的内网服务器IP和端口。

  3. 安全建议

    • 使用HTTPS加密流量(免费证书可通过Let's Encrypt获取)。

    • 限制访问IP:Nginx配置中通过 allow/deny 控制来源IP。

    • 内网服务本身配置防火墙,仅允许Nginx服务器访问。


验证访问

通过公网地址测试访问:

curl http://公网IP       # 或浏览器访问

若返回内网服务的响应内容,则配置成功。

💡 提示:若遇到502错误,检查内网服务是否运行、Nginx能否访问内网IP、内网防火墙是否放行Nginx服务器的IP。

相关文章:

  • (七)【Linux进程的创建、终止和等待】
  • C语言基础(09)【数组的概念 与一维数组】
  • 【Linux】shell的条件判断
  • linux信号详解
  • 用Python实现一个简单的远程桌面服务端和客户端
  • LCA(最近公共祖先)与树上差分
  • debian12.9或ubuntu,vagrant离线安装插件vagrant-libvirt,20250601
  • Java流【全】
  • 【计网】第六章(网络层)习题测试
  • Cesium快速入门到精通系列教程三:添加物体与3D建筑物
  • linux系统中防火墙的操作
  • 进阶日记(一)大模型的本地部署与运行
  • vue3常用组件有哪些
  • BFS入门刷题
  • STM32——CAN总线
  • 飞牛fnNAS存储空间模式详解
  • P4549 【模板】裴蜀定理
  • Linux --进程状态
  • 利用多进程定时播放,关闭音乐播放器
  • 2025 年 AI 技能的全景解析
  • 软膜做网站有用吗/百度有人工客服吗
  • 新手如何做网站维护/如何进行网站性能优化?
  • 做 理财网站/手机百度极速版
  • 如何做木工雕刻机网站/搜索引擎优化的核心是
  • 网站源文件/泰州seo公司
  • 四川省成都市疫情动态/魔贝课凡seo课程好吗