使用varnish为网站加速

news/2024/5/14 19:52:04/文章来源:https://blog.csdn.net/weixin_41843699/article/details/98072055

一、 varnish概述
Varnish是一款高性能的开源HTTP加速器,挪威最大的在线报纸 Verdens Gang (http://www.vg.no) 使用3台Varnish代替了原来的12台squid,性能居然比以前更好。
Varnish 的作者Poul-Henning Kamp是FreeBSD的内核开发者之一,他认为现在的计算机比起1975年已经复杂许多。在1975年时,储存媒介只有两种:内存与硬盘。但现在计算 机系统的内存除了主存外,还包括了cpu内的L1、L2,甚至有L3快取。硬盘上也有自己的快取装置,因此squid cache自行处理物件替换的架构不可能得知这些情况而做到最佳化,但操作系统可以得知这些情况,所以这部份的工作应该交给操作系统处理,这就是 Varnish cache设计架构。
处理缓存的顺序: 接受到请求 –- 分析请求(分析你的URL,分析你的首部) – hash计算 – 查找缓存 – 新鲜度检测 — 访问源 — 缓存 – 建立响应报文 – 响应并记录日志
varnish监听的端口号:6081
官方网址:https://www.varnish-cache.org/
varnish下载地址:https://www.varnish-cache.org/releases
1、 varnish基础概念详解
1)比起squid更加轻量级,大致有以下几个特点:
2)可以基于内存缓存,也可以在磁盘上缓存
3)如果期望内存大小超过几十个G,比如图片服务器,纯粹使用内存,性能未必好,这时候可以使用磁盘进行缓存,或使用SSD X 2 做RAID1避免磁盘损坏,在实现随机访问上 ssd硬盘要比机械硬盘要好的多,如果必须要缓存在磁盘上还是建议使用ssd磁盘
4)可以利用虚拟内存方式,IO性能会非常好
5)支持设置0-60秒 精确缓存时间

2、 支持VCL
其配置是通过vcl编程语言来完成的。 其配置需要先转换成C代码,所以使用vcl所写的配置,要先转换成C语言代码,因此要依赖于GCC 临时的编译vcl配置的,编译完之后才能运行起来
注: Varnish Configuration Language - VCL(varnish配置语言-VCL)。
Varnish使用区域配置语言,这种语言叫做“VCL”(varnish configuration language),在执行vcl时,varnish就把VCL转换成二进制代码。
VCL文件被分为多个子程序,不同的子程序在不同的时间里执行,比如一个子程序在接到请求时执行,另一个子程序在接收到后端服务器传送的文件时执行。

3、 独特的日志存储及管理机制
日志既然保存在内存中,日志可以供多个应用程序所访问,所以一般查看命中率,当前请求有多少get post 方法等等,都需使用专用的工具才可以查看,比如 varnishlog 等命令工具用来查看日志信息

4、 支持使用varnish状态引擎
通过巧妙的状态引擎的设计完成不同的引擎对用户的请求和缓存代理机制进行处理,用配置文件为状态引擎提供状态法则,完成缓存处理、完成代理处理等等

二、 varnish缓存原理
1、 vanish缓存数据机制
在这里插入图片描述

2、 VCL处理流程图
在这里插入图片描述
处理过程大致分为如下几个步骤:
(1)Receive状态,也就是请求处理的入口状态,根据VCL规则判断该请求应该是Pass或Pipe,或者进入Lookup(本地查询)。
(2)Lookup状态,在缓存中查找用户请求的对象,如果缓存中没有其请求的对象,后续操作很可能会将其请求的对象进行缓存;进入此状态后,会在hash表中查找数据,若找到,则进入Hit状态,否则进入miss状态。

(3)Pass状态,在此状态下,会进入后端请求,即进入fetch取状态。
(4)Fetch状态,在Fetch取状态下,对请求,进行后端的获取,发送请求,获得数据,并进行本地的存储。
(5)Deliver 提供状态, 将获取到的数据发送给客户端,然后完成本次请求。
注:
pass:绕过缓存,即不从缓存中查询内容或不将内容存储至缓存中;
pipe:不对客户端进行检查或做出任何操作,而是在客户端与后端服务器之间建立专用“管道”,并直接将数据在二者之间进行传送;此时,keep-alive连接中后续传送的数据也都将通过此管道进行直接传送,并不会出现在任何日志中;

