反向代理实例

1.安装tomcat
下载安装包;
上传到linux;
tar -xvf解压;
firewall-cmd 开放端口;
到解压目录bin目录下执行./startup.sh运行;
 
2.实现思路
预期效果:在浏览其中输入www.123.com跳转到tomcat主页面;
linux对外暴露的是ngnix,不直接访问tomcat,而是需要访问ngnix,再由ngnix来转发请求;
1)对应域名和ip地址
域名和ip地址的映射关系在window目录下的host文件中配置;
如果没有配置会从dns中查找;
因为没有域名,所以修改host文件来配置映射;
host文件地址:
C:\Windows\System32\drivers\etc\hosts
加上一行
前面是linux服务器的ip地址,可以用ifconfig命令得到;
后面是自定义的域名;
 
3.配置nginx
vi打开配置文件:
vi /usr/local/nginx/conf/nginx.conf
 
找到server块,做修改:
将server_name改为linux服务器的ip地址;
在location中添加 proxy_pass    http://127.0.0.1:8080,表示请求是转发到本机的8080端口;
    server {
        listen       80;
        server_name  192.168.10.112;
 
        location / {
            root   html;
            proxy_pass    http://127.0.0.1:8080
            index  index.html index.htm;
        }
    }
 
重新加载ngnix,让配置生效:
./nginx -s reload
 
请求成功:
 
如果linux对外关闭了8080端口,通过ngnix反向代理依然可以访问到tomcat首页;
 
4.停在tomcat进程
查看进程:
ps -ef|grep tomcat
如果有进程,可以看到用户,后面紧接进程id号;
停止进程:
kill -9 进程id
可以看到停止进程后不会再出现进程描述;
 
5.通过不同的地址访问不同的tomcat
预期效果:远程访问nginx时,根据不同的后缀,转发到不同的tomcat;
 
思路:
    两个tomcat,一个用默认的端口8080,另一个用端口8081;在tomcat配置目录的server.xml中改端口号;
    ps:为了防止端口被占用,总共要改3个端口号;8005->8015,8009->8019,8080->8081
    在8080tomcat的webapp目录中放入一个名为dev文件夹,里面放a.html;
    在8081tomcat的webapp目录中放一个名为env的文件夹,里面放a.html;
    例如:
    8080html内容:
<h1>8080</h1>
    这样在tomcat启动时,访问8080端口的tomcat,xxx/dev/a.html时网页上可以看到8080几个字;
    对另一个tomcat做同样操作, xxx/env/a.html访问时显示8081;
    修改nginx.conf,在80端口的server块中,添加两个location;这两个location的路径正则不同;
    重加载ngnix使修改生效;
    启动两个tomcat,然后用配置路径访问查看效果;
 
配置文件nginx.conf:
    location ~/dev/{
        proxy_pass    http://127.0.0.1:8080;    
    }
    
    location ~/env/{
        proxy_pass    http://127.0.0.1:8081;
    }
~表示后面是正则表达式;
~/dev/表示访问路径中包含/dev/时转发到8080的tomcat;
 
结果:
访问/dev/a.html时:
访问/env/a.html时:
可以看到访问路径中带有匹配的正则时,nginx会依据该正则转发到对应的tomcat;
 
 
 
posted @ 2019-11-07 10:30  L丶银甲闪闪  阅读(319)  评论(0编辑  收藏  举报