nginx容器方式反向代理实战


Posted in Servers onApril 18, 2022

一、简述

1.1 什么是反向代理?

这很重要,反向代理就是代理服务器代理真实服务器。客户端以为代理服务器就是真实服务器,所以就会把要请求的==资源(URL)==发给代理服务器。

代理服务器一般是由nginx来充当,代理功能由配置文件来完成。

nginx容器方式反向代理实战

1.2 看图理解

画的仓促,大概有这个意思

nginx容器方式反向代理实战

1.3 错误总结

错误记录:

nginx和tomcat全容器化

用nginx代理两台tomcat服务器,

当访问资源带edu的时候交给tomcat1

当访问资源带vod的时候交给tomcat2

做反向代理测试的时候,写的是完整的URL,不是部分路径。因为代理服务器在客户端看来就是真实服务器!!!

这次对反向代理的理解更深刻了,坚持下来没有错。

同时,请教别人也是必须的,多交流多思考才能更好的解决问题~

以下是错误演示

nginx容器方式反向代理实战

二、正确案例

2.1 启动nginx

docker run --name nginx -p 80:80 --link=tomcat:tomcat1 --link=tomcat02:tomca -v /opt/docker-nginx/nginx.conf:/etc/nginx/nginx.conf -v /opt/docker-nginx/log:/var/log/nginx -v /opt/docker-nginx/conf.d/default.conf:/etc/nginx/conf.d/default.conf -d 313ec0a602bc

2.2 启动tomcat

先启动一个

docker run -it -p 8080:8080 tomcat

docker cp复制文件

docker cp 容器id:/usr/local/tomcat/webapps.dist/* /opt/webapps

再启动挂载卷

docker run -it -p 8081:8080 --name tomcat01 -v /opt/webapps:/usr/local/tomcat/webapps tomcat
docker run -it -p 8082:8080 --name tomcat02 -v /opt/webapps:/usr/local/tomcat/webapps tomcat

建文件,建资源

[root@VM-16-8-centos vod]# ll
total 4
-rw-r–r-- 1 root root 11 Apr 14 21:42 a.html
[root@VM-16-8-centos vod]# pwd
/opt/tomcat/webapps/vod

[root@VM-16-8-centos edu]# ll
total 4
-rw-r–r-- 1 root root 8 Apr 14 21:26 a.html
[root@VM-16-8-centos edu]# pwd
/opt/tomcat/webapps/edu

nginx容器方式反向代理实战

2.3 配置nginx

[root@VM-16-8-centos docker-nginx]# vim nginx.conf 

worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;

    server {
      listen 80;
      server_name xxx.xxx.xxx.xxx;

      location ~ /edu/ {
         proxy_pass http://xxx.xxx.xxx.xxx:8081;
      }

      location ~ /vod/ {
         proxy_pass http://xxx.xxx.xxx.xxx:8082;
      }
    }
}

2.4 重启所有服务

docker restart …

2.5 测试

nginx容器方式反向代理实战

nginx容器方式反向代理实战

三、云服务器上跑的nginx怎么代理本地项目

不可以!

要么都在云端,只有代理服务器IP和真实服务器IP能互通的情况下才能代理!!!

总结

到此这篇关于nginx反向代理踩坑实战的文章就介绍到这了!

Servers 相关文章推荐
Nginx服务器添加Systemd自定义服务过程解析
Mar 31 Servers
apache基于端口创建虚拟主机的示例
Apr 24 Servers
Nginx实现高可用集群构建(Keepalived+Haproxy+Nginx)
May 27 Servers
nginx配置虚拟主机的详细步骤
Jul 21 Servers
苹果M1芯片安装nginx 并且部署vue项目步骤详解
Nov 20 Servers
Nginx 反向代理解决跨域问题多种情况分析
Jan 18 Servers
Docker 镜像介绍以及commit相关操作
Apr 13 Servers
Windows Server 2016 配置 IIS 的详细步骤
Apr 28 Servers
Nginx 配置 HTTPS的详细过程
May 30 Servers
详解ZABBIX监控ESXI主机的问题
Jun 21 Servers
django项目、vue项目部署云服务器的详细过程
Jul 23 Servers
Elasticsearch6.2服务器升配后的bug(避坑指南)
Sep 23 Servers
微信告警的zabbix监控系统 监控整个NGINX集群
Apr 18 #Servers
nginx配置之并发频次限制
如何通过cmd 连接阿里云服务器
Linux中如何安装并部署Redis
Apr 18 #Servers
nginx搭建NFS网络文件系统
Mac电脑OS系统下安装Nginx的详细教程
Docker 镜像介绍以及commit相关操作
You might like
Zend的AutoLoad机制介绍
2012/09/27 PHP
php根据isbn书号查询amazon网站上的图书信息的示例
2014/02/13 PHP
解读JavaScript代码 var ie = !-[1,] 最短的IE判定代码
2011/05/28 Javascript
基于jquery可配置循环左右滚动例子
2011/09/09 Javascript
js 控制页面跳转的5种方法
2013/09/09 Javascript
如何将php数组或者对象传递给javascript
2014/03/20 Javascript
使用nodejs、Python写的一个简易HTTP静态文件服务器
2014/07/18 NodeJs
node.js中的console.log方法使用说明
2014/12/09 Javascript
js实现跨域的4种实用方法原理分析
2015/10/29 Javascript
WebApi+Bootstrap+KnockoutJs打造单页面程序
2016/05/16 Javascript
jQuery实现可以编辑的表格实例详解【附demo源码下载】
2016/07/09 Javascript
javascript十六进制数字和ASCII字符之间的转换方法
2016/12/27 Javascript
vue实现抖音时间转盘
2019/09/08 Javascript
vue中动态select的使用方法示例
2019/10/28 Javascript
vue 关闭浏览器窗口的时候,清空localStorage的数据示例
2019/11/06 Javascript
vue 组件简介
2020/07/31 Javascript
HTML元素拖拽功能实现的完整实例
2020/12/04 Javascript
Python中使用pprint函数进行格式化输出的教程
2015/04/07 Python
Python使用dis模块把Python反编译为字节码的用法详解
2016/06/14 Python
Python 移动光标位置的方法
2019/01/20 Python
tensorflow 限制显存大小的实现
2020/02/03 Python
Python过滤掉numpy.array中非nan数据实例
2020/06/08 Python
python hmac模块验证客户端的合法性
2020/11/07 Python
匈牙利最大的健身制造商和销售商:inSPORTline
2018/10/30 全球购物
馥绿德雅美国官方网站:Rene Furterer头皮护理专家
2019/05/01 全球购物
开学典礼感言
2014/02/16 职场文书
可口可乐广告词
2014/03/20 职场文书
2015年见习期个人工作总结
2015/05/28 职场文书
单独二胎证明
2015/06/24 职场文书
繁星春水读书笔记
2015/06/30 职场文书
董事长新年致辞
2015/07/29 职场文书
Go语言应该什么情况使用指针
2021/07/25 Golang
详细谈谈JavaScript中循环之间的差异
2021/08/23 Javascript
mysql中varchar类型的日期进行比较、排序等操作的实现
2021/11/17 MySQL
详解使用内网穿透工具Ngrok代理本地服务
2022/03/31 Servers
vue本地构建热更新卡顿的问题“75 advanced module optimization”完美解决方案
2022/08/05 Vue.js