流程:
在这里插入图片描述

总结:用户通过varnish加速时,有4条线路可以获取数据
在这里插入图片描述

三、 源码编译安装varnish
1、 安装依赖包
[root@xuegod120 ~]# yum install autoconf automake libedit-devel libtool ncurses-devel pcre-devel pkgconfig python-docutils python-sphinx graphviz –y

2、 源码安装varnish
上传varnish-6.2.0包到服务器
[root@xuegod120 ~]# tar xf varnish-6.2.0.tgz
[root@xuegod120 ~]# cd varnish-6.2.0/
[root@xuegod120 varnish-6.2.0]# ./configure --prefix=/usr/local/varnish/
在这里插入图片描述
错误提示:安装varnish6.2.0需要python的版本大于3.4,centos7.5,自带的python版本是2.7,所以需要先升级python版本,再进行安装
下载python最新版本,这里使用python3.7.4,下载之后,上传到服务器
源码编译安装python
安装依赖包:
[root@xuegod120 ~]# tar xf Python-3.7.4.tgz
[root@xuegod120 ~]# cd Python-3.7.4/
[root@xuegod120 Python-3.7.4]# ./configure
[root@xuegod120 Python-3.7.4]# make && make install
错误提示:
zipimport.ZipImportError: can’t decompress data; zlib not available

解决方法:yum -y install zlib*

错误提示:
ModuleNotFoundError: No module named ‘_ctypes’

解决方法:yum install libffi-devel –y

查看python版本
在这里插入图片描述

设置python3为默认版本
[root@xuegod120 Python-3.7.4]# mv /usr/bin/python /usr/bin/python.2.7
[root@xuegod120 Python-3.7.4]# ln -s /usr/local/bin/python3 /usr/bin/python
[root@xuegod120 Python-3.7.4]# python -V
Python 3.7.4
因为yum命令默认指向是Python2,升级Python后,yum命令无法使用,错误如下:
[root@xuegod120 ~]# yum list
File “/usr/bin/yum”, line 30
except KeyboardInterrupt, e:
^
SyntaxError: invalid syntax
修改/usr/bin/yum和/usr/libexec/urlgrabber-ext-down,将 #!/usr/bin/python 改为 #!/usr/bin/python2.7保存退出即可

继续安装varnish
[root@xuegod120 varnish-6.2.0]# ./configure --prefix=/usr/local/varnish
[root@xuegod120 varnish-6.2.0]# make && make install

3、 varnish配置文件
源码安装的varnish没有配置文件,需要手动创建复制一份
[root@xuegod120 ~]# cd /usr/local/varnish/
[root@xuegod120 ~]# mkdir etc/
[root@xuegod120 varnish]# cp share/doc/varnish/example.vcl etc/default.vcl

四、 yum安装varnish
参考资料:https://packagecloud.io/varnishcache/varnish62/install#manual-rpm
使用yum安装,手动创建yum源文件之后,使用yum命令安装,可以不远提前安装varnish的依赖包,会自动解决所有需要的依赖,python版本也不用升级,可以自动解决python版本问题。

1、 添加varnish的yum源文件
[root@xuegod120 ~]# vim /etc/yum.repos.d/varnishcache_varnish62.repo
[varnishcache_varnish62]
name=varnishcache_varnish62
baseurl=https://packagecloud.io/varnishcache/varnish62/el/7/$basearch
repo_gpgcheck=1
gpgcheck=0
enabled=1
gpgkey=https://packagecloud.io/varnishcache/varnish62/gpgkey
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300

[varnishcache_varnish62-source]
name=varnishcache_varnish62-source
baseurl=https://packagecloud.io/varnishcache/varnish62/el/7/SRPMS
repo_gpgcheck=1
gpgcheck=0
enabled=1
gpgkey=https://packagecloud.io/varnishcache/varnish62/gpgkey
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300

2、 使用yum安装varnish
[root@xuegod120 ~]# yum -y install varnish

3、 查看varnish的安装目录
[root@xuegod120 ~]# rpm -ql varnish

4、 varnish的配置文件
[root@xuegod120 ~]# ll /etc/varnish/default.vcl

五、 实战:缓存一个网站
1、 环境介绍
主机名 IP地址 作用
xuegod120 192.168.1.120 varnish服务器
xuegod140 192.168.1.140 web服务器

