nginx进行端口转发的实现

目录
  • 使用场景
  • 解决方案

使用场景

1、内网有一台服务器的端口需要映射到外网(举例外网的服务器申请了一个域名,然后给该域名做了一个nignx的配置,然后配置中需要访问一个内网的http的服务)

2、内网服务器没有外网访问权限,全部内网中只有一台服务器有外网权限,可用于曲线救国版内网穿透

3、虚拟机只有NAT网,且虚拟机只配备了内网localhost转发到宿主机localhost,此时想外网或者其他内网(非宿主机)想访问虚拟机端口

4、将代理机作为堡垒机(跳板机),用于防止内部系统被人随意访问,此时堡垒机配置端口转发,通过堡垒机访问内部系统。

解决方案

nginx配置文件位置参考

  • Linux:在/etc/nginx/conf.d/中,修改default.conf文件
  • Windows:在 nginx安装目录\Nginx\conf中,修改nginx.conf

注意原本的nginx.conf中没有stream模块(据说v1.8.x以后的版本才有,我的是v1.5.11就没有),需要自行添加。且它的层级和http模块是同级的

# 编译nginx的时候要添加stream模块  ./configure –with-stream
# 这个模块实现了网络层和传输层的的转发、代理、负载均衡等
 
# stream与http配置同级
stream {
   server {
       listen 3306;
       proxy_pass 192.168.8.168:3306;
       # 有了这个server配置,你就可以通过代理机ip+3306端口访问内网的mysql库了
   }
 
   server {
      listen 8080;
      proxy_pass 192.168.8.168:8080;
      # 有了这个配置,你就可以直接访问代理机ip+8080端口,访问你的内网web服务了
  }
  # 还可以设置指定的客户端IP访问(白名单设置)
  # 自己百度更多功能吧
}
 
#直接复制可能有问题,几行代码就自己打吧

