VUE项目打包后发布到Docker的Nginx服务器后,基本使用正常,发现前端有一个404错误,但页面显示正常,在退出登录后,跳转到404页面,便这个404页面是nginx缺省的,并不是自己vue项目的,参考网上资料后搞定了此问题,特此记录:
注意打包文件拷贝的目标路径,后面的default.conf要一致,否则会有问题
FROM urbgn6za.mirror.aliyuncs.com/library/nginx
MAINTAINER Wu Jize <wujize188@163.com>
RUN rm /etc/nginx/conf.d/default.conf
ADD default.conf /etc/nginx/conf.d/
#文件拷贝到镜像的目标路径,后面用$uri可以访问到,
COPY dist/ /etc/nginx/html/
Nginx启动配置文件是default.conf文件,这个文件要特别注意格式
为一名web程序开发工程师,手上有几个自己的站点,每天除了发布新的内容外,也会关注各自的流量变化,今日查看其中一个站点的时候,发现CNZZ统计过滤了大量PV,均来自于一个不属于我的域名,于是将该域名放到站长工具检测一看,好家伙,PR以及关键词和我的一样,于是访问该域名查看源代码仔细研究了一番,首先排除了采集的可能性,因为我全站都是绝对路径,他的一点也没改变,和我完全一样。于是想到了恶意解析,翻阅了相关资料,都提到了这个原因,于是进入服务器配置一看,果不其然,没有禁用默认的空主机头,于是赶紧将其禁用,顺便将此域名301跳转到我的域名下面,以示“惩罚”,以下是我禁用空主机头以及重定向的源码
NameVirtualHost *
ServerAdmin xxx@xxx.com
DocumentRoot /404.html
ServerName www.恶意域名.com
ServerAlias 恶意域名.com
RedirectMatch permanent ^/(.*) http://www.我的域名.com/
配置完成后,重启服务,访问该恶意域名,顺利跳转至我的域名,大功告成!
很多建站新手,包括一些资深的研发人员把网站建设完成之后,在环境搭建的过程中可能没有注意到,不同的服务商,可能给的基础环境有所不同,大家拿到手之后要仔细检查一下,恶意解析会带来一系列的负面影响,首先是消耗你的服务器资源,占用服务器带宽;其次是,一旦被工信部发现,这台服务器上的域名都会受到影响,带来很大损失。
HTTP 全称:HyperText Transfer Protocol ,超文本传输协议。
HTTP 从客户端到服务器端等一系列运作流程提供规范,是目前互联网上使用的最广泛的一种规范。
TCP/IP 协议族可以分为 4 层,分别是应用层、传输层、网络层和链路层。
1. 应用层:应用服务之间的通信协议规范,如 FTP、DNS 和 HTTP 都在这层。
2. 传输层:传输层对应用层传输两台计算机之间的数据。传输层主要使用以下两种协议:
3. 网络层:网络层对传输层提供的数据包进行传送。用来处理网络上流动的数据包,使用无连接的网际协议 IP 和许多种路由选择协议。网络层还有另一个任务就是选择合适的路由。
4. 链路层(数据链路层):硬件上的处理均在链路层的范围内。如:操作系统、硬件设备的驱动、网卡等。
TCP/IP 协议族分层的优点是:
TCP/IP 协议族按层次分为以下 4 层:应用层、传输层、网络层和数据链路层。
OSI 则分为 7 层:应用层、表示层、会话层、运输层、网络层、数据链路层和物理层。
对应关系如下:
通过 TCP/IP 协议通信方式,会遵循分层的顺序与对方进行通信
IP 网际协议处于网络层,用于传送数据包。它通过 IP 地址和 MAC 地址将数据包传送到指定的位置。
其中 IP 地址指明了分配给节点的地址,可变化;MAC 地址指明了所属网卡的固定地址,不可变化。
IP 之间的通信是依赖于 MAC 地址的,在网络通信的过程中,根据 ARP (一种地址解析协议)协议,通过 IP 反查出对应 MAC 地址,再通过 MAC 地址来搜索中转目标。
TCP 协议提供可靠的字节流服务,主要是通过采用三次握手的策略来确保传输数据的准确性的。
用 TCP 协议将数据包发送之后,它会向对方确认是否成功送达。握手过程中使用了 TCP 的标志(flag)——SYN(synchronize)和 ACK(acknowledgement)。
DNS 全称为 Domain Name System。
DNS 协议与 HTTP 一样位于应用层,主要负责将域名和 IP 之间的相互解析。
方法名称含义GET(获取资源)请求访问已被 URI 标识的资源。响应返回经服务器解析后的内容POST(传输实体主题)GET 和 POST 都可以传输实体的主题,但一般使用 POST 方法来传输。区别在意 POST 的主要目的并不是获取响应的主体内容。PUT(传输文件)用来传输文件。将文件内容放到请求报文的主题之中,然后放到请求的 URI 中HEAD(获得报文首部)HEAD 方法和 GET 方法一样,但不返回报文主体的部分。用于确认 URI 是否有效及更新资源的时间等。DELETED(删除文件)用来删除文件,与 PUT 方法相反。DELETED 根据请求删除 URI 内指定的资源OPTIONS(询问支持的方法)查询根据请求 URI 指定的资源支持方法TRACE(路径追踪)让 Web 服务器端将之前的请求返回个客户端的方法CONNECT(用隧道协议连接代理)与代理服务器通信时建立隧道,使用 SSL 和 TLS 协议把加密后的通信内容经网络隧道进行传输。
在使用 HTTP 协议建立通信之后,在没有提出要断开连接的时候,TCP 将一直保持连接状态。
持久连接好处是减少了 TCP 连接的重复建立和断开所造成的的额外开销,减轻了服务器端的负载。而且减少重复建立连接的时间可以使 HTTP 请求和相应更早的结束,这样 Web 页面的加载速度也相应提高了。
HTTP 协议交互的信息被称为 HTTP 报文。报文大致可以分为报文首部和报文主体两块,两者由空行(CR+LF)来划分,报文主体可以不要。
报文首部服务器端或者客户端需要处理的请求或响应的内容及属性空行(CR+LF)CR(回车)+ LF(换行)报文主体应被发送的数据(可以不要
1. 客户端的 HTTP 报文被称为请求报文
2. 服务器端的 HTTP 报文为响应报文
由上可知,请求报文和相应报文都是由请求行、状态行、首部字段和其他组成。
注意:通常报文主体等同于实体主体。但是如果在传输的过程中进行编码操作,实体主体的内容将发生变化,会导致它和报文主体产生差异。
可以通过首部字段 Range 来指定资源的 byte 的范围。
1. 1001~2000 字节
Range:bytes=1001-2000
2. 1001 以后的所有字节
Range:bytes=1001-
3. 从开始到 1000 字节和 2001~5000 的多重范围
Range:bytes=0-1000,2001-5000
针对范围请求,响应会返回状态码为 206 的响应报文。而对于多重范围的范围请求,响应会在首部字段 ContentType 标明 multipart/byteranges 后返回响应报文。
内容协商机制是指客户端和服务器端就响应的资源内容进行交涉,然后提供给客户端最为适合的资源。内容协商会以响应资源的语言、字符集、编码方式等作为判断的基准。其内容包含在首部以下字段中:Accept、Accept-Charset、Accept-Encoding、Accept-Language、Content-Language。
内容协商包括:服务器驱动协商、客户端驱动协商和透明协商三种。
HTTP 协议无状态在一个会话里面,不同的两次请求彼此是不了解。
但是通过 Cookie 或者 Session 可以将状态保存,后续访问可能利用到前面的信息。
HTTP 状态码全称:HTTP Status Code。表示服务器在响应超文本传输协议访问的时候返回的状态 3 位数字代码。例如,当客户端向服务端进行 HTTP 请求的时候,服务器会返回一个代码数据来回应请求,这个代码数据就是: HTTP 状态码。
HTTP 协议的请求和响应报文中必定包含 HTTP 首部。首部内容为客户端和服务器分别处理请求和响应提供所需要的信息。
在请求中,HTTP 报文由方法、URI、HTTP 版本、HTTP 首部字段等部分构成。
在响应中,HTTP 报文由 HTTP 版本、状态码(数字和原因短语)、HTTP 首部字段 3 部分构成。
首部字段的主要作用:给浏览器和服务器提供一些必要信息,如报文主体 SIZE、语言类型、认证方式等内容。它是 HTTP 报文的组成要素之一。
首部字段构成方式:由字段名称和字段值组成,用冒号“:”分隔。例如:Content-type:text/html。首部字段可以有多个值组成。
首部字段类型总共分为四类。如下所示:
通用首部字段
(请求报文与响应报文
都会使用的首部字段)Date创建报文时间Connection连接的管理Cache-Control缓存的控制Transfer-Encoding报文主体的传输编码方式请求首部字段
(请求报文会使用的首部字段)Host请求资源所在服务器Accept可处理的媒体类型Accept-Charset可接收的字符集Accept-Encoding可接受的内容编码Accept-Language可接受的自然语言响应首部字段
(响应报文会使用的首部字段)Accept-Ranges可接受的字节范围Location令客户端重新定向到的 URIServerHTTP 服务器的安装信息实体首部字段
(请求报文与响应报文的实体
部分使用的首部字段)Allow资源可支持的 HTTP 方法Content-Type实体主类的类型Content-Encoding实体主体适用的编码方式Content-Language实体主体的自然语言Content-Length实体主体的的字节数Content-Range实体主体的位置范围,一般用于发出部分请求时使用
缺点:
解决方案:
1. 加密处理预防窃听
2. 使用 SSL 可以验证对方身份。SSL 除了具备加密处理能力,还使用了称为证书的方法,可用于确定通信方。
3. 可以使用 MD5 和 SHA1 等散列值校验的方法,以及用来确认文件的数字签名方法。
非常可惜的是,以上的一些方法仍然存在很大的风险,如果想要有效地保证信息的安全性,则需要使用 HTTPS。
HTTP + 加密 + 认证 + 完整性保护 = HTTPS
1. HTTP 加上加密处理和认证以及完整性保护后即是 HTTPS
2. HTTPS 是身披 SSL 外壳的 HTTP
公开密钥加密处理起来比共享密钥加密方式更为复杂,因此若在通信时使用公开密钥加密方式,效率就很低。
1. 使用公开密钥加密方式,安全地交换在稍后的共享密钥加密中要使用的密钥
2. 确保交换的密钥是安全的前提下,使用共享密钥加密方式进行通信。
SQL 注入是一种注入攻击。攻击者通过将破坏性 SQL 代码进行数据库查询,使攻击者能够完全控制数据库资源。
XSS 全称:跨站脚本攻击(Cross Site Scripting)。是将前端脚本代码插入 Web 页面中,当用户浏览页面时,会执行嵌套在 Web 页面里面的脚本代码,从而达到攻击用户的目的。
XSS 类型包括:
CSRF:Cross-site request forgery 跨站请求伪造。
cookie 是网站利用来识别用户的,用户成功登陆之后浏览器就会得到一个 cookie 来标识其身份,在不关闭浏览器或者退出登录,以后访问这个网站会带上这个 cookie。
*请认真填写需求信息,我们会在24小时内与您取得联系。