Nginx反向代理:
反向代理(ReverseProxy)是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,简单来说就是真实的服务器不能直接被外部网络访问,想要访问必须通过代理。
对于客户端来说是无感知的,因为客户端不需要任何配置就可以访问(正向代理需要在浏览器中进行配置),我们只需要将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器回去数据以后,在返回给客户端,此时反向代理服务器 和目标服务器就是一个服务器,暴露的是代理服务器的地址,隐藏了真实服务器的ip地址。
反向代理的作用:
1、防止主服务器被恶意攻击
2、为负载均衡和动静分离提供实现支持
1、实现的效果
打开浏览器,在浏览器的地址栏中,输入www.123.com,跳转到linux系统tomcat主页面中
2、具体实现:
1)、在linux系统中,安装tomcat服务器,使用默认的端口8080
2)、对外开放访问的端口
先查询开发的端口号:
firewall-cmd --list-all
设置开放的端口:
firewall-cmd --add-port=8080/tcp --permanent
重启防火墙:
firewall-cam –reload
3)、启动tomcat服务器:
在/usr/src/apache-tomcat-7.0.70/bin目录下,执行 ./startup.sh
4)、测试tomcat服务器是否正常
浏览器输入:
10.3.78.55:8080 打开一下页面,即为成功
我们最终要实现的是输入www.123.com打开如下页面。
4)、通过Nginx配置他的反向代理
在这里,我们先分析一下访问过程
注
注:tomcat集群只是端口号不一样,ip是一样的。
当我们在浏览器中,输入一个域名的时候,他首先回到本地的host文件中查看有没有相应的配置(域名映射的ip),如果有,根据这个执行;如果没有,到网络中找DNS域名解析服务器,找网络中的ip。
所以,我们需要进行如下操作:
1)、windows系统的host文件进行域名和ip对应关系的配置
host文件的位置:
C:\Windows\System32\drivers\etc
打开配置文件,加入:
10.3.78.55 www.123.com (Nginx的Ip地址 域名)
配置好以后,当我们在浏览器中,输入:
www.123.com:8080
就可以打开tomcat服务器的页面了
距离我们最终的目标,只差一个 :8080.
2)、在Nginx的配置文件中,进行反向代理的配置:
3)、测试
在浏览器输入:
www.123.com
出现:
反向代理的实现流程:
1)浏览器访问www.123.com,通过本地host文件域名解析,找到10.3.78.55服务器(安装nginx)
2)nginx反向代理接受客户机请求,找到server_name为8080的server节点,根据proxy_pass对应的http路径,将请求转发到端口号为8080的tomcat服务器。
如果在启动的过程中,出现如下情况:
Nginx [emerg]: bind() to 0.0.0.0:80 failed (98: Address already in use)
原因分析:
80端口被占用。
解决方法:
查看80端口被那个进程占用:
ps -A | grep nginx
杀死对应进程:
killall -进程号 nginx