到此这篇关于nginx进行端口转发的实现的文章就介绍到这了,更多相关nginx 端口转发内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • nginx实现数据库端口转发

    目录 1.mysql为例 2.完整配置如下 出于数据安全性考虑,正常情况下,网站或者项目的数据库一般都是禁止外网访问,或者只允许部分主机访问.那么,如何才能不修改这类权限的前提下,让其他被禁止访问的主机也能访问这个数据库呢.这时,Nginx的作用就体现出来了. 1.mysql为例 oracle.sqlserver等数据库配置和下面配置一样,只是数据库的端口不一样而已需要注意的是这个配置要写在http外边 #使用nginx做数据库端口转发 stream { upstream sql { # 配置数

  • 使用Docker安装Nginx并配置端口转发问题及解决方法

    使用docker安装并运行nginx命令: docker run --name=nginx -p 80:80 -d docker.io/nginx 使用命令: docker exec -it nginx /bin/bash 进入容器可查看到几个重要的文件 配置文件:nginx.conf 在 /etc/nginx/nginx.conf 日志文件: /var/log/nginx/access.log /var/log/nginx/error.log 使用cat命令打开nginx.conf root@

  • Nginx服务器中配置非80端口的端口转发方法详解

    nginx可以很方便的配置成反向代理服务器: server { listen 80; server_name localhost; location / { proxy_pass http://x.x.x.x:9500; proxy_set_header Host $host:80; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy

  • Mac中使用Nginx实现80端口转发8080端口

    由于项目本身的原因,开发必须使用80端口实现,而在Unix内核中非Root用户无法直接使用1024以下的端口,最初作者找到了pfctl的方式实现80端口转发到8080端口实现访问,经过亲测出现了最为严重的问题,按照当时的方法配置好之后发现本机Mac通过localhost/<项目名>和127.0.0.1/<项目名>可以访问,此时很是兴奋,但出现了最根本的问题,那就是同局域网内其他机器通过访问IP地址/<项目名>(例如:IP地址是192.168.0.106,那么其他机器访问

  • 使用Nginx实现端口转发TCP代理的实现示例

    目录 需求产生背景 为什么要使用Nginx实现 使用Nginx实现端口转发 安装依赖 下载并安装 启动并检查服务是否正常 需求产生背景 最近同事在测试和生产环境中分别部署了一套应用,由于应用只能集成LDAP,而我们公司使用的是AD,于是我搭建了一个OpenLDAP服务,账号先通过lsc从AD同步到OpenLDAP,然后使用saslauthd传递身份验证到AD.在测试环境中我们的应用能够连接LDAP登录,但是在生产环境中却无法访问到OpenLDAP服务器,我不想重复的在生产环境重新安装维护一套Op

  • nginx进行端口转发的实现

    目录 使用场景 解决方案 使用场景 1.内网有一台服务器的端口需要映射到外网(举例外网的服务器申请了一个域名,然后给该域名做了一个nignx的配置,然后配置中需要访问一个内网的http的服务) 2.内网服务器没有外网访问权限,全部内网中只有一台服务器有外网权限,可用于曲线救国版内网穿透 3.虚拟机只有NAT网,且虚拟机只配备了内网localhost转发到宿主机localhost,此时想外网或者其他内网(非宿主机)想访问虚拟机端口 4.将代理机作为堡垒机(跳板机),用于防止内部系统被人随意访问,此

  • SSH远程登录和端口转发详解

    介绍 SSH 是创建在应用层和传输层基础上的安全协议,为计算机上的 Shell(壳层)提供安全的传输和使用环境. SSH 只是协议,有多种实现方式,本文基于其开源实现 OpenSSH 远程登录 SSH主要用于远程登录: $ ssh user@host 当本地用户名和远程用户名一致时,可省略用户名: $ ssh host SSH 协议默认端口是22,指定端口可使用 -p 参数 $ ssh -p 2222 user@host MITM SSH 采用公钥加密的方式来保证传输安全.过程如下: 客户端发起

  • 详解Nginx 利用代理转发请求示例

    我们米扑科技的业务遍布全球,有时国外的客户无法访问我们搭建在国内的服务,这就要求我们在国外服务器上搭建一个代理转发服务,用户请求国外服务器的域名,然后代理转发到国内,处理请求后返回结果给国外的客户.Nginx 不仅可以实现负载均衡,还可以实现反向代理转发,非常适合我们的使用场景,因此我们米扑科技采用 Nginx 利用代理转发请求实例. Nginx 利用代理转发请求实例 nginx 作为目前最流行的web服务器之一,可以很方便地实现反向代理. nginx 反向代理官方文档: NGINX REVER

  • 阿里云国际版使用Nginx作为HTTPS转发代理服务器的处理方法

    目录 HTTP/HTTPS 转发代理的分类 转发代理处理 HTTPS 流量时需要特殊处理 NGINX解决方案 HTTP 连接隧道 (L7 解决方案) 历史背景 ngx_http_proxy_connect_module 环境建设 应用场景 NGINX流(L4解决方案) 常见问题 ngx_stream_ssl_preread_module 环境建设 应用场景 常见问题 结论 NGINX最初被设计为反向代理服务器.但是,随着不断发展,NGINX也可以作为实现转发代理的选项之一.转发代理本身并不复杂,

  • Nginx反向代理转发tomcat的实现

    刚刚接触Nginx,记录下学习过程 先说正向代理,比如要访问youtube,但是不能直接访问,只能先找个翻墙软件,通过翻墙软件才能访问youtube. 翻墙软件就叫做正向代理. 所谓的反向代理,指的是用户要访问youtube,但是youtube悄悄地把这个请求交给bilibili来做,那么bilibili就是反向代理了. 在当前教程指的就是访问nginx,但是nginx把请求交给tomcat来做. 安装tomcat 参考文章:https://www.jb51.net/article/137839

随机推荐