Category: newest

  • discuz"没有找到帖子"故障解决方法

    discuz”没有找到帖子”故障解决方法

    如图,discuz在未登录状态下,莫名其妙的某些板块出现“没有找到帖子”的故障,如果登录的话一切正常。说明应该不是数据丢失的问题。 冷静思考一下,在后台和状态正常的板块对比一下不难发现还是有不一样的地方: 看到没有,这个页面缓存系数就是罪魁祸首,把它置为0,返回去看一切恢复正常。 是不是很奇怪?大多数的朋友并没有设置这个参数,应该是系统的bug,自己给变了。 也许是想帮你的忙也说不好。

  • mysqldump 导出库 忽略库

    mysqldump 导出库 忽略库

     mysql -e “show databases;” -uroot -psdfsaf -P3306 | grep -Ev “mysql|information_schema|performance_schema|test” |grep -v Database | xargs mysqldump  –master-data=2 -uroot -psdfsaf –databases > /data/all.sql

  • 制作中国时区的alpine 最小镜像解决时间问题

    默认的alpine 时间是不对的,自己稍微改造一下,dockerfile 如下: FROM alpine:latest MAINTAINER moneyslow <good@moneyslow.com> RUN apk update && apk add tzdata \ && cp -r -f /usr/share/zoneinfo/PRC /etc/localtime 方法2: mount 宿主机的/etc/localtime

  • redis支持两种持久化方案:RDB和AOF && BGREWRITEAOF 清理aof文件

    redis支持两种持久化方案:RDB和AOF && BGREWRITEAOF 清理aof文件

    。 RDB RDB持久化是redis默认的,用来生成某一个时间点的数据快照;RDB是一个经过压缩的二进制文件,采用RDB持久化时服务器只会保存一个RDB文件(维护比较简单); 每次进行RDB持久化时,redis都是将内存中完成的数据写到文件中,不是增量的持久化(写脏数据); 写RDB文件时,先把内存中数据写到临时文件,然后替换原来的RDB文件; 1、RDB文件的生成: RDB持久化可以手动执行,也可以按照服务器的配置定期执行。 1)save和bgsave命令:(手动用于生成RDB文件的命令) save:会阻塞redis服务器进程,直到创建RDB文件完毕为止;(在此期间进程不能处理任何请求) bgsave:fork一个子进程来创建RDB文件,父进程可以继续处理命令请求; 2)自动执行: redis服务器允许用户通过设置配置文件save选项,让服务器每隔一段时间自动执行一次bgsave命令。如下:配置文件中的save选项 save 900 1 save 300 10 save 60 10000 服务器内部维护了一个dirty计数器和lastsave属性: dirty:记录了距上次成功执行了save或bgsave命令之后,数据库修改的次数(写入、删除、更新等); lastsave:unix时间戳,记录了上一次成功执行save或bgsave命令的时间; redis服务器的周期性操作函数serverCron默认每100毫秒执行一次,该函数的一个主要作用就是检查save选项所设置的保存条件是否满足,如果满足就执行bgsave命令。检查的过程:根据系统当前时间、dirty和lastsave属性的值来检验保存条件是否满足。 补充: 在执行bgsave期间,客户端发送的save、bgsave命令会被服务器拒绝执行(防止产生竞争); 如果bgsave在执行,bgrewriteaof命令会被延迟到bgsave执行完毕后再执行; 如果bgrewriteaof在执行,bgsave命令也会被延迟到bgrewriteaof命令执行完毕后再执行(bgsave和bgrewriteaof都是通过子进程完成的,不存在冲突,主要是考虑性能); 2、RDB文件的载入: redis并没有专门的命令去载入RDB文件,只有在服务器启动的时候检测到RDB文件存在就会自动执行载入。 如果redis启用了AOF持久化功能,那么服务器优先使用AOF文件还原数据。 当服务器载入RDB文件时,会一直处于阻塞状态,直到载入完毕为止。 载入时RDB文件时,系统会自动检查、如果是过期键不会加载到数据库中。 3、其他: 1)redis会根据配置文件中rdbcompression属性决定保存RDB文件时是否进行压缩存储(默认为yes),如果打开了压缩功能,redis会判断字符串长度>=20字节则压缩,否则不压缩存储; 2)redis自带了RDB文件检查工具redis-check-dump; 3)使用od命令打印RDB文件:[root@centOS1 dir]# od -oc dump.rdb 4)RDB文件名通过配置文件dbfilename dump.rdb指定,存放位置通过配置文件dir /var/lib/redis/ 指定; AOF 有上面分析可知:RDB方式持久化的颗粒比较大,当服务器宕机时,到上次save或bgsave后的所有数据都会丢失。而AOF的持久化颗粒比较细,当服务器宕机后,只有宕机之前没来得AOF的操作数据会丢失。 1、AOF实现: 1)AOF持久化是通过保存redis服务器所执行的写命令来记录数据库状态的;被写入AOF文件的所有命令都是以Redis的命令请求协议格式保存的(Redis的请求协议是纯文本的)。服务器在启动时,通过载入AOF文件、并执行其中的命令来还原服务器状态。 2)AOF文件名通过配置文件appendfilename appendonly.aof 指定,存放位置通过配置文件dir /var/lib/redis/ 指定;…

  • ipv6最新消息:工信部:推动移动终端全面支持IPv6

    ipv6最新消息:工信部:推动移动终端全面支持IPv6

    新京报讯 (记者马婧)5月2日,工信部网站发布了《关于贯彻落实<推进互联网协议第六版(IPv6)规模部署行动计划>的通知》,通知鼓励典型行业、重点工业企业开展工业互联网IPv6网络化改造,创新工业互联网应用实践,构建工业互联网IPv6标准体系。 IPv6是IP地址的第六版协议,是由国际互联网标准化组织IETF设计的用于替代现行版本IPv4的下一代互联网核心协议,其最大优点可提供数量庞大的IP地址,号称可以为全世界每一粒沙子编上一个网址。 IPv6提供的海量地址空间,符合当下互联网发展的需求和潮流,即便在物联网、云计算、大数据等新兴技术业态之下,IPv6也能满足需求。 推动移动终端全面支持IPv6 工信部昨日提出将从6个方面落实IPv6计划,包括:实施LTE网络端到端IPv6改造、加快固定网络基础设施IPv6改造、推进应用基础设施IPv6改造、开展政府网站IPv6改造与工业互联网IPv6应用、强化IPv6网络安全保障、落实配套保障措施。 通知提出,到2018年末,基础电信企业完成全国范围LTE核心网、接入网、承载网、业务运营支撑系统等IPv6改造并开启IPv6业务承载功能,为移动终端用户数据业务分配IPv6地址,提供端到端的IPv6访问通道;基础电信企业完成门户网站、网上营业厅网站IPv6改造,并完成活跃用户规模排名前10位的自营移动互联网应用(APP)及相应系统服务器IPv6升级改造等,到2018年末,移动互联网IPv6用户规模不少于5000万户。 通知还提出,移动终端全面支持IPv6。推动新生产移动终端的出厂默认配置支持IPv4/IPv6双栈,并逐步推进存量移动终端通过系统软件升级开启IPv6功能。基础电信企业定制和集中采购的移动终端应全面支持IPv6。 此外,工信部提出,2018年起新投产的数据中心应支持IPv6,到2020年末,各大型数据中心运营企业均完成IPv6改造。 IPv6将可提供海量网络地址(moneyslow.com 海阔中文网) 去年,《推进互联网协议第六版(IPv6)规模部署行动计划》发布,该文件指出,基于互联网协议第四版(IPv4)的全球互联网面临网络地址消耗殆尽、服务质量难以保证等制约性问题,IPv6能够提供充足的网络地址和广阔的创新空间,是全球公认的下一代互联网商业应用解决方案。 大力发展基于IPv6的下一代互联网,有助于显著提升我国互联网的承载能力和服务水平,更好融入国际互联网。上述文件提出,计划用5到10年时间,形成下一代互联网自主技术体系和产业生态,建成全球最大规模的工Pv6商业应用网络,实现下一代互联网在经济社会各领域深度融合应用。 据公开信息,目前使用的第二代互联网IPv4技术,核心技术属于美国。从理论上讲,可编址1600万个网络、40亿台主机。其中北美占有3/4,约30亿个,而人口最多的亚洲只有不到4亿个,中国只有3000多万个。网络地址不足,制约了我国互联网的应用和发展。 通信专家刘启诚表示,“IPv4的网址是远远不够的,现在中国宽带发展很快,很多的宽带都是用的内网的网址,很多人共用一个IP地址,非常不方便。IPv6背景下普通用户会有一个固定网址。”

  • Microsoft SQL Server 2005 Service Pack 4 下载地址 sql2005链接时,错误:18456解决方案

    http://www.catalog.update.microsoft.com/search.aspx?q=kb2463332 找到downlaod即可。 sql2005链接时,错误:18456解决方案 右键使用管理员启动。 或者可以参考: http://blog.sina.com.cn/s/blog_613316c00100dzbh.html

  • centos7.2 安装ruby2.2.3版本

    centos7.2 安装ruby2.2.3版本

    换yum源安装 ~]# yum install centos-release-scl-rh //会在/etc/yum.repos.d/目录下多出一个CentOS-SCLo-scl-rh.repo源 ~]# yum install rh-ruby23  -y //直接yum安装即可 ~]# scl  enable  rh-ruby23 bash //必要一步 ~]# ruby -v # ruby -v ruby 2.3.1p112 (2016-04-26 revision 54768) [x86_64-linux] RVM 安装 先执行一条官方 https://rvm.io/ 复制来的长命令(…C0E3空格7D2B…): ~]#gpg –keyserver hkp://keys.gnupg.net –recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB 可能会等待十几秒时间,然后执行下面命令: ~]# \curl -sSL https://get.rvm.io | bash -s stable ~]# source  /etc/profile.d/rvm.sh    //按照提示,执行该命令 ~]# rvm list known    // list一下可以安装的版本 ~]#…

  • MySQL 执行SQL脚本 报ERROR 1231 (42000)的解决办法

    MySQL 执行SQL脚本 报ERROR 1231 (42000)的解决办法

    ERROR 1231 (42000): Variable ‘time_zone’ can’t be set to the value of ‘NULL’ ERROR 1231 (42000): Variable ‘sql_mode’ can’t be set to the value of ‘NULL’ ERROR 1231 (42000): Variable ‘foreign_key_checks’ can’t be set to the value of ‘NULL’ ERROR 1231 (42000): Variable ‘unique_checks’ can’t be set to the value of ‘NULL’ ERROR 1231 (42000):…

  • ibm thinkpad 联想lenovo笔记本电脑如何关闭触摸板

    ibm thinkpad 联想lenovo笔记本电脑如何关闭触摸板

    如题,联想的笔记本关闭不了触摸板,给输入带来干扰,太烦人了。研究了一下原因,原来是没有安装相应驱动导致,过程记录下来,希望对大家有帮助。 第一步:到官网找驱动: 第二步:输入主机编号,或者点击下面的更多,找到你的型号: 第三步:选择操作系统版本和type前4位(在你的电脑背面找) 第四步:找到鼠标那一栏的驱动,一个是驱动程序,一个是辅助程序,也不知道是哪个,把两个都下载安装。安装过程忽略。。。 第五步:上一步安装完成后最好重启一下电脑,然后进入控制面板,找到鼠标,点开弹出属性窗口,你会发现多出了一个“UltraNav”标签,把“启用TouchPad” 勾掉就ok了。

  • ubuntu 内核升级到Linux 4.4.0-121-generic x86_64 后安装docker到18.03.0-ce

    安装基本按照官方文档: https://docs.docker.com/install/linux/docker-ce/ubuntu/ 但是如果有些问题不顺利可能会重装,删除旧的docker 要注意的地方: rm -rf /var/lib/docker/ 如果改过bridge的名字,注意这个地方/etc/docker/daemon.json: {   “bridge”: “docker0” } 如果docker 起不来,检查 /etc/systemd/system/docker.service.d 下的脚本,可以删除。 apt install docker-ce 的时候有可能会遇到 libseccomp2 版本的问题 下载要求的版本进行安装即可 dpkg -i libseccomp2_2.3.1-2.1ubuntu2_16.04.1_amd64.deb 最终实现: # uname -msr Linux 4.4.0-121-generic x86_64 # docker version Client:  Version:       18.03.0-ce  API version:   1.37  Go version:    go1.9.4  Git commit:    0520e24  Built: Wed…

  • ubuntu 内核升级与降级

    升级linux内核,普遍使用系统提供的功能 sudo apt-get dist-upgrade 降级就比较麻烦了,需要我们自己手动安装。 下面老蔡以Ubuntu 14.04为例,从内核版本linux-headers-3.13.0-44降级到linux-headers-3.13.0-24为例,来演示下怎么降级linux内核。 sudo aptitude install -y linux-image-3.13.0-24-generic \ linux-headers-3.13.0-24 grep submenu /boot/grub/grub.cfg   看到父选项 Advanced options for Ubuntu grep menuentry /boot/grub/grub.cfg 看到子选项 Ubuntu, with Linux 3.13.0-24-generic 其他版本也可以从执行结果中选取相应的。 然后修改/etc/default/grub文件 sudo vim /etc/default/grub 将其中 GRUB_DEFAULT=0 改为 GRUB_DEFAULT=”Advanced options for Ubuntu>Ubuntu, with Linux 3.13.0-24-generic” #GRUB_DEFAULT=”Advanced options for Ubuntu>Ubuntu, with Linux 4.4.0-117-generic” #GRUB_DEFAULT=0 然后执行…

  • 蚂蚁金服开放平台企业支付宝SFTP服务调用方式升级提醒

    蚂蚁金服开放平台企业支付宝SFTP服务调用方式升级提醒

    近期,我们发现部分合作商户采用了“绑定IP”的方式来调用我方的sftp服务(规范的方式应该是通过域名 sftp.alipay.com来访问)。为确保相关商户的服务稳定性,请各商户内部自查,原110.75.149.86和  110.75.144.86将只提供服务至2018年1月31日,请将采用了“绑定IP”方式的商户优化为“捆绑域名”的方式。 “绑定IP”的定义及优化方案: 1、程序代码中直接写了IP,而非域名。 解决方法:程序代码中改成域名sftp.alipay.com(当然需要确保贵方网络环境内部能解析这个域名)。 2、系统hosts文件或网络环境中将域名sftp.alipay.com绑了IP。 解决方法:建议删除系统hosts文件或网络中的此配置。若合作方相关安全规则或者技术手段上只能如此,则请将 sftp.alipay.com域名绑成IP:45.113.40.175 和 110.75.228.31。 3、防火墙上仅开放了110.75.149.86或者110.75.144.86的白名单。 解决方法:建议不要做此白名单的限制。若合作方相关安全规则或者技术手段上只能如此,则请将白名单改成当前 sftp.alipay.com域名解析的IP,即:45.113.40.175 和 110.75.228.31。 蚂蚁金服开放平台 2018/01/26

  • dns常见解析类型

    dns常见解析类型

    A: 地址记录,将域名指向一个IPv4地址。(如:8.8.8.8) AW: 带权重的A记录,DNS云服务私有记录类型,当需要配置A记录的负载权重功能时,使用该类型记录。 AAAA: 地址记录,将域名指向一个IPv6地址。(如:2401:8d00:4::1) AAAAW: 带权重的AAAA记录,DNS云服务私有记录类型,当需要配置AAAA记录的负载权重功能时,使用该类型记录。 CNAME: 别名记录,将域名指向另外一个域名,再由另外一个域名解析到IP地址。 CNAMEW: 带权重的CNAME记录,DNS云服务私有记录类型,当需要配置CNAME记录的负载权重功能时,使用该类型记录。 XW: 带权重的A或CNAME记录,DNS云服务私有记录类型,当需要配置A和CNAME记录同时存在负载权重功能时,使用该类型记录。 LNAME: 和CNAMEW类似,为最低优先级别名记录 DNAME: 和CNAME类似,将域名指向另外一整个域,而不是一个域名。 CAA: 证书颁发机构授权记录,允许域名的所有者指定哪所证书颁发机构(CA)为其网站颁发证书 TXT/SPF: 纯文本格式的记录,可以填写任意字符,长度限制255字节。通常用做反垃圾邮件验证。 MX: 邮件交换记录,如果要配置本域名下的邮件服务,需要添加MX记录。 NS: 域名服务器记录,要把某个子域名授权给其他解析平台去解析,需要添加NS记录。 SRV: 服务记录,通常用于Microsoft的活动目录以及office 365等服务 TRANS: 带权重的IPv4(CNAME)/IPv6记录,云服务私有记录类型,可以按照查询源地址自适应地返回对应记录(IPv4地址查询返回IPv4/CNAME记录,IPv6地址查询返回IPv6记录)。

  • systemctl 命令详解

    systemd 是 Linux 下的一款系统和服务管理器,兼容 SysV 和 LSB 的启动脚本。systemd 的特性有:支持并行化任务;同时采用 socket 式与 D-Bus 总线式激活服务;按需启动守护进程(daemon);利用 Linux 的 cgroups 监视进程;支持快照和系统恢复;维护挂载点和自动挂载点;各服务间基于依赖关系进行精密控制。 任务 旧指令 新指令 使某服务自动启动 chkconfig –level 3 httpd on systemctl enable httpd.service 使某服务不自动启动 chkconfig –level 3 httpd off systemctl disable httpd.service 检查服务状态 service httpd status systemctl status httpd.service (服务详细信息) systemctl is-enabled httpd.service (仅显示是否 Active) 显示所有已启动的服务 chkconfig –list systemctl list…

  • docker proxy TLS handshake timeout.

    docker 设置代理后下载镜像的时候会报错: TLS handshake timeout. 解决办法: /etc/systemd/system/docker.service.d# cat http-proxy.conf  [Service]  Environment=”HTTP_PROXY=http://192.168.50.165:6500/” “NO_PROXY=localhost,127.0.0.1,hostname” Environment=”HTTPS_PROXY=http://192.168.50.165:6500/” 注意加的 “NO_PROXY=localhost,127.0.0.1,hostname” 起作用。 重启system的服务: systemctl daemon-reload 验证下配置是否正常加载:systemctl show –property=Environment docker 重启docker:systemctl restart docker

  • 利用squidman在mac上搭建代理服务作为ubuntu的apt源

    利用squidman在mac上搭建代理服务作为ubuntu的apt源

    软件地址:http://squidman.net/squidman/ 打开后修改端口号,点击开始即可。 场景:如果有服务器不能上网的话,可以连过来,比如ubuntu 的apt 源。 新建文件: /etc/apt/apt.conf 内容: Acquire::http::Proxy “http://192.100.50.15:61500”;

  • CentOS/RHEL 6/7 升级PHP版本 version 5.4 到 5.6

    CentOS/RHEL 6/7 升级PHP版本 version 5.4 到 5.6

    For CentOS/RHEL 7: # rpm -Uvh https://mirror.webtatic.com/yum/el7/epel-release.rpm # rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm For CentOS/RHEL 6: # rpm -Uvh https://mirror.webtatic.com/yum/el6/latest.rpm For CentOS/RHEL 5: # rpm -Uvh http://mirror.webtatic.com/yum/el5/latest.rpm After installing Webtatic yum repository, you have to remove the old version of php-common package. It will also delete it dependencies packages. # yum remove php-common yum install -y php56w…

  • 有用的firewall-cmd命令备忘

    有用的firewall-cmd命令备忘

    remove public zone service: firewall-cmd –zone=public –remove-service=ssh –permanent firewall-cmd –reload add ip range to trusted zone and add ssh service to trusted zone firewall-cmd –permanent –zone=”trusted” –add-source=”123.51.11.2/32″ firewall-cmd –permanent –zone=”trusted” –add-service=”ssh” firewall-cmd –zone=public –add-port=7788/tcp –permanent firewall-cmd –reload firewall-cmd –list-all-zones add anthor ip range to trusted zone firewall-cmd –permanent –zone=”trusted” –add-source=”172.30.30.0/24″ firewall-cmd –reload firewall-cmd –list-all-zones 一、centos7版本对防火墙进行加强,不再使用原来的iptables,启用firewalld…

  • centos7下安装php的Imagick扩展

    centos7下安装php的Imagick扩展

    yum install php-pear php-devel yum install ImageMagick ImageMagick-devel yum install pcre-devel wget http://pecl.php.net/get/imagick-3.2.0RC1.tgz tar -xvf imagick-3.2.0RC1.tgz cd imagick-3.2.0RC1/ phpize ./configure make make test make install Remember to turn on the extension in the php configuration file. vim /etc/php.ini extension = imagick.so

  • 得到服务器出口ip的n个方法

    curl ifconfig.mecurl ip.bsd-unix.netcurl icanhazip.comcurl ipinfo.io/ipwget -qO- ipinfo.io/iplynx -source ipinfo.io/ipwget -O – -q icanhazip.comcurl -s http://whatismyip.akamai.com/curl -s https://4.ifcfg.me/nc 4.ifcfg.me 23 | grep IPv4 | cut -d’ ‘ -f4telnet 4.ifcfg.me 2>&1 | grep IPv4 | cut -d’ ‘ -f4echo close | ftp 4.ifcfg.me | awk ‘{print $4; exit}’ 下面是个测试各种方法的速度脚本,最后有排名:wget https://moneyslow.com/bin/externalip-benchmarkchmod a+x externalip-benchmark./externalip-benchmark 测试结果: 其他文章: 1、Windows 浏览器常用方式访问  1、http://www.ip138.com/  2、http://tool.chinaz.com/  3、在百度搜索框内输入 ip…

  • centos7 开机自启动程序设置

    centos7 开机自启动程序设置

    修改开机脚本添加文件的权限  chmod +x /etc/rc.d/rc.local vi 这个rc.local 可以添加要开机自启动的脚本: systemctl start xxx.service 通过以上操作,就可以像CentOS6一样添加开机脚本了

  • 全站https技术要点及注意事项

    全站https技术要点及注意事项

    HSTS(HTTP Strict Transport Security) 通过Web服务器上的设置,在收到HTTP访问请求时,返回的header里带有Strict-Transport-Security字段,告知浏览器必须使用HTTPs进行访问。 但是,HSTS并不能避免首次跳转时遇到的劫持。要彻底解决这个问题,可以申请加入Preload List(预加载列表)。 Preload List是由Google Chrome维护的“HTTPs站点列表”,Chrome, Firefox, Safari, Edge, IE 11均在使用。一旦浏览器发现要访问的站点在Preload List上,默认就会发起HTTPs链接。这样,就避免了HSTS的首次跳转被劫持的隐患。 SSL卸载 采用F5来做负载均衡,F5应付单纯的L4和L7的流量是没有问题的,但进行SSL卸载时性能往往会急剧降低,F5可以提供专门的加速卡来解决这个问题,但价格不便宜。所以,还需要专门环节来进行SSL卸载,常见的Nginx和HAProxy都可以执行这个任务。 客户端证书 与浏览器不同的是,C#信任的根证书在localmachinestore或者currentuserstore中,Java信任的根证书在JDK安装目录下的cacerts目录中,iOS和Android的证书管理又有不同。 浏览器的证书在使用中又可以持续更新,用户往往感知不到,如果“想当然”认为浏览器验证通过就万事大吉,很可能会出问题。比如国内有不少网站使用WoSign签发的证书,但老版本的JDK并不信任WoSign的根证书,用浏览器浏览没问题的网站,程序就会报错,除非手动导入证书。Android的信任列表是随固件更新而更新的,4.2以后才内置WoSign的信任。因为WoSign行为不端,前几天Firefox, Chrome, Safari等主流浏览器又取消了对它的信任,也就意味着WoSign证书有安全风险,所以已经内置WoSign根证书的程序也应当做对应的设置。 服务器端证书 用浏览器验证没有问题的HTTPs站点,用程序访问就有问题。这是为什么? 在服务器上证书配置错误,只有最终证书,而缺少中级证书的情况。通常,最终证书里包含了中级证书相关的信息,所以如果缺少中级证书,浏览器为了建立证书链,会做一次耗时的操作来获取中级证书,而且这一切都发生在HTTPs连接真正建立之前。更糟糕的是,不少浏览器为了“表现更好”,会想办法绕过这个问题。所以缺少中级证书的情况一直存在,一直不会被发现,而程序调用的速度总是上不去,甚至有一定几率报错。 证书大小: 如果把证书链配置完全,还要注意证书链的大小。有一些网站的完整证书异乎寻常地大,达到若干kb甚至几十kb,也就是说,在建立连接之前,就必须先传输这么多的数据。如果做单纯的PC网页浏览,或许不会有问题。但对于移动端和程序调用来说,这就是一场灾难。最好的办法,是用OpenSSL配合WireShark之类的工具,自己动手来测试。如果你熟悉TCP相关的知识,往往可以得到更好的优化方案。 OCSP和CRL也不可忽略。这两项技术用来保证撤回证书(让证书失效)的有效性。如果你仔细观察,会发现证书里都指定了对应的OCSP或者CRL的URL,用来检查证书是否失效。按道理说,在每次建立HTTPs连接时,都应当进行OCSP或CRL检查。返回结果通常在1k左右,如果请求非常频繁,这个因素也应当考虑。 SNI 大家都熟悉“虚拟主机”的概念,它可以让多个域名对应到同一个IP,让同一台服务器服务多个站点。在HTTP时代,可以在header中通过host来指定需要访问的域名,一切看起来都那么完美。 但是在HTTPs时代,却没有这样的好事,传统的HTTPs服务很难让多个域名对应到同一个IP。在进行到HTTP通讯之前,必须先建立验证证书建立连接。如果一个IP上绑定了多个域名,这个阶段服务器根本没法知道请求对应的是哪个域名,无疑会造成极大的不便。 为了解决这种问题,SNI(Server Name Identification)应运而生了。这种技术说起来复杂,大家可以把它简单理解为“建立SSL/TLS通讯时的host header”,这样就解决了一个IP只能配单张证书的问题。 然而SNI的诞生历史并不长,许多客户端的支持都存在奇怪的问题。比如JDK7支持SNI,但是JDK8的支持又有bug。而且这种支持往往需要调用原生的API才可以实现,Resteasy之类的类库并不支持。如果对SNI的支持有问题,即便配置正确也可能无法建立连接,因为服务端并不能识别此请求需要的证书。 CDN CDN已经是业界流行的技术了,对稍微大一点的网站来说,没有CDN几乎是不可想象的。HTTP时代的CDN方案相当成熟,HTTPs的情况则不是如此。 要使用HTTPs的CDN服务,就要决定是否将证书交给CDN提供商。基于中国目前的商业信誉水平,把证书交给CDN提供商的风险不可不考虑。恶意揣测,别有用心的人一旦拿到证书,可以很方便地通过DNS劫持发起中间人攻击,而完全不被感知到。 另外,HTTP时代大家都喜欢将资源分散到多个不同的域名,因为建立连接的成本很低,而同一个域名的并发连接数有限。在HTTPs环境下,每次建立连接的成本高了很多,频繁下载和验证证书对移动设备和移动网络影响很大(尤其是证书很大的情况)。如果域名非常分散,影响就更加显著。所以在HTTPs时代,把域名收缩集中反而是更好的办法。 内容及其它 因为HTTPs的内容中无法引用HTTP的资源,所以应当保证网页中资源文件的链接都是HTTPs的。遗留的许多系统很可能并不注意这些事情,资源都采用绝对地址的形式,这样改起来工作量很大。如果要修改,最好一步到位,直接改成“协议相对URL”。 绝对地址URL:http://www.a.com/b.css 协议相对URL://www.a.com/b.css 这样浏览器就可以根据当前的协议,自动生成资源的绝对地址,无论是HTTP还是HTTPs,都可以自由切换。 如果资源都是自有的,切换HTTPs就相对容易。如果存在外部,尤其是UGC的资源,切换到HTTPs就很麻烦。如果是超链接,通常采用专门的跳转服务,也就是下面这样: https://link.my.com/target=www.you.com 如果是图片这类资源,可以设定专门的程序将其抓取过来存放在自己的服务器上,再将地址替换掉即可。但是,这样做很可能要自己承担流量压力,同时还要承担恶意程序攻击的风险。 如果是视频、游戏等富文本、交互复杂的资源,如果源站没有提供HTTPs的服务,多半只能忍痛割爱,放弃内嵌展现的形式了。

  • word里怎么在方框里打勾

    word里怎么在方框里打勾

    很简单,插入高级字符,选择wingdings 2 字体,找到那个字符即可。

  • openssl 证书查看

    openssl 证书查看

    生成Self Signed证书 # 生成一个key,你的私钥,openssl会提示你输入一个密码,可以输入,也可以不输, # 输入的话,以后每次使用这个key的时候都要输入密码,安全起见,还是应该有一个密码保护 > openssl genrsa -des3 -out selfsign.key 4096 # 使用上面生成的key,生成一个certificate signing request (CSR) # 如果你的key有密码保护,openssl首先会询问你的密码,然后询问你一系列问题, # 其中Common Name(CN)是最重要的,它代表你的证书要代表的目标,如果你为网站申请的证书,就要添你的域名。 > openssl req -new -key selfsign.key -out selfsign.csr # 生成Self Signed证书 selfsign.crt就是我们生成的证书了 > openssl x509 -req -days 365 -in selfsign.csr -signkey selfsign.key -out selfsign.crt # 另外一个比较简单的方法就是用下面的命令,一次生成key和证书 > openssl req -x509 -nodes -days…

  • mac下快速新建一个空的文本文件

    mac下快速新建一个空的文本文件

    1、实用工具中找到‘脚本编辑器’,输入: tell application “Finder” to make new file at (the target of the front window)as alias 2、随便命名如NewText,保存为app,放置在application文件夹中,拖入桌面dock 这样在打开一个文件夹后,点击桌面我们新建的图标就可以新建文档了。

  • mac下如何强制退出应用程序

    mac下如何强制退出应用程序

    1、使用键盘快捷键强制退出处于活跃状态的Mac程序 快捷键:Command+Option+Shift+Esc 这样按住一两秒钟,就可以强制退出当前程序了,算是最方便的一种方法。 2、打开强制退出程序窗口 使用快捷键:Command+Option+Esc 来打开“强制退出应用程序”的窗口,然后选中你需要退出的程序,再点右下方的“强制退出”即可。 3、从Dock中强制退出程序 按住Option然后右键点击程序在Dock中的图标,可以看到“强制退出”的选项,选择即可。 4、从左上角苹果菜单中强制退出程序 这个有些类似第二条,从左上角的菜单中选择“强制退出”,不过有些时候程序当机,点击菜单会出现没反应的情况。 5、使用“活动监视器”强制退出程序 在 应用程序-实用工具 中找到“活动监视器”,找到程序的名字然后选择左上方红色按钮强制退出程序,这个就有些类似Windows中的任务管理器了。如果上面的方法都不奏效,那么可以尝试这个方法。 6、使用终端命令强制退出程序 这个应该算是重启电脑之前的最后办法了,在终端中输入如下命令 killall [程序名称]

  • 请先升级 UCenter 到 1.6.0 以上版本。 如果使用为Discuz! X自带UCenter,请先下载 UCenter 1.6.0, 在 utilities 目录下找到对应的升级程序,复制或上​

    请先升级 UCenter 到 1.6.0 以上版本。 如果使用为Discuz! X自带UCenter,请先下载 UCenter 1.6.0, 在 utilities 目录下找到对应的升级程序,复制或上​

    错误提示”请先升级 UCenter 到 1.6.0 以上版本。 如果使用为Discuz! X自带UCenter,请先下载 UCenter 1.6.0, 在 utilities 目录下找到对应的升级程序,复制或上。。。。。“   解决办法: 先确认uc版本是否1.6,如果是还出现请先升级 UCenter 到 1.6.0 以上版本,按如下方法解决: 方法有两种: 第一、http://你的域名/install/update.php?step=prepare 直接输入 第二、在updata.php文件中 查找代码 if(version_compare($version, ’1.5.2′) <= 0) {  将代码修改为:if(version_compare($version, ’1.5.2′) >= 0) { 就可以跳过检查了!! 接下来哗哗哗一顿表升级乱闪,大概260个表后,显示如下: 数据库升级工具 升级开始 数据库结构添加与更新 数据更新 数据库结构删除 升级完成 恭喜,数据库结构升级完成! 升级完成。

  • Visual Studio Code 快捷键 Mac 版

    Visual Studio Code 快捷键 Mac 版

    Mac 键盘符号说明 ⌘ == Command ⇧ == Shift ⇪ == Caps Lock ⌥ == Option ⌃ == Control ↩ == Return/Enter ⌫ == Delete ⌦ == 向前删除键(Fn+Delete) ↑ == 上箭头 ↓ == 下箭头 ← == 左箭头 → == 右箭头 ⇞ == Page Up(Fn+↑) ⇟ == Page Down(Fn+↓) Home == Fn + ← End == Fn + → ⇥ == 右制表符(Tab键) ⇤ == 左制表符(Shift+Tab) ⎋ == Escape (Esc) ⏏ == 电源开关键 常用 Mac 快捷键 介绍 ⇧⌘P, F1 显示命令面板 ⌘P 快速打开 ⇧⌘N 新建 窗口/实例 ⌘W 关闭 窗口/实例 基本编辑 Mac 快捷键 介绍 ⌘X 剪切 ⌘C 复制 ⌥↓ /…

  • windows2012关闭浏览器安全选项

    windows2012默认ie浏览器的安全选项是开着的,上网浏览非常不方便,关掉它:

  • Sphinx全文检索引擎使用指南:安装支持的操作系统:在绝大多数现代的Unix类操作系统上,只需要一个C++编译器就可以编译并运行Sphinx,而不需要对源码进行任何改动。

    Sphinx全文检索引擎使用指南:安装支持的操作系统:在绝大多数现代的Unix类操作系统上,只需要一个C++编译器就可以编译并运行Sphinx,而不需要对源码进行任何改动。

    Sphinx可以在以下系统上运行: Linux 2.4.x, 2.6.x (包括各种发行版) ? Windows 2000, XP ? FreeBSD 4.x, 5.x, 6.x ? NetBSD 1.6, 3.0 ? Solaris 9, 11 ? Mac OS X 支持的CPU种类包括 X86, X86-64, SPARC64。 依赖的工具:在UNIX平台上,你需要以下的工具用来编译和安装Sphinx: C++编译器。GNU gcc就能够干这个活。 make程序。GNU make就能够干这个活。 安装Sphinx: tar包解压,并进入sphinx子目录:  $ tar xzvf sphinx-0.9.7.tar.gz  $ cd sphinx  configuration程序: $ ./configure configure程序有很多运行选项。完整的列表可以通过使用 –help开关得到。最重要的如下:  –prefix, 定义将 Sphinx安装到何处;  –with-mysql, 当自动检测失败时,指出在那里能找到MySQL头文件和库文件; 制作二进制程序: …

  • centos6 安装 sphinx

    centos6 安装 sphinx

    安装前请先确定安装了常用的组件,然后在官方网站下载最新的Sphinx, yum install -y python python-develhttp://sphinxsearch.com/downloads/release/   安装sphinxtar zxvf sphinx-2.1.4-release.tar.gz cd sphinx-2.1.4-release ./configure –prefix=/usr/local/sphinx –-with-mysql make && make install libsphinxclient 安装(PHP模块需要) cd api/libsphinxclient ./configure –prefix=/usr/local/sphinx make && make install 安装PHP的Sphinx模块 下载地址:http://pecl.php.net/package/sphinx wget http://pecl.php.net/get/sphinx-1.3.0.tgz tar zxf sphinx-1.3.0.tgz cd sphinx-1.3.0 /usr/local/PHP/bin/phpize ./configure –with-php-config=/usr/local/php/bin/php-config –with-sphinx=/usr/local/sphinx/ make && make install 安装好后,在安装目录下etc目录下,有份测试数据和配置的样本 cd /usr/local/sphinx/etc cp sphinx.conf.dist sphinx.conf

  • discuz 静态化rewrite规则大全 apache windows iis nginx zeus

    discuz 静态化rewrite规则大全 apache windows iis nginx zeus

    Apache Web Server(独立主机用户) <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{QUERY_STRING} ^(.*)$ RewriteRule ^(.*)/topic-(.+)\.html$ $1/portal.php?mod=topic&topic=$2&%1 RewriteCond %{QUERY_STRING} ^(.*)$ RewriteRule ^(.*)/article-([0-9]+)-([0-9]+)\.html$ $1/portal.php?mod=view&aid=$2&page=$3&%1 RewriteCond %{QUERY_STRING} ^(.*)$ RewriteRule ^(.*)/forum-(\w+)-([0-9]+)\.html$ $1/forum.php?mod=forumdisplay&fid=$2&page=$3&%1 RewriteCond %{QUERY_STRING} ^(.*)$ RewriteRule ^(.*)/thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ $1/forum.php?mod=viewthread&tid=$2&extra=page\%3D$4&page=$3&%1 RewriteCond %{QUERY_STRING} ^(.*)$ RewriteRule ^(.*)/group-([0-9]+)-([0-9]+)\.html$ $1/forum.php?mod=group&fid=$2&page=$3&%1 RewriteCond %{QUERY_STRING} ^(.*)$ RewriteRule ^(.*)/space-(username|uid)-(.+)\.html$ $1/home.php?mod=space&$2=$3&%1 RewriteCond %{QUERY_STRING} ^(.*)$ RewriteRule ^(.*)/blog-([0-9]+)-([0-9]+)\.html$ $1/home.php?mod=space&uid=$2&do=blog&id=$3&%1 RewriteCond %{QUERY_STRING} ^(.*)$ RewriteRule ^(.*)/(fid|tid)-([0-9]+)\.html$ $1/archiver/index.php?action=$2&value=$3&%1…

  • discuz 2018年元旦有大动作

    discuz 2018年元旦有大动作

    偶然在后台点应用,进入discuz的应用中心官网,发现有个20180101升级的提示,然而点进去并没有,是准备要升级么?拭目以待。

  • mac sublime text3 常用快捷键总结(转自简书)

    mac sublime text3 常用快捷键总结(转自简书)

    cmd+n 新建页面 cmd+数字键 切换到对应页面 cmd+p 搜索跳转到对应页 cmd+w 关闭页面 cmd+j 合并一行 cmd+d 选中当前单词,继续敲可以选中多个 cmd+l 选中当前行 cmd+z 撤销 cmd+c 复制 cmd+v 粘贴 cmd+s 保存 cmd+x 删除当前行 cmd+delete 删除光标定位到当前行起始的一块 cmd+]缩进当前行,[回缩当前行,对应tab/shift+tab功能 cmd+enter 向下开辟一行 cmd+shift+enter 向上开辟一行 cmd+f 查询内容 cmd+shift+f 全局查询,可替换 cmd+g 查询到的内容下一个 cmd+鼠标右键 多点编辑 cmd+~ 调出控制台 cmd+k then u 大写 cmd+k then l 小写 cmd+shift+p 调出命令面板 cmd+⬅️ 光标定位到当前行最前 +shift 选中…

  • discuz nginx 的静态化配置

    discuz nginx 的静态化配置

    rewrite ^([^\.]*)/topic-(.+)\.html$ $1/portal.php?mod=topic&topic=$2 last; rewrite ^([^\.]*)/article-([0-9]+)-([0-9]+)\.html$ $1/portal.php?mod=view&aid=$2&page=$3 last; rewrite ^([^\.]*)/forum-(\w+)-([0-9]+)\.html$ $1/forum.php?mod=forumdisplay&fid=$2&page=$3 last; rewrite ^([^\.]*)/thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ $1/forum.php?mod=viewthread&tid=$2&extra=page%3D$4&page=$3 last; rewrite ^([^\.]*)/group-([0-9]+)-([0-9]+)\.html$ $1/forum.php?mod=group&fid=$2&page=$3 last; rewrite ^([^\.]*)/space-(username|uid)-(.+)\.html$ $1/home.php?mod=space&$2=$3 last; rewrite ^([^\.]*)/blog-([0-9]+)-([0-9]+)\.html$ $1/home.php?mod=space&uid=$2&do=blog&id=$3 last; rewrite ^([^\.]*)/(fid|tid)-([0-9]+)\.html$ $1/index.php?action=$2&value=$3 last; rewrite ^([^\.]*)/([a-z]+[a-z0-9_]*)-([a-z0-9_\-]+)\.html$ $1/plugin.php?id=$2:$3 last; if (!-e $request_filename) { return 404; }

  • F5负载均衡设备选型依据性能指标

    F5负载均衡设备选型依据性能指标

    假设你是一个用户,需要为自己公司的系统部署一套负载均衡设备,那么应该根据哪些因素来考虑要选择的负载均衡设备的性能指标是否能够满足自己的需要呢?许多用户往往根据自己的网络和应用情况的统计或者再加上未来发展的规划,简单地选择刚好与自己的计算结果相符性能的负载均衡设备型号,结果是许多用户发现所购买的设备并不能完全满足自己的需求,这说明在选型的过程中疏漏了某些因素。我们来详细分析一下。 负载均衡设备选型要考虑性能、功能项开启情况以及满足真实和未来需求三个方面。 1.    性能 性能指标包含4/7层吞吐量,4/7层新建连接数,并发连接数三大指标。同时包含SSL加速能力,HTTP压缩能力,内存Cache等功能模块指标。 1)     4/7层吞吐量(单位bps) 如果系统应用配置都是4层的(负载均衡设备只判断TCP包头进行转发),那么考虑4层吞吐量即可。如果涉及到应用层数据包头或者数据包内容的判断和分析,那么必须考虑7层的吞吐量能力。吞吐量的计算通过统计单位时间内网络中的流量(出向流量+入向流量)即可得出,一般来说要把峰值流量作为吞吐量选择的最低依据(如果可以容忍峰值丢包,那么可以以平均每秒的流量作为参考),例如经过统计峰值流量为10Gbps,那么必须考虑10Gbps吞吐量以上的设备。 2)     4/7层新建连接数(单位CPS) 新建连接数也分为4层新建连接数和7层新建连接数/请求数两大指标,判断该用哪个指标跟吞吐量一样,都是判断负载均衡设备对经过的流量是4层的处理还是7层的处理。新建连接数衡量的是负载均衡设备每秒能处理多少个4层或者7层的用户新建连接,例如一个用户每秒会发起10个新建连接,网络中有1万个并发用户,那么负载均衡设备的4层新建连接能力不能小于10万CPS,如果负载均衡设备是做7层处理的,那么必须要求7层新建连接数也不能小于10万CPS。 3)     并发连接数 并发连接数衡量的是负载均衡设备能够同时处理多少个用户会话,如果有设备号称新建连接数很高,但并发连接数较低,则该设备将很快达到瓶颈,新的用户连接将处于排队或者丢弃的状态,这显然是不合理的,所以一个性能强的负载均衡设备,必然是新建连接和并发连接数指标都会很高,而不会只有一个高。并发连接数可以通过统计服务器上的连接数来计算,例如经过统计,共有100台服务器,每台服务器并发连接数峰值为5000个,那么要求设备至少支持50万并发连接能力。 4)     功能模块性能指标 a)    SSL加速 经验表明,服务器自己开启SSL加解密后的性能会降为开启前的十分之一,所以需要安全访问的系统往往会把SSL的加解密通过负载均衡设备的SSL加速功能来完成。 SSL加速性能指标有SSL新建连接数(CPS),新建交易数(TPS),SSL Bulk(对称加解密)吞吐量等,这些指标的估算跟7层新建连接数和吞吐量的估算一样,判断需要SSL加解密的流量和连接数有多少即可。 b)    HTTP压缩 负载均衡设备的HTTP压缩功能会把服务器的应答包压缩后发送给客户端,然后客户端浏览器会自动解压缩,HTTP压缩降低了数据包大小,自然也就提高了用户的访问速度,是否开启这个功能要对负载均衡设备压缩的开销,压缩的效果以及网络传输速度做综合衡量,一般在配置中只会对部分确实需要的应用来开启,HTTP压缩的单位bps,例如需要压缩的流量为1Gbps,则选择至少1Gbps压缩性能的负载均衡设备。 c)    内存Cache 内容缓存可以降低服务器的负载并提高响应速度,抛开功能差异,缓存能力衡量的指标是用于缓存的内存大小。该功能各负载均衡厂家一般是免费赠送。 2.    功能项开启 负载均衡设备开启功能项的数量多少对于负载均衡设备的性能影响是不同的,开启的功能项越多,越复杂,设备的性能也会随之做更多的下降,所以在考虑负载均衡设备时,如果自己的系统会用到多个功能项,对于前面的性能指标要有一定的盈余考虑。 3.    满足真实和未来需求 以上所述的吞吐量,新建连接数,并发连接数以及各模块指标都是在相对单纯干净的环境测出的值,也就是说都是各负载均衡设备在最优环境下的最大值,但在真实环境,流量可能复杂很多,所以负载均衡设备在真实应用中一般不可能达到标称的性能(实际上对于所有做复杂处理的设备来说,都不可能达到标称值)。考虑到应用的复杂程度不同,功能模块开启的数目不同,在负载均衡性能指标的选型时,一定要留下充足的空间,原则如下: 1)   如果确认负载均衡设备对所有应用的处理都是最简单的4层处理,那么理论上选择的负载均衡设备的4层性能稍高于实际性能需求即可。 2)   如果确认负载均衡设备对所有应用的处理都是简单的7层处理,那么理论上选择的负载均衡设备的7层性能稍高于实际性能需求即可。 3)   如果负载均衡设备处理的应用既有4层的也有7层的,建议按照7层应用的性能来考虑负载均衡设备。 4)   如果确认自己的应用经过负载均衡处理时,需要复杂的4层或者7层处理,例如需要根据客户端的地址做策略性分发,需要根据tcp的内容做处理,需要根据HTTP头或者HTTP报文做处理,那么建议选择的负载均衡设备4/7层性能为真实性能需求的两倍。 5)   如果负载均衡设备有混合的复杂流量处理并且还开启了一些功能模块,那么建议选择的负载均衡设备4/7层性能为真实性能需求的3倍。 6)   考虑到设备需要轻载运行才能更加稳定,所以有可能的话在以上基础上再增加30%的性能。 7)   如果还要满足未来几年的发展需求,在以上基础上还要留出未来发展所需要增加的性能。 8)   不同负载均衡设备厂家由于不同的架构,使得某些设备在复杂环境下可能也表现的比较优秀,这个客户可以对比判断,但总体来说,以上建议适合于所有厂家的设备。

  • ICP/IP地址/域名信息备案管理系统 进行 系统升级

    ICP/IP地址/域名信息备案管理系统 进行 系统升级

    要升级了,拭目以待 尊敬的用户:        2017年12月15日-2017年12月18日,工业和信息化部“ICP/IP地址/域名信息备案管理系统”进行 系统升级。在此期间,阿里云代备案管理系统将同时关闭进行系统维护(具体关闭时间:2017年12月 15日17:30至2017年12月18日09:00)。届时您将不能登录备案系统提交或修改备案信息,同时将暂停 向各省通信管理局提交备案信息审核。2017年12月18日09:00系统恢复运行后,阿里云会尽快将您的 备案信息提交各省通信管理局审核。 紧急事宜,请咨询备案客服电话:95187转3

  • docker Alpine镜像的中国时区东八区设置

    Dockerfile修改 增加安装tzdata包 在安装包时安装tzdata安装包,并且在构建成功后不能清理此安装包 #定义环境变量 ENV  TIME_ZONE Asia/Shanghai #dockerfile增加命令 RUN \ … #安装tzdata安装包 && apk add –no-cache tzdata \ 增加时区配置 安装此安装包后,会在/usr/share/zoneinfo目录下生成各时区配置信息,Alpine目录并无timezone及locatime配置,此时我们需要将时区值覆写至Alpine的timezone及localtime配置中,命令如下: RUN \ … #安装tzdata安装包 && apk add –no-cache tzdata \   #设置时区 && echo “${TIME_ZONE}” > /etc/timezone \  && ln -sf /usr/share/zoneinfo/${TIME_ZONE} /etc/localtime \

  • nginx 1.13 see security.limit_extensions 错误解决办法

    nginx 1.13 see security.limit_extensions 错误解决办法

    server{         listen       80;         server_name  moneyslow.com;         access_log  /data/logs/nginx/moneyslow_access.log main;         error_log  /data/logs/nginx/moneyslow_error.log;         index index.php index.html;         root  /var/www/html;         if ($request_uri ~ ” “) {        …

  • docker 删除 状态 exited的容器

    docker rm $(docker ps -q -f status=exited) docker rm $(docker ps –all -q -f status=exited)