技术干货Nginx配置反向代理

Posted Linux实战训练营

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了技术干货Nginx配置反向代理相关的知识,希望对你有一定的参考价值。

【技术干货】Nginx配置反向代理



【技术干货】Nginx配置反向代理
【技术干货】Nginx配置反向代理

什么是反向代理


反向代理服务器决定哪台服务器提供服务。返回代理服务器不提供服务器。只是请求的转发。
正向代理如下:
【技术干货】Nginx配置反向代理
反向代理如下:
【技术干货】Nginx配置反向代理



【技术干货】Nginx配置反向代理
【技术干货】Nginx配置反向代理

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
【技术干货】Nginx配置反向代理
然后是加载这个压缩包。
tar -xvf apache-tomcat-7.0.94.tar.gz
【技术干货】Nginx配置反向代理
然后把apache-tomcat-7.0.94复制成两份,一份是tomcat8081,一份是tomcat8082,过程如下:
cp -r apache-tomcat-7.0.94 tomcat8081cp -r apache-tomcat-7.0.94 tomcat8082
【技术干货】Nginx配置反向代理
然后通过Editplus远程连接修改tomcat8081里面的server.xml配置里面修改端口号, 注意主要要修改三个端口号。
<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配置里面修改端口号, 注意主要要修改三个端口号。
<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/ 路径结果如下,成功了。

【技术干货】Nginx配置反向代理
然后访问http://47.91.248.236:8082/ 路径结果如下,成功了。
【技术干货】Nginx配置反向代理
然后我们配置本地电脑里面的host文件变成下面这样:
这里我们借助ihost来操作。
【技术干货】Nginx配置反向代理
然后配置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服务器。
【技术干货】Nginx配置反向代理
然后我们访问 www.huohu.com。
此时访问到的就是tomcat8082对应的tomcat服务器。
【技术干货】Nginx配置反向代理
到此nginx的反向代理就完成了。

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


内容来源于网络,侵删


【技术干货】Nginx配置反向代理


鉴于篇幅有限,更多详细课程大纲/知识体系/实体书籍/网工必备工具包等请扫码加群获取!

领取福利


种下一棵树
最好的时间是10年前
其次是现在
学习也一样

以上是关于技术干货Nginx配置反向代理的主要内容,如果未能解决你的问题,请参考以下文章

CentOS 配置 Nginx 反向代理

Nginx反向代理web程序解决谷歌跨越问题配置详解 #yyds干货盘点#

#yyds干货盘点#nginx代理配置

Nginx专题:Nginx之反向代理及配置

Nginx反向代理实现负载均衡配置图解

#yyds干货盘点#nginx配置