nginx监听相同端口通过域名分发到不同的服务器

标签: nginx  域名  相同端口

前言


前段时间给朋友开发网站, 上线几个月后想要接入支付宝在线支付. 支付宝接口申请需要给一个已经上线的网站. 由于一些原因, 朋友的网站没有申请通过, 现需用B2C网站做申请之用. 但是已上线的站点不能停用, 本着节约成本的原则, 我拒绝了他再去租用一台云服务器. 之前接触过一点点nginx, 便想通过nginx实现同一台云服务器/相同端口(80)通过域名做请求转发.

准备工作


  1. 准备nginx, nginx-1.12.2
  2. 准备sunny ngrok, 并下载相应客户端版本, 用于模拟两个域名
  3. 准备两个服务器(当前环境:Tomcat7.0.59 & php7+apache2.4), 也可以使用两个tomcat服务器

配置内网穿透


在sunny ngrok申请两个账号, 同时映射到 localhost:8081:
第一个账号配置
第二个账号配置
并在本地启用内网穿透:
开启本地映射

配置nginx


hyong.free.ngrok.cchyong2.free.ngrok.cc监听端口同时映射到8081(与SunnyNgrok配置一致即可)

worker_processes  1;
events {
    worker_connections  1024;
}

http {
    include             mime.types;
    default_type        application/octet-stream;
    sendfile            on;
    keepalive_timeout   65;

    #gzip  on;

    # 配置第一个代理规则
    # 域名: hyong.free.ngrok.cc
    # 监听端口: 8081
    server {
        listen              8081;
        server_name         hyong.free.ngrok.cc;
        location / {
            root            I:/php/httpd-2.4.26-Win64-VC15/Apache24/htdocs;
            index           index.php index.html;
            proxy_pass      http://127.0.0.1:8080;
        }
    }

    # 配置第二个代理规则
    # 域名: hyong2.free.ngrok.css
    # 监听端口: 8081, 端口与第一个规则相同
    server {
        listen              8081;
        server_name         hyong2.free.ngrok.cc;
        location / {
            root            I:\java-working\server\apache-tomcat-7.0.59;
            index           index.jsp index.html;
            proxy_pass      http://127.0.0.1:9000;
        }
    }
}

接下来启动nginx中文网:
启动nginx
nginx for windows相关命令
cmd> cd nginx_home:

命令 说明
start nginx 后台启用nginx, 前台启动(cmd>nginx.exe)
nginx -s stop 快速停止
nginx -s quit 安全停止
nginx -s reload 改变配置,开始新的工作进程与新配置,优雅的关闭旧的工作进程
nginx -s reopen 重启, 重启日志文件

校验nginx启动是否成功: tasklist /fi "imagename eq nginx.exe"
校验nginx是否启动

启动服务器


视情况而定, 当前启动 Tomcat&Apache

测试验证


访问 http://hyong.free.ngrok.cc
这里打个小广告

访问 http://hyong2.free.ngrok.cc
第二套环境

漂亮: 测试通过!!!

总结


  1. nginx并未使用在真实项目中, 因此对nginx并未深入研究
  2. 除了负载均衡(个人觉得应该叫并发瓶颈转移), 还可以做请求转发
  3. 经过本次测试, 发现nginx还具有端口路由的功能. 此后做web开发时, 就可以同时对外提供多个相同端口的不同服务了 ^ - ^

如果发现本文内容有误, 欢迎留言讨论…

版权声明:本文为Gozs_cs_dn原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Gozs_cs_dn/article/details/79067749

智能推荐

[学习记录,]Mybatis入门

环境: Eclipse 2019 Tomcat 9.0 jdk1.8 开搞 首先创建工程 结构如下 导入Jar包 可在mybatis官网下载 http://www.mybatis.cn/82.html 配置文件mybatis-config.xml 事务管理有两种:JDBC和MANAGED JDBC: MANAGED 数据源类型:UNPOOLED、POOLED、JNDI 创建实体类文件User.ja...

运用for语句来判断数组中值得大小

总结: 1将if语句与数组联合起来判断输入中各组中的最大最小值; 2注意:定义的数组数量是躲多少就要输入多少组数据,少输入就无法输出;...

Bridging signals

Bridging signals Time Limit: 1000MSMemory Limit: 10000K Total Submissions: 10926Accepted: 5982 Description 'Oh no, they've done it again', cries the chief designer at the Waferland chip factory. Once ...

一天一大 leet

一天一大 leet 题目(难度:困难): 示例 抛砖引玉 官方答案 高手在民间 菜鸡的自白 20200606 题目(难度:困难): 给定一个未排序的整数数组,找出最长连续序列的长度。 要求算法的时间复杂度为 O(n)。 示例 示例 抛砖引玉 要求算法的时间复杂度为 O(n),即限制了只能循环一次; 先对数组排序 循环数组记录后一个元素等于前一个元素+1或者等于前一个元素的数量 满足条件++,不然重...

Tensorflow实现的CNN文本分类

https://blog.csdn.net/somtian/article/details/69359498 原博文, github 在这篇文章中,我们将实现一个类似于Kim Yoon的卷积神经网络语句分类的模型。 本文提出的模型在一系列文本分类任务(如情感分析)中实现了良好的分类性能,并已成为新的文本分类架构的标准基准。 本文假设你已经熟悉了应用于NLP的卷积神经网络的基础知识。 如果没有,建议...

猜你喜欢

JDBC新手入门教程

开发工具:idea 数据库:mysql jar包:junit-4.10 mysql-connector-java-8.0.18 junit-4.10下载 mysql-connector-java-8.0.18下载 注意1:jdbc的驱动因为使用的是mysql-connector-java-8.0.18,所以为(“com.mysql.cj.jdbc.Driver”),而不是(...

Lua 排序 table.sort

    正如C#中有Array.Sort(),lua中也有自己的排序方法即table.sort(table,function)。     lua中的排序默认是从大到小的排序;     传入一个方法参数,可以使排序从小到大; 打印结果:  ...

SURF算法简述及Python标记SURF特征检测实践

目录 一、SURF算法 1.算法简介 2.SURF与SIFT的具体差异 二、Python代码实践 1.测试环境 2.测试代码 3.核心函数 4.测试结果 一、SURF算法 1.算法简介 SURF(Speeded-Up Robust Features)加速稳健特征,是一种稳健的局部特征点检测和描述算法。 SURF是对SIFT算法的改进,该算子在保持 SIFT 算子优良性能特点的基础上,同时解决了 S...

Selenium3自动化测试——19.读取数据文件

1. 实现目标 在测试与开发中,经常需要对文件进行各种读取操作。这里介绍针对txt、csv、xml、json文件的读取。 2. 读取TXT文件 2.1 user_info.txt文件 2.2 读取txt文件.py 2.3 实现结果 3. 读取csv文件 3.1 user_info.csv  这里要注意,csv文件本身打开是utf-8的,而不是乱码 3.2 读取csv文件.py 这里,针对...

Flask 介绍

Flask 学习笔记 一、Flask 简介         Flask 是一款非常流行的 Python Web 框架,出生于 2010 年,作者是 Armin Ronacher,本来这个项目只是作者在愚人节的一个玩笑,后来由于非常受欢迎,进而成为一个正式的项目。         Flask 自2010年发布第一个版本以...