2、 配置xuegod120成为varnish服务器
上面已经配置完毕,这里省略。两种安装方式都可行。

3、 编辑varnish的配置文件
配置一个后端web服务器
[root@xuegod120 ~]# cd /usr/local/varnish/etc/
[root@xuegod120 etc]# vim default.vcl
改:
16 backend default {
17 .host = “127.0.0.1”;
18 .port = “8080”;
19 }
为:
16 backend web1 {
17 .host = “192.168.0.140”;
18 .port = “80”;
19 }

查看缓存命中情况:
改:
35 sub vcl_deliver {
36 # Happens when we have all the pieces we need, and are about to send the
37 # response to the client.
38 #
39 # You can do accounting or modifying the final object here.
40 }
为:
35 sub vcl_deliver {
36 if (obj.hits > 0) {
37 set resp.http.X-Cache = “HIT from xuegod cache”;
38 }
39 else {
40 set resp.http.X-Cache = “Miss from xuegod cache”;
41 }
42 return (deliver);
43 }
保存退出。

4、 配置varnish环境变量
yum方式安装,需要配置
[root@xuegod120 ~]# vim /etc/profile.d/varnish.sh
export PATH=/usr/local/varnish/bin:/usr/local/varnish/sbin:$PATH
[root@xuegod120 ~]# . /etc/profile.d/varnish.sh

5、 启动varnish服务
yum方式安装,直接使用如下命令
[root@xuegod120 ~]# systemctl start varnish
[root@xuegod120 ~]# netstat -antup | grep varnish
tcp 0 0 0.0.0.0:6081 0.0.0.0:* LISTEN 16152/varnishd

源码编译启动服务的方法:
[root@xuegod120 ~]# varnishd -a 192.168.0.120:80,HTTP -f /usr/local/varnish/etc/default.vcl
Debug: Version: varnish-6.0.3 revision 7d1ded3aa033a018317dbafc61587026ea2ef8a3
Debug: Platform: Linux,3.10.0-862.el7.x86_64,x86_64,-jnone,-sdefault,-sdefault,-hcritbit
Debug: Child (15386) Started
[root@xuegod120 ~]# netstat -antup | grep varnishd
tcp 0 0 127.0.0.1:44742 0.0.0.0:* LISTEN 15376/varnishd
tcp 0 0 192.168.0.120:80 0.0.0.0:* LISTEN 15376/varnishd
tcp6 0 0 ::1:41529 ::? LISTEN 15376/varnishd

注意:yum安装varnish默认使用6081端口,源码编译启动后的端口指定为80

6、 配置xuegod140为web服务器
[root@xuegod140 ~]# yum -y install httpd
[root@xuegod140 ~]# echo xuegod140.com > /var/www/html/index.html
[root@xuegod140 ~]# systemctl start httpd
7、 访问测试
测试源web站点:
在这里插入图片描述

测试加速站点:
在这里插入图片描述
8、 测试缓存命中
扩展:curl命令
curl是通过url语法在命令行下上传或下载文件的工具软件,它支持http,https,ftp,ftps,telnet等多种协议,常被用来抓取网页和监控Web服务器状态。
参数:
-I只取http响应头的信息,不取网页内容
例1:查看xuegod140web站点的服务器类型
[root@xuegod150 ~]# curl -I 192.168.0.140
HTTP/1.1 200 OK
Date: Thu, 01 Aug 2019 07:49:24 GMT
Server: Apache/2.4.6 (CentOS)
Last-Modified: Thu, 01 Aug 2019 07:46:18 GMT
ETag: “e-58f096fe53c29”
Accept-Ranges: bytes
Content-Length: 14
Content-Type: text/html; charset=UTF-8

例2:查看加速缓存命中
[root@xuegod150 ~]# curl -I 192.168.0.120
HTTP/1.1 200 OK
Date: Thu, 01 Aug 2019 07:47:59 GMT
Server: Apache/2.4.6 (CentOS)
Last-Modified: Thu, 01 Aug 2019 07:46:18 GMT
ETag: “e-58f096fe53c29”
Content-Length: 14
Content-Type: text/html; charset=UTF-8
X-Varnish: 10 7
Age: 52
Via: 1.1 varnish (Varnish/6.0)
X-Cache: HIT from xuegod cache #命中,因为之前用浏览器访问过
Accept-Ranges: bytes
Connection: keep-alive #长链接

