简介

由于公司内网有多台服务器的http服务要映射到公司外网静态IP,如果用路由的端口映射来做,就只能一台内网服务器的80端口映射到外网80端口,其他服务器的80端口只能映射到外网的非80端口。非80端口的映射在访问的时候要域名加上端口,比较麻烦。所以我们可以在内网搭建个nginx反向代理服务器,将nginx反向代理服务器的80映射到外网IP的80,这样指向到公司外网IP的域名的HTTP请求就会发送到nginx反向代理服务器,利用nginx反向代理将不同域名的请求转发给内网不同机器的端口,就起到了“根据域名自动转发到相应服务器的特定端口”的效果,而路由器的端口映射做到的只是“根据不同端口自动转发到相应服务器的特定端口”,真是喜大普奔啊。

Nginx配置

vim /usr/local/nginx/conf/reverse-proxy.conf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
server {    listen 80;
    server_name tomcat1.vip.com;
    location /{        proxy_redirect off;
        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_pass http://127.0.0.1:8081;
        #proxy_pass http://tomcat;
    }
    access_log logs/tomcat1_access.log;
}

server {    listen 80;
    server_name tomcat2.vip.com;
    location /{        proxy_redirect off;
        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_pass http://127.0.0.1:8082;
        #proxy_pass http://tomcat;
    }
    access_log logs/tomcat2_access.log;
}

在nginx.conf的http节点中include配置文件reverse-proxy.conf

1
2
3
4
5
6
7
8
9
10
11
12
http {    include reverse-proxy.conf;

    #按server段顺序匹配,如果没有匹配到则可通过泛域名匹配返回错误码或错误页
    server {        listen 80;
        server_name *.vip.com;
        location /{            return 404;
        }
    }
}

测试生效

热部署nginx配置

1
2
3
[root@localhost ~]# /usr/local/nginx/sbin/nginx -t; /usr/local/nginx/sbin/nginx -s reload;
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

在客户机的hosts中配置tomcat1.vip.com和tomcat2.vip.com (如果是已申请好的域名,则可跳过此步骤)

1
2
10.28.10.218 tomcat1.vip.com
10.28.10.218 tomcat2.vip.com

从以上访问结果来看,浏览器的请求会分别引导到了tomcat1和tomcat2上。

Nginx反向代理多个域名相关推荐

  1. Nginx反向代理,通过域名直接访问指定的端口,比如8080

    Nginx反向代理,通过域名直接访问指定的端口,比如8080 今天写微信公众号开发网络授权的时候,通过域名加接口url的方式,始终访问不到指定的接口,最后想了很久,发现是Nginx反向代理没有配置! ...

  2. nginx反向代理实现二级域名转一级域名

    需求场景: 有两个大项目交互必须在一级域名下,每个项目有多个前端,之前采用二级或三级域名的方式导致域名过多不好维护,故由project1.service1.city.com.project1.serv ...

  3. nginx 反向代理配置二级域名正确姿势!!!

    1. 先解释下什么是反向代理? 反向代理是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代 ...

  4. 在一台win10系统的电脑里安装虚拟机运行CentOS7并实现nginx反向代理从而用域名访问本机的微服务项目

    在虚拟机里的CentOS7安装配置nginx,之前需要一些依赖库作为编译安装的条件,具体作用和命令详情跳转我之前的博客. 安装并使用VMware-workstation-full-15.5.0安装Ce ...

  5. nginx反向代理地址是域名时请求不通的情况

    使用nginx的反向代理,是解决跨域的一个重要方法.在nginx的配置文件中,我们通常可以看到这么一段: proxy_set_header Host $host; proxy_set_header X ...

  6. Nginx反向代理 设置二级域名 (CentOS)

    nginx 配置 whereis nginx /usr/sbin/nginx     ->    执行文件 /etc/nginx/conf.d  ->    自定义.conf文件的存放位置 ...

  7. 通过备案的域名访问,不需要添加端口号(nginx反向代理,直接域名访问)

    注意:前提是公网域名通过备案和域名解析 1.安装nginx yum install -y nginx 2.找到安装nginx.conf文件 server {listen 80;listen [::]: ...

  8. Nginx反向代理proxy_pass

    一.概述 代理(proxy),即中间人,它代替客户端发送请求给服务器,收到响应后再转给客户端.通常意义上的代理是从用户的角度讲的,用户通过某个代理可以访问多个网站,这个代理是靠近用户的,比如某些公司可 ...

  9. (转)IIS tomcat共用80端口解决一个IP多个域名:使用Nginx反向代理方式使两者兼容...

    from :http://www.cnblogs.com/wuyou/p/3455619.html 环境: windows server 2003,IIS6服务器,Tomcat7服务器 域名有几个: ...

最新文章

  1. 几种芯片架构:X86、ARM、RISC-V和MIPS
  2. C/S与B/S架构的区别和优缺点
  3. Excel VBA开发中数字签名的管理
  4. adams2016安装教程
  5. python数据可视化的特点_Python数据可视化 pyecharts实现各种统计图表过程详解
  6. 轻轻的你来了,悄悄的你走了,邓总没有带走一个bug
  7. android手机解除root,手机显示被root什么意思(手机root怎么解除)
  8. Java并发编程-ReentrantLock
  9. 距离一个优秀程序员,你还差多少?
  10. linux文件系统格式化
  11. 初学者-C语言基础练习(二)——C语言编译器的使用方法
  12. 结构体中的LNode与*LinkList
  13. 软件测试包括哪些内容
  14. 中国人工智能神经网络技术现状
  15. 好心情患者故事:节食暴食反复横跳,我确诊了重度抑郁
  16. opencv根据摄像头名称打开摄像头(附源码)
  17. pyecharts的各个系列配置项设置示例——个人整理与分享
  18. html文本下一页,Javascript html2canvas + jsPDF 导出PDF,解决一半文字在上一页一半文字在下一页的问题...
  19. Mybatis遇到的报错集合
  20. 概要设计和详细设计说明书的区别

热门文章

  1. 数电4_6——竞争-冒险现象
  2. SSL虚拟专用网络通信分析
  3. 14-18、物理层--物理层定义的标准,数据通信基础知识,常用编码格式,香农定律和乃奎斯特定律,数据通信基础知识总结
  4. 关于字符串结束符'\0'
  5. 如何给计算机设置桌面背景步骤6,怎么设置电脑桌面背景呢
  6. linux ipset 命令,linux中ipset命令的使用方法详解
  7. 鼠标滑动事件(鼠标经过换图片)
  8. 点云降采样--ApproximateVoxelGrid点云降采样
  9. iOS --- 使用NSJSONSerialization来解析JSON格式的数据
  10. Bounce 动画的认识