草庐IT

Java扩展Nginx之四:远程调试

欢迎访问我的GitHub这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos本篇概览本文是《Java扩展Nginx》系列的第四篇,一起来体验个实用的功能,此能力定会让爱学习的您大呼过瘾,它就是广大java程序员在日常开发和定位问题过程中常用的神技:远程调试;看变量、看堆栈,不论阅读代码还是定位问题,打断点都是我们最值得信赖的手段,当您的代码运行在nginx-clojure模块中的时候,如果能像tomcat那样远程打断点,单步调试,会大幅度提高工作效率远程断点的效果如下图所示,通过IDEA的RemoteJVMDebug功能远程连接

nginx 访问静态图片

1.nginx设置nginx.conf2server{listen8881;server_namelocalhost;location/{roothtml;indexindex.htmlindex.htm; }//本地访问图片location/map/{aliasD:/A-Software/MapTileDownloader/map/mapabc/satellite/;autoindexon;} }我的本地图片地址如图:   2.启动nginx 3.访问:http://localhost:8881/map/图片其他路径例如:http://localhost:8881/map/14/135

Docker Nginx安装使用以及踩坑点总结

拉取nginx镜像dockerpullnginx:latest运行镜像暂时不需要配置volume挂载dockerrun--namenginx-p80:80-dnginx参数详解:--namenginx指定容器的名称-p80:80映射端口-d守护进程运行创建volume目录mkdir-p/www/nginx/conf.dmkdir-p/www/nginx/htmlmkdir-p/www/nginx/logmkdir-p/www/nginx/conf拷贝nginx容器对应的文件默认配置(关键)dockercpnginx:/etc/nginx/nginx.conf/www/nginx/conf/ng

Nginx代理后获取客户端真实IP地址

1、场景在项目实际应用中,我们可能会需要获取到用户也就是客户端的真实IP地址,比如记录系统操作日志等情况。2、使用通常情况下我们可以使用以下方式来获取IP地址request.getRemoteAddr()但是当我们使用Nginx反向代理项目地址后,使用以上方法只能获取到Nginx服务器的IP地址,并不是客户端的IP地址。3、解决解决方法很简单,同样也是在Nginx中进行配置,然后在Java中获取即可。首先在nginx.conf配置中添加一行即可:proxy_set_headerX-Real-IP$remote_addr;添加位置如下: 可以看到我这里还添加了其他的 proxy_set_head

Nginx代理后获取客户端真实IP地址

1、场景在项目实际应用中,我们可能会需要获取到用户也就是客户端的真实IP地址,比如记录系统操作日志等情况。2、使用通常情况下我们可以使用以下方式来获取IP地址request.getRemoteAddr()但是当我们使用Nginx反向代理项目地址后,使用以上方法只能获取到Nginx服务器的IP地址,并不是客户端的IP地址。3、解决解决方法很简单,同样也是在Nginx中进行配置,然后在Java中获取即可。首先在nginx.conf配置中添加一行即可:proxy_set_headerX-Real-IP$remote_addr;添加位置如下: 可以看到我这里还添加了其他的 proxy_set_head

nginx常用命令

Linux:cd/usr/local/nginx/sbin/./nginx启动./nginx-sstop停止./nginx-squit安全退出.nginx-sreload重新加载配置文件(修改了config配置文件后执行)psaux|grepnginx查看nginx进程Nginx默认端口是80端口,如果安装后访问不了,查看端口是否被占用。windows:查看端口号:netstat-ano|findstr'端口号'杀掉进程:taskkill/imnginx.exe-f启动直接点击Nginx目录下的nginx.exe或者cmd运行startnginx关闭nginx-sstop或者nginx-squ

微服务---分布式多级缓存集群实现方案(Caffeine+redis+nginx本地缓存+Canal数据同步)

分布式多级缓存集群实现方案1.什么是多级缓存传统的缓存策略一般是请求到达Tomcat后,先查询Redis,如果未命中则查询数据库,如图:存在下面的问题:•请求要经过Tomcat处理,Tomcat的性能成为整个系统的瓶颈•Redis缓存失效时,会对数据库产生冲击多级缓存就是充分利用请求处理的每个环节,分别添加缓存,减轻Tomcat压力,提升服务性能:浏览器访问静态资源时,优先读取浏览器本地缓存访问非静态资源(ajax查询数据)时,访问服务端请求到达Nginx后,优先读取Nginx本地缓存如果Nginx本地缓存未命中,则去直接查询Redis(不经过Tomcat)如果Redis查询未命中,则查询To

Nginx之正向代理与反向代理进阶(支持https)

在【Nginx之正向代理与反向代理】一文中我们实现了将Nginx服务器作为正向代理服务器和反向代理服务器,但美中不足的是仅支持http协议,不支持https协议。我们先看看看http和https的区别:http协议:协议以明文方式发送数据,不提供任何方式的数据加密。不适合传输一些敏感信息,例如密码。其使用的端口是80。https协议:在http协议的基础上,加入了SSL(SecureSocketsLayer),用于对数据进行加密。其使用的端口为443。现在,我们要完成Nginx对https协议的支持。1.Nginx正向代理(http)我们来回顾一下Nginx作为正向代理服务器支持http协议的

nginx模块stream配置

一、stream模块概要。stream模块一般用于tcp/UDP数据流的代理和负载均衡,可以通过stream模块代理转发TCP消息。ngx_stream_core_module模块由1.9.0版提供。默认情况下,没有构建此模块。-必须使用-withstream配置参数启用。也就是说,必须在使用./configure--with-stream编译时添加流模块。流模块的使用方法与http模块相同,语法也基本相同。二、使用场景说明stream主要有两个可用场景。一是实现流量的代理转发。这里所述的代理转发是指,只有一些端口服务被限制为活动IP地址。例如,mysql账户一般将源地址限制为APP应用服务器

nginx和gateway的区别

springcloudgateway网关是解与nginx以及业务应用之间的中间层,主要负载将请求路由到不同的微服务中以及对请求的合法性进行校验。区别网关可以看作系统与外界联通的入口,我们可以再网关进行一些非业务逻辑的逻辑,比如说权限验证,监控,缓存,请求路由等等。gateway是前端工程到后台服务器之间的一个对内网关nginx是用户到前端工程的网关对外网关Nginx在其中扮演的角色:1.反向代理2.负载均衡gateway在其中扮演的角色:统一鉴权,监控,路由