未命中如下提示:
X-Cache: MISS from linuxidc cache

9、 开启apache长链接功能
[root@xuegod140 ~]# vim /etc/httpd/conf/httpd.conf
改: 76 KeepAlive Off
为: KeepAlive On
注意:如果 httpd.conf文件中没有KeepAlive Off,则需要手动添加。
[root@xuegod120 ~]# service httpd restart

10、 再次测试
[root@xuegod150 ~]# curl -I 192.168.0.120
HTTP/1.1 200 OK
Date: Thu, 01 Aug 2019 07:54:53 GMT
Server: Apache/2.4.6 (CentOS)
Last-Modified: Thu, 01 Aug 2019 07:46:18 GMT
ETag: “e-58f096fe53c29”
Content-Length: 14
Content-Type: text/html; charset=UTF-8
X-Varnish: 65538
Age: 0
Via: 1.1 varnish (Varnish/6.0)
X-Cache: Miss from xuegod cache #未命中
Accept-Ranges: bytes
Connection: keep-alive

再次测试
[root@xuegod150 ~]# curl -I 192.168.0.120
HTTP/1.1 200 OK
Date: Thu, 01 Aug 2019 07:54:53 GMT
Server: Apache/2.4.6 (CentOS)
Last-Modified: Thu, 01 Aug 2019 07:46:18 GMT
ETag: “e-58f096fe53c29”
Content-Length: 14
Content-Type: text/html; charset=UTF-8
X-Varnish: 65541 65539
Age: 19
Via: 1.1 varnish (Varnish/6.0)
X-Cache: HIT from xuegod cache #命中
Accept-Ranges: bytes
Connection: keep-alive

注:默认apache是没有开启长链接功能的,一段时间后,就会自动关闭

11、 修改yum方式安装varnish端口
[root@xuegod120 ~]# vim /usr/lib/systemd/system/varnish.service
修改里面的6081端口为80,重启varnish即可
[root@xuegod120 ~]# systemctl stop varnish
[root@xuegod120 ~]# systemctl start varnish
[root@xuegod120 ~]# !net
netstat -antup | grep varnish
tcp 0 0 127.0.0.1:35360 0.0.0.0:* LISTEN 16604/varnishd
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 16604/varnishd
tcp6 0 0 ::1:35870 ::? LISTEN 16604/varnishd
tcp6 0 0 :::80 ::? LISTEN 16604/varnishd

12、 varnish的其它用法
例1:清空页面缓存
[root@xuegod120 ~]# varnishadm -S /etc/varnish/secret -T 192.168.1.63:80 ‘ban req.url ~ /index.html’ #清除index.html页面缓存。

例2:清空目录缓存
[root@xuegod120 ~]# varnishadm -S /etc/varnish/secret -T 192.168.1.63:80 ‘ban req.url ~ /index/’ #也可以清除目录。

六、 实战:使用varnish缓存多个网站
1、 配置xuegod150为web服务器
[root@xuegod150 ~]# yum -y install httpd
[root@xuegod150 ~]# echo xuegod150.com > /var/www/html/index.html
[root@xuegod150 ~]# systemctl start httpd

2、 配置varnish服务器
改:
16 backend web1 {
17 .host = “192.168.1.64”;
18 .port = “80”;
19 }
为:
backend web1 {
.host = “192.168.0.140”;
.port = “80”;
}

backend web1 {
.host = “192.168.0.150”;
.port = “80”;
}
#当访问www.xuegod.cn域名时从web1上取数据,访问bbs.xuegod.cn域名时到web2取数据,访问其他页面报错。
[root@xuegod120 ~]# vim /etc/varnish/default.vcl #在之前的sub vcl_deliver { 。。。 } 之前,插入以下内容:
38 sub vcl_recv {
39 if (req.http.host ~ “^(www.)?xuegod.cn”){
40 set req.http.host = “www.xuegod.cn”;
41 set req.backend_hint = web1;
42 } elsif (req.http.host ~ “^bbs.xuegod.cn”) {
43 set req.backend_hint = web2;
44 }
45 }

