Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Nginx配置反向代理

Nginx配置反向代理

作者头像
全栈程序员站长
发布于 2022-09-14 09:16:54
发布于 2022-09-14 09:16:54
54700
代码可运行
举报
运行总次数:0
代码可运行

大家好,又见面了,我是你们的朋友全栈君。

更多Nginx教程可以点击下面的链接查看哦

https://www.itqiankun.com/article/1564904492

什么是反向代理

反向代理服务器决定哪台服务器提供服务。返回代理服务器不提供服务器。只是请求的转发。 正向代理如下

反向代理如下

Nginx实现反向代理的过程
首先安装两个tomcat服务器,都放到nginx服务器里面,两个端口分别是8081和8082

首先是下载tomcat,使用下面的命令

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
wget http://mirror.bit.edu.cn/apache/tomcat/tomcat-7/v7.0.94/bin/apache-tomcat-7.0.94.tar.gz

然后是加载这个压缩包

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
tar -xvf apache-tomcat-7.0.94.tar.gz

然后把apache-tomcat-7.0.94复制成两份,一份是tomcat8081,一份是tomcat8082,过程如下

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cp -r apache-tomcat-7.0.94 tomcat8081
cp -r apache-tomcat-7.0.94 tomcat8082

然后通过Editplus远程连接修改tomcat8081里面的server.xml配置里面修改端口号,(怎么通过EditPlus连接linux,看着篇文章:https://blog.csdn.net/weixin_43689480/article/details/95867289,注意主要要修改三个端口号

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<Server port="8006" shutdown="SHUTDOWN">
<Connector port="8081" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
<Connector port="8010" protocol="AJP/1.3" redirectPort="8443" />

然后通过Editplus远程连接修改tomcat8082里面的server.xml配置里面修改端口号(怎么通过EditPlus连接linux,看着篇文章:https://blog.csdn.net/weixin_43689480/article/details/95867289,注意主要要修改三个端口号

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<Server port="8007" shutdown="SHUTDOWN">
<Connector port="8082" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
<Connector port="8011" protocol="AJP/1.3" redirectPort="8443" />

然后把tomact8081里面的webapps文件夹里面的ROOT文件夹里面的index.jsp变成下面这样,此时可以看到下面输入的内容是8081

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!DOCTYPE html>
<%@ page session="false" %>
<%
java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyy");
request.setAttribute("year", sdf.format(new java.util.Date()));
request.setAttribute("tomcat7Url", "http://tomcat.apache.org/");
request.setAttribute("tomcat7DocUrl", "/docs/");
request.setAttribute("tomcat7ExamplesUrl", "/examples/");
%>
<html lang="en">
    <head>
        <title><%=request.getServletContext().getServerInfo() %></title>
        <link href="favicon.ico" rel="icon" type="image/x-icon" />
        <link href="favicon.ico" rel="shortcut icon" type="image/x-icon" />
        <link href="tomcat.css" rel="stylesheet" type="text/css" />
    </head>

    <body>
		<h1>tomcat8081index.jsp<h1>
    </body>

</html>

然后把tomact8082里面的webapps文件夹里面的ROOT文件夹里面的index.jsp变成下面这样,此时可以看到下面输入的内容是8082

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!DOCTYPE html>
<%@ page session="false" %>
<%
java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyy");
request.setAttribute("year", sdf.format(new java.util.Date()));
request.setAttribute("tomcat7Url", "http://tomcat.apache.org/");
request.setAttribute("tomcat7DocUrl", "/docs/");
request.setAttribute("tomcat7ExamplesUrl", "/examples/");
%>
<html lang="en">
    <head>
        <title><%=request.getServletContext().getServerInfo() %></title>
        <link href="favicon.ico" rel="icon" type="image/x-icon" />
        <link href="favicon.ico" rel="shortcut icon" type="image/x-icon" />
        <link href="tomcat.css" rel="stylesheet" type="text/css" />
    </head>

    <body>
		<h1>tomcat8082index.jsp<h1>
    </body>

</html>

然后就是启动tomcat8081和tomcat8082,启动如下所示

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/root/tomcat8081/bin/startup.sh
/root/tomcat8082/bin/startup.sh

然后访问http://47.91.248.236:8081/ 路径结果如下,成功了

然后访问http://47.91.248.236:8082/ 路径结果如下,成功了

然后我们配置本地电脑里面的host文件变成下面这样

这里我们借助ihost来操作

然后配置nginx服务器里面的conf文件夹里面的nginx.conf配置文件,配置完之后记得要重启nginx服务器

此时当访问www.sina.com 的时候,就会访问host文件,然后就会去找47.91.248.236 这个ip对应的linux服务器,然后www.sina.com 默认的端口就是80,所以访问www.sina.com 的时候,就会找到下面的upstream tomcat1,然后下面的upstream tomcat1就会去找server 47.91.248.236:8081,就会找到8081端口的tomcat服务器,然后因为upstream tomcat1的默认访问页是index.jsp,所以就会访问8081端口的tomcat服务器的index.jsp页面(也就是http://47.91.248.236:8081/index.jsp

此时当访问www.huohu.com 的时候,就会访问host文件,然后就会去找47.91.248.236 这个ip对应的linux服务器,然后www.huohu.com 默认的端口就是80,所以访问www.huohu.com 的时候,就会找到下面的upstream tomcat2,然后下面的upstream tomcat2就会去找server 47.91.248.236:8082,就会找到8082端口的tomcat服务器,然后因为upstream tomcat2的默认访问页是index.jsp,所以就会访问8082端口的tomcat服务器的index.jsp页面(也就是http://47.91.248.236:8082/index.jsp

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
user  root;
worker_processes  1;
events { 
   
    worker_connections  1024;
}


http { 
   
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
	#配置www.sina.com:80对应的服务器监听端口
	upstream tomcat1 { 
   
	server 47.91.248.236:8081;
	}
	server { 
   
	    listen       80;
	    server_name  www.sina.com;
	    location / { 
   
	        proxy_pass   http://tomcat1;
	        #配置默认访问页,这里就会访问到tomcat1里面的那个index.jsp文件里面
	        index  index.jsp;
	    }
	}
	
    
    #配置www.houhu.com:80对应的服务器监听端口
    upstream tomcat2 { 
   
	server 47.91.248.236:8082;
    }
    server { 
   
        listen       80;
        server_name  www.houhu.com;
        location / { 
   
            proxy_pass   http://tomcat2;
            #配置默认访问页,这里就会访问到tomcat2里面的那个index.jsp文件里面
            index  index.jsp;
        }
    }
}
然后我们访问 www.sina.com

此时访问到的就是tomcat8081对应的tomcat服务器

然后我们访问 www.huohu.com

此时访问到的就是tomcat8082对应的tomcat服务器

到此nginx的反向代理就完成了

能看到这里的同学,觉得好的话就帮忙点个赞吧,Thanks♪(・ω・)ノ

原文链接

大佬链接 https://www.itqiankun.com/article/1564904492

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/159108.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年7月1,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【海贼王航海日志:前端技术探索】一篇文章带你走进JavaScript(一)
JavaScript(简称JS),是世界上最流行的编程语言之一。是一个脚本语言,通过解释器运行。主要在客户端(浏览器)上运行,现在也可以基于node.js在服务器端运行。
枫叶丹
2024/08/21
910
【海贼王航海日志:前端技术探索】一篇文章带你走进JavaScript(一)
【海贼王航海日志:前端技术探索】CSS你了解多少?(三)
可以看到,width、height是500 * 250,而最终整个盒子大小是520 * 270。边框10个像素相当于扩大了大小。
枫叶丹
2024/08/17
930
【海贼王航海日志:前端技术探索】CSS你了解多少?(三)
【海贼王航海日志:前端技术探索】一篇文章带你走进JavaScript(二)
代码示例1: 吃五个李子,发现第三个李子里有一只虫子,于是扔掉这个,继续吃下一个李子。
枫叶丹
2024/08/21
670
【海贼王航海日志:前端技术探索】一篇文章带你走进JavaScript(二)
【海贼王航海日志:前端技术探索】CSS你了解多少?(二)
我们的显示器是由很多很多的“像素”构成的。每个像素视为一个点,这个点就能反映出一个具体的颜色。我们使用R(red)、G(green)、B(blue)的方式表示颜色(色光三原色)。三种颜色按照不同的比例搭配,就能混合出各种效果。
枫叶丹
2024/08/09
1030
【海贼王航海日志:前端技术探索】CSS你了解多少?(二)
【海贼王航海日志:前端技术探索】CSS你了解多少?(一)
CSS能够对网页中元素位置的排版进行像素级精确控制,实现美化页面的效果。能够做到页面的样式和结构分离。
枫叶丹
2024/08/06
680
【海贼王航海日志:前端技术探索】CSS你了解多少?(一)
JavaScript基础②
console.log(item)//点哪里,item的值就是你点击对应的currentvalue console.log(index)//点哪里,index的值就是你点击对应的索引
ymktchic
2022/01/18
1K0
JavaScript基础②
JavaScript进阶内容——DOM详解
JavaScript使我们有能力创建动态页面,而事件就是被JavaScript所侦测到的行为。
秋落雨微凉
2022/10/25
1.5K0
JavaScript进阶内容——DOM详解
JavaScript 教程「9」:DOM 元素获取、属性修改
Web API 是指网页服务器或者网页浏览器的应用程序接口。简单来讲,就是我们在编写 JavaScript 代码时,可以通过 Web API 来操作 HTML 网页和浏览器。
村雨遥
2022/05/23
2.6K0
JavaScript 教程「9」:DOM 元素获取、属性修改
js 深度解析DOM
因为document是window的一个属性,因为属性都是对象拥有的,所以他是一个object;
贵哥的编程之路
2020/11/03
4.9K0
js 深度解析DOM
JavaScript——动画函数封装
回调函数原理:函数可以作为一个参数,将这个函数作为参数传到另一个函数里面,当那个函数执行完之后,再执行传进去的这个函数,这个过程就叫做回调。
岳泽以
2022/10/26
1K0
JavaScript——动画函数封装
JavaSprict函数
盛透侧视攻城狮
2024/10/21
620
【海贼王航海日志:前端技术探索】HTML你学会了吗?(二)
<table>标签包含<tr>标签,<tr>标签包含<td>标签或者<th>标签。
枫叶丹
2024/08/06
1280
【海贼王航海日志:前端技术探索】HTML你学会了吗?(二)
【海贼王航海日志:前端技术探索】HTML你学会了吗?(一)
HTML,全称为HyperText Markup Language,即超文本标记语言,是一种用于创建网页的标准标记语言。HTML允许用户在网页中加入各种元素,如文本、图像、链接、表格、列表、视频等,从而构建出结构化的文档。
枫叶丹
2024/08/06
640
【海贼王航海日志:前端技术探索】HTML你学会了吗?(一)
webApis05-swiper插件、window对象、定时器、location
节点 查找父节点 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>薪资想过万,代码敲三遍</title> </head> <bod
yuanshuai
2022/08/17
4010
webAPIs01-声明变量、元素、定时器
严格意义上讲,我们在 JavaScript 阶段学习的知识绝大部分属于 ECMAScript 的知识体系,ECMAScript 简称 ES 它提供了一套语言标准规范,如变量、数据类型、表达式、语句、函数等语法规则都是由 ECMAScript 规定的。浏览器将 ECMAScript 大部分的规范加以实现,并且在此基础上又扩展一些实用的功能,这些被扩展出来的内容我们称为 Web APIs。
yuanshuai
2022/08/17
7830
webAPIs01-声明变量、元素、定时器
【JavaEE初阶】JavaScript(WebAPI)
API 是一个更广义的概念. 而 WebAPI 是一个更具体的概念, 特指 DOM+BOM 所谓的 API 本质上就是一些现成的函数/对象, 让程序猿拿来就用, 方便开发. 具体可查看: API参考文档
xxxflower
2023/10/16
2590
【JavaEE初阶】JavaScript(WebAPI)
JavaScript进阶内容——jQuery
我们在前面的文章中已经掌握了JavaScript的全部内容,现在让我们了解一下JavaScript库
秋落雨微凉
2022/10/25
5.5K0
JavaScript进阶内容——jQuery
前端系列19集-vue3引入高德地图,响应式,自适应
在项目目录中使用npm或yarn安装高德地图的JavaScript API库。你可以使用以下命令之一:
达达前端
2023/10/08
1.4K0
前端系列19集-vue3引入高德地图,响应式,自适应
BOM大详解
了解: 1.BOM架构全局对象的使用. 2.根据案例来讲解 3:大总结。 4;效果.
贵哥的编程之路
2020/11/06
5000
一篇文章带你了解网页框架——Vue简单入门
如果你以后想从事后端程序员,又想要稍微了解前端框架知识,那么这篇文章或许可以给你带来帮助
秋落雨微凉
2022/10/25
9800
一篇文章带你了解网页框架——Vue简单入门
相关推荐
【海贼王航海日志:前端技术探索】一篇文章带你走进JavaScript(一)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验