详解如何设置Nginx实现内外网端口映射

 更新时间:2024年10月22日 10:41:49   作者:间彧  
在 Nginx 中实现内外网端口映射是一种常见的做法,本文详细介绍如何设置 Nginx 实现内外网端口映射,有需要的小伙伴可以跟随小编一起学习一下

在 Nginx 中实现内外网端口映射是一种常见的做法,通常用于将内部网络中的服务通过 Nginx 反向代理到外部网络,使外部用户能够访问这些服务。下面将详细介绍如何设置 Nginx 实现内外网端口映射。

环境准备

假设你有以下环境:

  • 内网服务运行在 192.168.1.108080 端口
  • 外网 Nginx 服务器的 IP 地址为 203.0.113.1
  • 需要将外网访问 203.0.113.180 端口的请求映射到内网的 8080 端口

1. 安装 Nginx

如果尚未安装 Nginx,可以使用以下命令进行安装(以 Ubuntu 为例):

sudo apt update
sudo apt install nginx

2. 配置 Nginx 端口映射

编辑 Nginx 配置文件,一般可以在 /etc/nginx/sites-available/default/etc/nginx/nginx.conf 中进行配置。

示例配置

在 Nginx 配置文件中添加以下内容:

server {
    listen 80;  # 监听外网请求的 80 端口
    server_name 203.0.113.1;  # 外网服务器 IP 或域名

    location / {  # 所有请求都会匹配这个 location
        proxy_pass http://192.168.1.10:8080;  # 将请求转发到内网服务
        proxy_set_header Host $host;  # 保留原始主机头
        proxy_set_header X-Real-IP $remote_addr;  # 传递真实客户端 IP
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  # 传递代理链中的所有 IP
        proxy_set_header X-Forwarded-Proto $scheme;  # 传递请求协议
    }
}

3. 说明配置项

  • listen 80;: 监听外网请求的 80 端口。
  • server_name 203.0.113.1;: 指定处理的外网 IP 地址或域名。
  • location /: 该配置处理所有传入请求。
  • proxy_pass http://192.168.1.10:8080;: 将请求转发到内网服务。
  • proxy_set_header: 这些指令用于保留和转发必要的请求头,以确保后端服务获取到原始请求的信息。

4. 测试和重启 Nginx

在修改配置文件后,使用以下命令测试 Nginx 配置的正确性:

sudo nginx -t

如果没有错误,重启 Nginx 使配置生效:

sudo systemctl restart nginx

5. 允许外部访问 Nginx

确保防火墙或安全组允许外部访问 Nginx 服务器的 80 端口。以 UFW 为例,可以使用以下命令:

sudo ufw allow 'Nginx Full'

6. 验证端口映射

在配置完成后,您可以通过 curl 或浏览器测试接口是否能够正常访问。例如:

curl http://203.0.113.1/

如果一切配置正确,您应该能够通过外网地址访问内网接口。

7. 其他配置选项

HTTPS 支持

如果希望通过 HTTPS 提供服务,可以使用 Let's Encrypt 免费证书。安装 Certbot 并获取证书:

sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d yourdomain.com  # 将 yourdomain.com 替换为您的域名

配置 HTTPS 示例

server {
    listen 80;
    server_name yourdomain.com;

    # 强制重定向到 HTTPS
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl;  # 监听 HTTPS
    server_name yourdomain.com;

    ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;  # SSL 证书路径
    ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;  # SSL 密钥路径

    location / {
        proxy_pass http://192.168.1.10: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;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

8. 总结

通过以上步骤,您可以使用 Nginx 实现内外网的端口映射。这种配置可以有效保护内网服务,同时允许外部用户安全地访问这些服务。根据需要,您可以进一步调整配置以满足特定的业务需求。

到此这篇关于详解如何设置Nginx实现内外网端口映射的文章就介绍到这了,更多相关Nginx内外网端口映射内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • nginx部署.net core站点的方法

    nginx部署.net core站点的方法

    这篇文章主要介绍了nginx部署.net core站点的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-07-07
  • Nginx网站服务过程详解

    Nginx网站服务过程详解

    Nginx是一款高性能、异步非阻塞工作模式、轻量级Web服务软件,这篇文章主要介绍了Nginx网站服务的相关知识,需要的朋友可以参考下
    2023-06-06
  • Laravel的Nginx重写规则实例代码

    Laravel的Nginx重写规则实例代码

    这篇文章主要介绍了Laravel的Nginx重写规则实例代码,需要的朋友可以参考下
    2017-09-09
  • NGINX中浏览器的盗链与防止被盗的实现

    NGINX中浏览器的盗链与防止被盗的实现

    本文介绍在局域网内实现盗链与防盗链的配置方法,通过Nginx设置valid_referers限制资源访问来源,非法引用返回403禁止访问,感兴趣的可以了解一下
    2025-07-07
  • 为Node.js程序配置使用Nginx服务器的简明教程

    为Node.js程序配置使用Nginx服务器的简明教程

    这篇文章主要介绍了为Node.js程序配置使用Nginx服务器的简明教程,Nginx与Node自带的服务器一样都拥有非阻塞的高性能,需要的朋友可以参考下
    2016-01-01
  • Nginx纯配置实现日志实时上报的思路与方法

    Nginx纯配置实现日志实时上报的思路与方法

    在很多时候我们都需要在页面上实时查看nginx的日志输出,所以下面这篇文章主要给大家介绍了关于Nginx纯配置实现日志实时上报的思路与方法,需要的朋友可以参考下
    2021-12-12
  • Nginx搭建高效的静态图片服务器的方法步骤

    Nginx搭建高效的静态图片服务器的方法步骤

    高效地管理和分发静态资源是至关重要的,本文主要介绍了Nginx搭建高效的静态图片服务器的方法步骤,具有一定的参考价值,感兴趣的可以了解一下
    2024-05-05
  • Nginx 平滑升级的实现(拒绝服务漏洞)

    Nginx 平滑升级的实现(拒绝服务漏洞)

    本文主要介绍了Nginx 平滑升级的实现(拒绝服务漏洞),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-02-02
  • Linux上搭载Nginx负载均衡配置使用案例详解

    Linux上搭载Nginx负载均衡配置使用案例详解

    这篇文章主要介绍了Linux上搭载Nginx负载均衡配置使用案例详解,针对此情况而衍生出来的一种廉价有效透明的方法以扩展现有网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性的技术就是负载均衡(Load Balance),需要的朋友可以参考下
    2022-01-01
  • 分布式限流之Nginx层限流方式

    分布式限流之Nginx层限流方式

    这篇文章主要介绍了分布式限流之Nginx层限流方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-08-08

最新评论