docker基础
Docker前言Docker 是一个开源的应用容器引擎,Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化,解决了运行环境和配置问题的软件容器, 方便做持续集成并有助于整体发布的容器虚拟化技术,达到应用程式跨平台间的无缝接轨运作。
优点:
快速,一致地交付应用程序:Docker 允许开发人员使用您提供的应用程序或服务的本地容器在标准化环境中工作,从而简化了开发的生命周期。
响应式部署和扩展:Docker 的可移植性和轻量级的特性,还可以使您轻松地完成动态管理的工作负担,并根据业务需求指示,实时扩展或拆除应用程序和服务。
在同一硬件上运行更多工作负载:它为基于虚拟机管理程序的虚拟机提供了可行、经济、高效的替代方案,不像虚拟机一样将整个操作系统进行镜像打包,它只基于一个操作系统核心。
Docker架构Docker包含三个主要要素:
镜像(Image):相当于是一个 root 文件系统,比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件 ...
nginx(六)制作下载站点
制作下载站点实现:相关命令:
autoindex:启用或禁用目录列表输出 autoindex on\|off;
autoindex_exact_size:对应HTLM格式,指定是否在目录列表展示文件的详细大小 autoindex_exact_size on|off;
autoindex_format:设置目录列表的格式 autoindex_format html|xml|json|jsonp;
autoindex_localtime:对应HTML格式,是否在目录列表上显示时间 autoindex_localtime on | off;
具体配置:1234567location /download{ root /usr/local; autoindex on; autoindex_exact_size on; autoindex_format html; autoindex_localtime on;}
效果:
如果需要对下载资源进行权限验证可以配置来进行用户认证
相关指令:
auth_ba ...
nginx(五)动静分离
Nginx动静分离因为Nginx在处理静态资源的时候,效率是非常高的,而且Nginx的并发访问量也是名列前茅,而Tomcat则相对比较弱一些,所以把静态资源交个Nginx后,可以减轻Tomcat服务器的访问压力并提高静态资源的访问速度。动静分离以后,降低了动态资源和静态资源的耦合度。如动态资源宕机了也不影响静态资源的展示。
环境配置使用Nginx的反向代理,将请求转给Tomcat进行处理。
12345678910upstream webservice { server 192.168.200.146:8080; # web服务器的地址}server{ listen 80; server_name localhost; location /demo { proxy_pass http://webservice; }}
具体实现1.将demo.war项目中的静态资源都删除掉,重新打包生成一个war包
2.将war包部署到tomcat中,把之前部署的内容删除掉
123进 ...
nginx(四)缓存集成
缓存集成前言Nginx是从0.7.48版开始提供缓存功能。Nginx是基于Proxy Store来实现的,其原理是把URL及相关组合当做Key,在使用MD5算法对Key进行哈希,得到硬盘上对应的哈希目录路径,从而将缓存内容保存在该目录中。
相关指令proxy_cache指令proxy_cache:该指令用来开启或关闭代理缓存,如果是开启则自定使用哪个缓存区来进行缓存。
proxy_cache zone_name|off;
属性说明:
zone_name:指定使用缓存区的名称
proxy_cache_path指令proxy_cache_path:该指定用于设置缓存文件的存放路径
proxy_cache_path path [levels=number] keys_zone=zone_name:zone_size [inactive=time]\[max_size=size];
属性说明:
path:缓存路径地址,如:
1/usr/local/proxy_cache
levels: 指定该缓存空间对应的目录,最多可以设置3层,每层取值为1|2如 :
...
nginx(三)负载均衡
Nginx负载均衡前言早期的网站流量和业务功能都比较简单,单台服务器足以满足基本的需求,但是随着互联网的发展,业务流量越来越大并且业务逻辑也跟着越来越复杂,单台服务器的性能及单点故障问题就凸显出来了,因此需要多台服务器进行性能的水平扩展及避免单点故障出现。
负载均衡就是一种将不同用户的请求流量分发到不同的服务器上的技术
具体作用:1、解决服务器的高并发压力,提高应用程序的处理性能。
2、提供故障转移,实现高可用。
3、通过添加或减少服务器数量,增强网站的可扩展性。
4、在负载均衡器上进行过滤,可以提高系统的安全性。
实现方式手动选择这种方式比较原始,只要实现的方式就是在网站主页上面提供不同线路、不同服务器链接方式,让用户来选择自己访问的具体服务器,来实现负载均衡。
DNS轮询大多域名注册商都支持对同一个主机名添加多条A记录,这就是DNS轮询,DNS服务器将解析请求按照A记录的顺序,随机分配到不同的IP上,这样就能完成简单的负载均衡。DNS轮询的成本非常低,在一些不重要的服务器,被经常使用。
相当于一个域名绑定多个ip,让DNS进行轮询。
但是这种方式有两个缺点:
可靠性低
负载均衡 ...
Nginx(二)代理服务
Nginx代理服务正向代理正向代理是一个位于客户端和目标服务器之间的代理服务器(中间服务器)。为了从目标服务器取得内容,客户端向代理服务器发送一个请求,并且指定目标服务器,之后代理向目标服务器转发请求,将获得的内容返回给客户端。正向代理的情况下,客户端必须要进行一些特殊的设置才能使用。
在代理服务器中进行设置(这样让客户端直接向代理服务器发请求)
1234567server { listen 82; resolver 8.8.8.8; location /{ proxy_pass http://$host$request_uri; }}
反向代理Nginx反向代理模块的指令是由ngx_http_proxy_module模块进行解析,该模块在安装Nginx的时候已经自己加装到Nginx中了
基本的相关指令proxy_pass指令proxy_pass:该指令用来设置被代理服务器地址,可以是主机名称、IP地址加端口号形式。
proxy ...
Nginx(一)
NginxNginx概念Nginx(“engine x”)一个具有高性能的HTTP和反向代理的WEB服务器,同时也是一个POP3/SMTP/IMAP代理服务器
HTTP:HTTP是超文本传输协议的缩写,是用于从WEB服务器传输超文本到本地浏览器的传输协议,也是互联网上应用最为广泛的一种网络协议。
反向代理:反向代理服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获得目标服务器的资源。同时,用户不需要知道目标服务器的地址,也无须在用户端作任何设定。(就相当于去代理服务器而不是客户端)
POP3/SMTP/IMAP:
OP3(Post Offic Protocol 3)邮局协议的第三个版本
SMTP(Simple Mail Transfer Protocol)简单邮件传输协议
IMAP(Internet Mail Access Protocol)交互式邮件存取协议
优点:
速度更快、并发更高:Nginx采用了多进程和I/O多路复用(epoll)的底层实现
配置简单,扩展性强:Nginx的设计极具扩展性,它本身就 ...
Swagger2
Swagger2前言由于目前大趋势,都是进行前后端的开发模式。在这样的背景下,前后端的交流是必不可少的。相信无论是前端还是后端开发,都或多或少地被接口文档折磨过。前端经常抱怨后端给的接口文档与实际情况不一致。后端又觉得编写及维护接口文档会耗费不少精力,经常来不及更新。
Swagger的诞生完美的解决了上述问题,你只需要按照它的规范去定义接口及接口相关的信息。再通过Swagger衍生出来的一系列项目和工具,就可以做到生成各种格式的接口文档,生成多种语言的客户端和服务端的代码,以及在线接口调试页面等等
所提供的开源工具
Swagger Codegen: 通过Codegen 可以将描述文件生成html格式和cwiki形式的接口文档,同时也能生成多钟语言的服务端和客户端的代码。支持通过jar包,docker,node等方式在本地化执行生成。也可以在后面的Swagger Editor中在线生成。
Swagger UI:提供了一个可视化的UI页面展示描述文件。接口的调用方、测试、项目经理等都可以在该页面中对相关接口进行查阅和做一些简单的接口请求。该项目支持在线导入描述文件和本地部署UI项目。
...
SpringBoot日志
SpringBoot日志概念
日志文件:日志文件是用于记录系统操作事件的文件集合,可分为调试日志和系统日志。具有处理历史数据、诊断问题的追踪以及理解系统的活动等重要作用。
调试日志文件:软件开发中,我们经常需要去调试程序,做一些信息,状态的输出便于我们查询程序的运行状况,调试日志就可以帮我们记录下来方便查看
系统日志:系统日志是记录系统中硬件、软件和系统问题的信息,同时还可以监视系统中发生的事件。用户可以通过它来检查错误发生的原因,或者寻找受到攻击时攻击者留下的痕迹。系统日志包括系统日志、应用程序日志和安全日志。
日志框架介绍日志门面:
JCL
SLF4j
日志实现:
JUL
Logback
Log4j
Log4j2
日志门面就是在日志框架和应用程序之间架设一个沟通的桥梁(如JDBC),主要是为了给Java日志访问提供一套标准、规范的API框架。但是日志的配置文件还是写日志实现自身的配置文件
常用选择(SpringBoot底层也是这样的搭配):SLF4j(门面)+ Logback(实现)
SLF4j使用最基本的使用1234567891011121314@Slf4j@Spr ...
Spring Security
Spring Security简介Spring Security 基于 Spring 框架,提供了一套 Web 应用安全性(两方面)的完整解决方案。目前比较主流的用法也是Spring Boot/Spring Cloud + Spring Security
Web 应用的安全性包括:用户认证(Authentication)和用户授权(Authorization)两个部分,这两点也是Spring Security重要核心功能。
认证:验证当前访问系统的是不是本系统的用户,并且要确认具体是哪个用户(一般采用用户名和密码的形式)
授权:经过认证后判断当前用户是否有权限进行某个操作
快速入门
导入依赖
12345678<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId></dependency><dependency> < ...