3、 重启加载varnish的配置文件
[root@xuegod120 ~]# killall varnishd
[root@xuegod120 ~]# varnishd -a 192.168.0.120:80,HTTP -f /usr/local/varnish/etc/default.vcl
Debug: Version: varnish-6.0.3 revision 7d1ded3aa033a018317dbafc61587026ea2ef8a3
Debug: Platform: Linux,3.10.0-862.el7.x86_64,x86_64,-jnone,-sdefault,-sdefault,-hcritbit
Debug: Child (16250) Started

4、 访问测试
添加本地hosts文件
[root@xuegod150 ~]# vim /etc/hosts
192.168.0.150 xuegod150.com
192.168.0.120 www.xuegod.cn
192.168.0.120 bbs.xuegod.cn

[root@xuegod150 ~]# yum -y install elinks

例1:访问www.xuegod.cn和bbs.xuegod.cn
[root@xuegod150 ~]# elinks www.xuegod.cn --dump
xuegod140.com
[root@xuegod150 ~]# elinks bbs.xuegod.cn --dump
xuegod150.com

例2:查看命中
[root@xuegod150 ~]# curl -I www.xuegod.cn
HTTP/1.1 200 OK
Date: Thu, 01 Aug 2019 08:16:13 GMT
Server: Apache/2.4.6 (CentOS)
Last-Modified: Thu, 01 Aug 2019 07:46:18 GMT
ETag: “e-58f096fe53c29”
Content-Length: 14
Content-Type: text/html; charset=UTF-8
X-Varnish: 5 3
Age: 24
Via: 1.1 varnish (Varnish/6.0)
X-Cache: HIT from xuegod cache
Accept-Ranges: bytes
Connection: keep-alive

[root@xuegod150 ~]# curl -I bbs.xuegod.cn
HTTP/1.1 200 OK
Date: Thu, 01 Aug 2019 08:16:19 GMT
Server: Apache/2.4.6 (CentOS)
Last-Modified: Thu, 01 Aug 2019 08:04:15 GMT
ETag: “e-58f09b0150b2b”
Content-Length: 14
Content-Type: text/html; charset=UTF-8
X-Varnish: 32773 32771
Age: 29
Via: 1.1 varnish (Varnish/6.0)
X-Cache: HIT from xuegod cache
Accept-Ranges: bytes
Connection: keep-alive

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_738716.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在PC上测试移动端网站和模拟手机浏览器的5大方法

原文: https://www.cnblogs.com/coolfeng/p/4708942.html 最近公司要开发网站的移动版,让我准备准备知识,话说本人开发移动网站的经验还真不多,最悲剧的事情就是我的手机是个经典的诺基亚,而且公司还不给配手机&#x…

渗透bc网站教学_初一数学思想方法渗透技巧的研究 编号:2020009

初一渗透数学思想技巧的策略研究-------心得体会陵城区实验中学 季淑红自从在2020年3月申报了区级小课题后,我就积极准备材料,扎实开展研究。现我把上半年研究的心得体会与大家分享,我研究的课题是“初一渗透数学思想技巧的策略研究”。七年…

seo代码优化工具_SEO外推基本优化方案,SEO优化干货

在做SEO外推的时候,更加侧重主页排名。这就给SEO工作造成一个假象,那就是只要围绕主页的核心关键词,创建内容即可,这是一个策略,从SEO的角度,它确实提高了主页核心词的相关性SEO是指从自然搜索结果获得网站…

php源码仿三一重工,仿三一重工大气企业网站php源码

★模板介绍★源码名称:仿三一重工大气企业网站php源码仿三一重工大气企业网站php源码,测试完整无错,兼容主流浏览器。模板包含安装说明,并包含测试数据。本模板基于DEDECms 5.7 GBK设计,需要 UTF-8版本的请自己转换。★…

推荐25个提高网站可用性和转化率的工具

推荐25个提高网站可用性和转化率的工具 网站建设的核心关键是“如何发现潜在客户并有效的转化为合作客户”,这里提到有效的转化也就是说找到的客户不一定会选用我们的产品或者服务,成为了我们的客户的转化才是有效的转化,那么在竞争如此激烈…

迅雷9屏蔽所有游览器和网站相应

打开设置中心–高级设置 点击右侧【设置不响应网站】 在末尾或者把全部删掉再添加 如下一行 * .* .*.com 记得中间不需要任何空格 点击确定就可以了

大型网站系统架构的演化

