Nginx配置反向代理

Nginx配置反向代理Nginx配置反向代理,什么是反向代理反向代理服务器决定哪台服务器提供服务。返回代理服务器不提供服务器。只是请求的转发。

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

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

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

什么是反向代理

反向代理服务器决定哪台服务器提供服务。返回代理服务器不提供服务器。只是请求的转发。
正向代理如下
在这里插入图片描述
反向代理如下
在这里插入图片描述

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

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

wget http://mirror.bit.edu.cn/apache/tomcat/tomcat-7/v7.0.94/bin/apache-tomcat-7.0.94.tar.gz

在这里插入图片描述
然后是加载这个压缩包

tar -xvf apache-tomcat-7.0.94.tar.gz

在这里插入图片描述
然后把apache-tomcat-7.0.94复制成两份,一份是tomcat8081,一份是tomcat8082,过程如下

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,注意主要要修改三个端口号

<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,注意主要要修改三个端口号

<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


<!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


<!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,启动如下所示

/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

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.net/159108.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • securecrt乱码解决方法[通俗易懂]

    设置securecrt属性。问题securecrt连接某台linux机器显示中文乱码解决方法菜单下option-&gt;sessionoption1.选择图中属性结构中Emulation属性,修改terminal改成linux2.选择Appearance,在字符集属性中选择utf-8(具体要根据linux环境而定)…

    2022年4月10日
    44
  • 闫学灿acwing_分组背包问题

    闫学灿acwing_分组背包问题有 N 种物品和一个容量是 V 的背包。物品一共有三类:第一类物品只能用1次(01背包);第二类物品可以用无限次(完全背包);第三类物品最多只能用 si 次(多重背包);每种体积是 vi,价值是 wi。求解将哪些物品装入背包,可使物品体积总和不超过背包容量,且价值总和最大。输出最大价值。输入格式第一行两个整数,N,V,用空格隔开,分别表示物品种数和背包容积。接下来有 N 行,每行三个整数 vi,wi,si,用空格隔开,分别表示第 i 种物品的体积、价值和数量。si=−1 表示第 i 种

    2022年8月8日
    6
  • viewstate解密

    viewstate解密看完之后,觉得能不用viewstate就不用,再者像这样viewstate[“a”]=”b”;这种简单的赋值是没有什么关系的,它生成的树是很小的,altas一定是用js修改了viewstate的,但方法肯定是加密再加密的,效率也应该很低. ViewState是.Net中提出的状态保存的一种新途径(实际上也是老瓶装新酒);我们知道,传统的Web程序保存状态的方式有这样几种: 1、Appli

    2022年7月21日
    25
  • keras多层感知器识别手写数字执行预测代码_感知机模型多层神经网络

    keras多层感知器识别手写数字执行预测代码_感知机模型多层神经网络2.Keras建立多层感知器模型2.1简单介绍多层感知器模型注:以下模型及其说明来自于《TensorFlow+Keras深度学习人工智能实践应用》林大贵著以矩阵方式仿真多层感知器模型的工作方式(如下图所示)建立输入与隐藏层的公式:h1=ReLu(x*w1+b1)变量名说明输入层x仿真输入神经元接收外界传送消息,如上图所示,共有784个神经元。隐藏层h1…

    2022年10月9日
    5
  • java中scanner意思_java中Scanner s = new Scanner(System.in);分别是什么意思?「建议收藏」

    java中scanner意思_java中Scanner s = new Scanner(System.in);分别是什么意思?「建议收藏」展开全部Scanner是一个类,nextDouble()是Scanner的成员函数,System.in作为参数传递给Scanner的构造函数,使Scanner用62616964757a686964616fe78988e69d8331333366303839键盘作为输入,然后用new在内存中实例化一个Scanner出来,使得其它变量能调用这块内存区。Scanner类简介:Java5添加了java….

    2022年7月20日
    17
  • tensorflowpycharm安装_python tensorflow安装

    tensorflowpycharm安装_python tensorflow安装【报错】CouldnotinstallpackagesduetoanEnvironmentError:[WinError5]拒绝访问。:’f:\\strsoftware\\anaconda\\stranaconda\\lib\\site-packages\\tensorflow\\python\\_pywrap_tensorflow_internal.pyd’Considerusingthe`–user`optionorcheckthepermissions.或

    2022年8月28日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号