Virnash

一、虚拟机封装

1.安装无图形化虚拟机
mem=512(默认选择无图形化安装)
GiB=20(虚拟硬盘disk,内存大一点)
选择语言、时区、ip6(不选)、修改密码
2.配置虚拟机

cd /etc/udev/rules.d (删除70-*文件)
 vi /etc/sysconfig/network-scripts/ifcfg-eth0
    (注意:网络状态static)
 /etc/init.d/network restart ##重启网络
 vi /etc/yum.repo.d/rhel*   ##配置yum源
   baseurl=真机yum地址
   enabled=1
 yum install vim lftp
 vim /etc/sysconfig/network ##永久修改主机名
 vim /etc/hosts         ##设置本地域名解析
 /etc/init.d/iptables stop  ##关闭防火墙
 chkconfig --list iptables  ##查看火墙状态
 chkconfig iptables off     ##关闭火墙开机自启
 SELINUX=disabled       ##设置selinux

 virt-sysprep -d base0   ##清理base0虚拟机
 关闭封装的虚拟机base

这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
3.子镜像建立

[root@foundation10 images]# qemu-img create -f qcow2 -b base-1.qcow2 test1
Formatting 'test1', fmt=qcow2 size=17179869184 backing_file='base-1.qcow2' encryption=off cluster_size=65536 lazy_refcounts=off 
[root@foundation10 images]# qemu-img info test1 
image: test1
file format: qcow2
virtual size: 16G (17179869184 bytes)
disk size: 196K
cluster_size: 65536
backing file: base-1.qcow2
Format specific information:
    compat: 1.1
    lazy refcounts: false
[root@foundation10 images]# qemu-img create -f qcow2 -b base-1.qcow2 test2
Formatting 'test2', fmt=qcow2 size=17179869184 backing_file='base-1.qcow2' encryption=off cluster_size=65536 lazy_refcounts=off 
[root@foundation10 images]# qemu-img create -f qcow2 -b base-1.qcow2 test3
Formatting 'test3', fmt=qcow2 size=17179869184 backing_file='base-1.qcow2' encryption=off cluster_size=65536 lazy_refcounts=off 

4.创建虚拟机
导入子镜像,选择linux操作系统,版本选择6.5,登入查看信息

二、 CDN

varnish 服务的机制是反向代理

1.varnish

Varnish 是一个 web 加速器,被安装在 web 应用程序前面,缓存 web 应用程序,并响应用求,varnish 让您的 web 应用程序运行的更快,并且 varnish 灵活好用。

2.varnish的功能:

a: 一套缓存系统,在CDN中扮演web缓存的角色,性能和响应时间更优越,语法简单,可以实现很多定制化,而HAProxy无缓存
b:反代是最基本的功能,自然具备
c:可以实现动静分离
d:可以实现负载均衡

3.VCL简介:

Varnish Configration Lnguage, 是varnish配置缓存策略的一种基于‘域‘的简单编程语言。使用VCL编写的缓存策略通常保存在.vcl文件中,其需要编译成 二进制文件才能被varnish调用。

4.vcl函数
配置一个后端服务器
server1
1.安装varnish,varnish-libs

2.修改varnish配置文件
/etc/sysconfig/varnish  端口:80
  /etc/varnish/default.vcl
backend default {
  .host = "172.25.10.2";
  .port = "80";
}
3.查看缓存命中情况(/etc/varnish/default.vcl)
sub vcl_deliver {
if (obj.hits > 0) {
set resp.http.X-Cache = "HIT from westos cache";
}
else {
set resp.http.X-Cache = "MISS from westos cache";
}
return (deliver);
}

[root@server1 ~]# /etc/init.d/varnish reload
Loading vcl from /etc/varnish/default.vcl
Current running config name is boot
Using new config name reload_2018-06-19T23:07:40
VCL compiled.

available       2 boot
active          0 reload_2018-06-19T23:07:40

Done

[root@foundation10 ~]# curl -I 172.25.10.1
HTTP/1.1 200 OK
Server: Apache/2.2.15 (Red Hat)
Last-Modified: Tue, 19 Jun 2018 13:30:01 GMT
ETag: "c0e04-18-56efeaddada92"
Content-Type: text/html; charset=UTF-8
Content-Length: 24
Accept-Ranges: bytes
Date: Tue, 19 Jun 2018 13:42:39 GMT
X-Varnish: 1298813625 1298813624
Age: 35
Via: 1.1 varnish
Connection: keep-alive
X-Cache: HIT from westos cache  ## 命中

MISS from westos cache #未命中

4.开启服务
/etc/init.d/varnish start 
server2
1.安装http服务
2.配置默认发表文件

这里写图片描述

定义多个不同域名站点的后端服务器
内核、操作系统、软件:
    修改限制文件,保证流量大时。服务正常运行
