nginx反向代理踩坑实战记录(容器方式)

 更新时间:2022年04月18日 10:39:06   作者:小蜗牛耶  
Nginx是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务,下面这篇文章主要给大家介绍了关于nginx反向代理踩坑(容器方式)的相关资料,需要的朋友可以参考下

一、简述

1.1 什么是反向代理?

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

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

image-20220414221430951

1.2 看图理解

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

image-20220414221938713

1.3 错误总结

错误记录:

nginx和tomcat全容器化

用nginx代理两台tomcat服务器,

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

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

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

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

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

以下是错误演示

image-20220414222411746

二、正确案例

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

image-20220414222221521

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 测试

image-20220414222135749

image-20220414222322111

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

不可以!

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

总结

到此这篇关于nginx反向代理踩坑实战的文章就介绍到这了,更多相关nginx反向代理踩坑内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • nginx如何根据报文里字段转发至不同地址

    nginx如何根据报文里字段转发至不同地址

    要在 Nginx 中根据 POST 请求的 JSON 负载中的 id 字段的值进行转发,你可以使用 Nginx 的 ngx_http_lua_module 模块,这个模块允许你在 Nginx 配置中使用 Lua 脚本,本文介绍nginx如何根据报文里字段转发至不同地址,感兴趣的朋友一起看看吧
    2024-12-12
  • Nginx rewrite和proxy_pass的区别及说明

    Nginx rewrite和proxy_pass的区别及说明

    这篇文章主要介绍了Nginx rewrite和proxy_pass的区别及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-06-06
  • Nginx 实现灰度发布的三种方法总结

    Nginx 实现灰度发布的三种方法总结

    这篇文章主要介绍了Nginx 实现灰度发布的三种方法总结的相关资料,需要的朋友可以参考下
    2017-05-05
  • 查看nginx配置文件路径和资源文件路径的方法

    查看nginx配置文件路径和资源文件路径的方法

    这篇文章主要介绍了查看nginx配置文件路径和资源文件路径,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-11-11
  • nginx中path模式配置示例

    nginx中path模式配置示例

    这篇文章主要介绍了nginx中path模式配置示例,nginx服务器默认是不支持pathinfo模式的,需要修改配置才可以实现,本文即给出了配置示例,需要的朋友可以参考下
    2014-12-12
  • 详解Nginx反向代理实现会话(session)保持的两种方式

    详解Nginx反向代理实现会话(session)保持的两种方式

    这篇文章主要介绍了详解Nginx反向代理实现会话(session)保持的两种方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08
  • 讲解Nginx服务器中设置本地浏览器缓存的简单方法

    讲解Nginx服务器中设置本地浏览器缓存的简单方法

    这篇文章主要介绍了Nginx服务器中设置本地浏览器缓存的简单方法,需要的朋友可以参考下
    2015-12-12
  • PHP的Symfony和CodeIgniter框架的Nginx重写规则配置

    PHP的Symfony和CodeIgniter框架的Nginx重写规则配置

    这篇文章主要介绍了PHP的Symfony和CodeIgniter框架的Nginx重写规则配置,文中截取配置中关键的一些rewrite写法进行讲解,需要的朋友可以参考下
    2016-01-01
  • nginx镜像构建的知识点及方法步骤详解

    nginx镜像构建的知识点及方法步骤详解

    这篇文章主要为大家介绍了nginx镜像构建的知识点详解,<BR>有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-08-08
  • nginx部署多个前端项目详细步骤

    nginx部署多个前端项目详细步骤

    最近一台服务器要配置多个前端项目,当然前后端分离就需要nginx来配置了,下面这篇文章主要给大家介绍了关于nginx部署多个前端项目的详细步骤,需要的朋友可以参考下
    2023-10-10

最新评论