前言 一个成熟的大型网站(如淘宝、京东等)的系统架构并不是开始设计就具备完整的高性能、高可用、安全等特性,它总是随着用户量的增加,业务功能的扩展逐渐演变完善的,在这个过程中,开发模式、技术架构、设计…

大型网站技术架构

架构演变第一步:物理分离webserver和数据库 最开始,由于某些想法,于是在互联网上搭建了一个网站,这个时候甚至有可能主机都是租借的,但由于这篇文章我们只关注架构的演变历程,因此就假设这个时候已经是托管…

关于大型网站技术演进的思考(一)--存储的瓶颈(上)

关于大型网站技术演进的思考(一)--存储的瓶颈(上) http://www.cnblogs.com/sharpxiajun/p/4237704.html 前不久公司请来了位互联网界的技术大牛跟我们做了一次大型网站架构的培训,两天12个小时信息量非常大&…

关于CSDN网站存在的一些问题的见解[欢迎留言,请勿拍砖]

今天早上刚上班无聊,一如既往地打开CSDN,我晕,又在升级,操刀写下这篇文章,希望能引起重视 1、升级时间: 我以前在一家知名的SNS网站呆过,公司明确的变更时间是凌晨2:00-6&#xff…

假如我来架构12306网站(一) - 概论

序言: 此文的撰写始于国庆期间,当中由于工作过于繁忙而不断终止撰写,最近在设计另一个电商平台时再次萌发了完善此文并且发布此文的想法,期望自己的绵薄之力能够给予各位同行一些火花,共同推进国内的大型在线交易系统的…

Tesseract:识别知乎网站登录验证码

机器视觉 从 Google 的无人驾驶汽车到可以识别假钞的自动售卖机,机器视觉一直都是一个应用广 泛且具有深远的影响和雄伟的愿景的领域。 我们将重点介绍机器视觉的一个分支:文字识别,介绍如何用一些 Python库来识别和使用在线图片中的文字。…

Scrapy :爬取培训网站讲师信息

Scrapy 框架 Scrapy是用纯Python实现一个为了爬取网站数据、提取结构性数据而编写的应用框架,用途非常广泛。 框架的力量,用户只需要定制开发几个模块就可以轻松的实现一个爬虫,用来抓取网页内容以及各种图片,非常之方便。 Scrapy…

Nginx 提升网站访问速度

Nginx 简介 The article form here:http://www.ibm.com/developerworks/cn/web/wa-lo-nginx/ Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.r…

如何选择网站维护时间

大多数网站都需要维护,这个只是周期问题;如果维护时用户正在网上浏览或者进行数据修改操作,这个就会作死了。 我认为一般都会选择在以下情况下进行维护: 1、选择系统闲时:选择一天中流量虽少的时段进行维护&#xff…

Apache Zookeeper 中文学习参考网站及中文教程

Zookeeper是一个高性能的分布式系统的协调服务。它在一个简单的接口里暴露公共服务:像命名、配置管理、同步、和群组服务,所以你没有必要从头开始实现它们。你可以使用现成的Zookeeper去实现共识、群组管理、领导人选举和业务协议。并且你可以在它的基础…

是谁在Go标准库的源码中植入了色情网站?

昨天,有网友在群里说在GitHub上发现了色情网站! GitHub上怎么会有色情网站呢?网友给出了下面的截图: 这个出现在Go标准库中的Issue里面,有一个url… 该Issue地址:https://github.com/golang/go/issues/488…

使用C#实现网站用户登录

我们在写灌水机器人、抓资源机器人和Web网游辅助工具的时候第一步要实现的就是用户登录。那么怎么用C#来模拟一个用户的登录拉?要实现用户的登录,那么首先就必须要了解一般网站中是怎么判断用户是否登录的。 HTTP协议是一个无连接的协议,也就…

想看Vue文档,cn放错位置,误入xx网站...

昨晚,DD在微信群(点击加入)里看到有小伙伴说,想去Vue官网看中文文档,不当心把cn写错了位置,结果进入了xx网站... 老司机们应该都知道,Vue官网的中文文档地址是:https://cn.vuejs.or…

*使用Eclipse开发一个Java Web网站

一、配置Web服务器:Build Path 参考链接:http://blog.csdn.net/qq_37546891/article/details/79192392 二、设置jsp文件默认UTF-8格式编码 Windows --> Preferences --> 三、创建项目 1、启动Eclipse,New --> Dynamic Web Projec…