1.修改配置文件(/etc/varnish/default.vcl)
backend web1 {
##访问web1时,指向172.25.10.2
.host = "172.25.10.2";
.port = "80";
}

backend web2 {
 ##访问web1时,指向172.25.10.3
.host = "172.25.10.3";
.port = "80";
}

sub vcl_recv {
##www.westos.org和westos.org指向同一地址,节省varnish空间
##实质上,域名不同,varnish缓存地址不同
if (req.http.host ~ "^(www.)?westos.org") {
set req.http.host = "www.westos.org";
set req.backend = web1;
} elsif (req.http.host ~ "^bbs.westos.org") {
set req.backend = web2;
} else {error 404 "westos cache";
}
}

sub vcl_deliver { 
##第一次访问时MISS,后续访问HIT,varnish默认清楚时间120s
if (obj.hits > 0) {
set resp.http.X-Cache = "HIT from westos cache";
}
else {
set resp.http.X-Cache = "MISS from westos cache";
}
return (deliver);
}

2.查看配置是否正确
[root@server1 ~]# /etc/init.d/varnish reload
Loading vcl from /etc/varnish/default.vcl
Current running config name is boot
Using new config name reload_2018-06-19T23:07:40
VCL compiled.

available       2 boot
active          0 reload_2018-06-19T23:07:40

Done
## 配置正确
3.重启服务
[root@server1 ~]# /etc/init.d/varnish restart
Stopping Varnish Cache:                                    [  OK  ]
Starting Varnish Cache:                                    [  OK  ]
server2
1.安装httpd服务
2./var/www/html/index.html
 <h1>www.westos.com</h1>

server3
1.安装httpd服务
2./var/www/html/index.html
 <h1>bbs.westos.org</h1>
物理主机:
用物理主机访问时,作域名解析
172.25.10.1  bbs.westos.org www.westos.org westos.org

这里写图片描述
这里写图片描述

负载均衡和健康检查
server1
1.修改配置文件 /etc/security/limits.conf
varnish         -       nofile          131073
varnish         -       memlock         102400
varnish         -       nproc           unlimited
2.修改配置文件(/etc/varnish/default.vcl)
backend web1 {
.host = "172.25.10.2";
.port = "80";
}

backend web2 {
.host = "172.25.10.3";
.port = "80";
}
##负载均衡
director lb round-robin {
{       .backend = web1;        }
{       .backend = web2;        }
}

sub vcl_recv {
if (req.http.host ~ "^(www.)?westos.org") {
set req.http.host = "www.westos.org";
set req.backend = lb;   ##调用lb函数
return(pass);   ##为了测试,不做缓存
} elsif (req.http.host ~ "^bbs.westos.org") {
set req.backend = web2;
} else {error 404 "westos cache";
}
}


sub vcl_deliver {
if (obj.hits > 0) {
set resp.http.X-Cache = "HIT from westos cache";
}
else {
set resp.http.X-Cache = "MISS from westos cache";
}
return (deliver);
}
3.检测配置是否正确
[root@server1 ~]# /etc/init.d/varnish reload
Loading vcl from /etc/varnish/default.vcl
Current running config name is boot
Using new config name reload_2018-06-19T23:20:00
VCL compiled.

available       1 boot
active          0 reload_2018-06-19T23:20:00

Done

4.重启服务
[root@server1 ~]# /etc/init.d/varnish restart
Stopping Varnish Cache:                                    [  OK  ]
Starting Varnish Cache:                                    [  OK  ]
server2主机
Apache默认发布文件
<h1>www.westos.org-server2</h1>
server3主机
配置虚拟主机( vim /etc/httpd/conf/httpd.conf)
NameVirtualHost *:80  ##打开虚拟主机功能
<VirtualHost *:80>
        DocumentRoot /var/www/html
        ServerName bbs.westos.org
</VirtualHost>

<VirtualHost *:80>
        DocumentRoot /www/html
        ServerName www.westos.org
</VirtualHost>

本机测试: ##本地做域名解析
[root@server3 html]# vim /etc/hosts
172.25.10.3 server3 www.westos.org bbs.westos.org

[root@server3 html]# cat index.html 
<h1>www.westos.org</h1>
[root@server3 html]# cat /www/html/index.html
<h1>www.westos.org-server3</h1>

[root@server3 ~]# curl www.westos.org
<h1>www.westos.org-server3</h1>
[root@server3 ~]# curl bbs.westos.org
<h1>bbs.westos.org</h1>

这里写图片描述
这里写图片描述

推送管理

server1主机
1.安装httpd,php,unzip
2.修改httpd端口8080后,启动http服务
 Listen = 8080
3.默认发布目录/var/www/html下解压 bansys.zip;并移动解压后的文件到/var/www/html/
[root@server1 html]# unzip bansys.zip 
[root@server1 html]# ls
bansys  bansys.zip
[root@server1 html]# cd bansys
[root@server1 bansys]# ls
class_socket.php  config.php  index.php  purge_action.php  static
[root@server1 bansys]# mv * ..
[root@server1 bansys]# cd ..
[root@server1 html]# ls
bansys      class_socket.php  index.php         static
bansys.zip  config.php        purge_action.php
[root@server1 html]# rm -fr bansys
[root@server1 html]# rm -fr bansys.zip 
[root@server1 html]# ls
class_socket.php  config.php  index.php  purge_action.php  static

3.修改配置文件(/etc/varnish/default.vcl)
acl westos {
"127.0.0.1";
"172.25.10.0"/24;
}

backend web1 {
.host = "172.25.10.2";
.port = "80";
}

backend web2 {
.host = "172.25.10.3";
.port = "80";
}

director lb round-robin {
{       .backend = web1;        }
{       .backend = web2;        }
}
sub vcl_recv {

if (req.request == "BAN") {
if (!client.ip ~ westos) {
error 405 "Not allowed.";
}
ban("req.url ~ " + req.url);
error 200 "ban added";
}

if (req.http.host ~ "^(www.)?westos.org") {
set req.http.host = "www.westos.org";
set req.backend = lb;
} elsif (req.http.host ~ "^bbs.westos.org") {
set req.backend = web2;
} else {error 404 "westos cache";
}
}

sub vcl_deliver {
if (obj.hits > 0) {
set resp.http.X-Cache = "HIT from westos cache";
}
else {
set resp.http.X-Cache = "MISS from westos cache";
}
return (deliver);
}

4.server2,server3 配置不变

这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

内容概要:本文围绕“基于需求侧响应的配电网供电能力综合评估”展开研究,重点探讨了价格型需求响应机制对配电网供电能力的影响,并提出了一套科学的综合评估方法。研究构建了一个涵盖一次设备安全、负荷平稳性、电能质量和系统效率等多个维度的评价指标体系,采用熵权法客观确定各指标权重,并结合模糊综合评价模型实现双层评分机制,从而定量评估不同运行场景下配电网的承载能力。通过Python编程实现算法仿真,利用算例分析验证了所提模型在不同分布式能源渗透率及多种需求响应策略下的有效性与灵敏度,揭示了价格激励措施在提升电网承载力方面的积极作用,为现代配电网的规划、调度与运行优化提供了理论依据和技术支撑。; 适合人群:具备一定电力系统基础知识和Python编程能力,从事电力系统规划、运行优化、需求响应等相关领域的科研人员及研究生。; 使用场景及目标:①评估高比例电动汽车、分布式电源接入背景下配电网的实际供电能力;②分析价格型需求响应策略对提升电网承载力的作用效果;③为配电网扩容改造、运行调度和需求管理政策制定提供决策支持; 阅读建议:建议读者结合文中提供的Python代码进行实证复现,重点关注熵权法与模糊综合评价的实现逻辑,并尝试修改参数设置以观察评估结果的变化趋势,加深对模型机理的理解。
源码下载地址: https://pan.quark.cn/s/a4b39357ea24 在Qt应用程序开发过程中,有时我们可能需要构建一个具备特殊视觉效果的窗口,例如设计成没有边框但带有阴影,并且依然允许用户拖动窗口。此类需求通常出现在构建简洁用户界面或定制化窗口外观的场景中。标题“Qt(部分)无边框窗口 边框阴影,可以拖动边框,移动窗口”所涵盖的技术要点主要集中于如何在Qt框架内达成这样的功能,尤其是借助winEvent函数的重写来应对特定的Windows平台事件。 让我们深入理解无边框窗口的概念。在Qt环境中,可以通过调整窗口的边框样式来构建无边框窗口。这通常是通过`setWindowFlags()`函数完成的,将`Qt::FramelessWindowHint`标志整合到窗口的标志参数里。例如: ```cpp setWindowFlags(Qt::CustomizeWindowHint | Qt::Window | Qt::FramelessWindowHint); ``` 这样一来,窗口将丧失标准的边框和标题栏,但依然维持着窗口管理的基本功能,例如最大化、最小化和关闭操作,前提是你也没有移除这些相关标志。 接下来,为了给无边框窗口增添阴影效果,可以利用Qt的QGraphicsDropShadowEffect类。首先创建一个QGraphicsView对象作为窗口的底层容器,然后在其上放置一个QGraphicsProxyWidget用以展示实际的窗口内容。接着,为QGraphicsView施加阴影效果: ```cpp QGraphicsDropShadowEffect *shadow = new QGraphicsDropShadowEffe...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值