Linux系统Nginx负载均衡环境部署及定时脚本

Nginx安装与配置、使用Nginx负载均衡及动静分离、后台服务部署、环境准备、系统拓扑图 nginx 的 http 模块使用 pcre 来解析正则表达式,所以需要在 linux 上安装 pcre 库,pcre-devel 是使用 pcre 开发的一个二次开发库。zlib 库提供了很多种压缩和解压缩的方式, nginx 使用 zlib 对 http 包的内容进行 gzip ,所以需要在 Centos 上安装 zlib 库。这里采用离线安装方式, 如果希望使用yum方式安装,可以参考。安装 nginx 需要先将官网下载的源码进行编译,编译依赖 gcc 环境,如果没有 gcc 环境,则需要安装。 阅读详情

1、大型项目衡量依据

1.1、PV

即整个项目所有页面一天之内被访问的总次数。项目PV值可以达到千万级别项目就算属大型项目

1.2、UV

即整个项目一天之内被访问的总的用户数(以客户端进行区分)。一般UV值可以达到10万以上该项目就可以算大型项目

1.3、独立IP

即整个项目一天之内被访问的总IP数量

2、apache性能测试

①使用集成包部署一个lamp环节

该步骤已经部署好 web目录地址在/home/wwwroot/default

 

②使用浏览器访问

③打开top命令(持续观察)

④使用apache的ab工具来进行测试

⑤具体查看结果

直接ab的参数在设置更大查看top命令中的结果

通过上述的结果发现 在请求量很大的情况下apache会消耗特别大的系统资源(cpu上升并且进程基本上都是httpd)。因此说明apache在访问量很高的情况下不能够支撑项目的运行

3、负载均衡概述

3.1、负载均衡介绍

为了解决web请求的压力,将请求安装一定的算法分发给其他的服务器来处理请求。负载均衡属于集群(多台服务器每一个都能够单独的完成一项任务。如果某一个异常也不会影响整个任务的运行)中的一种应用

3.2、负载均衡的原理图

1、域名解析是解析在负载均衡反向代理服务器上

2、当用户访问是本质是访问负载均衡反向代理服务器(代理即所有的请求都需要经意该服务器处理 代理服务器叫做反向代理。代理客户端叫做正向代理)

3、当负载均衡反向代理服务器收到请求之后将请求按照一定的算法分发给后端真实处理请求的服务器

4、当后端真实处理请求的服务器接受请求处理最终将结果返回给负载均衡反向代理服务器

5、最终由负载均衡反向代理服务器将结果响应给客户端

3.3、负载均衡分类

只是负载均衡可以划分类型的方式

3.3.1、地域

以真实处理请求的服务器的所在位置

1、全局负载

真实处理请求的服务器全部都处于外网中(所有服务器都可以通过IP地址直接进行访问。但是一般考虑安全问题真实处理请求的服务器只容许负载均衡反向代理服务器进行访问)。在全局负载的基础之上衍生一项技术叫做CDN加速(将用户的请求交给距离用户最近的服务器进行处理)

2、本地负载

真实处理请求的服务器全部都处于局域网中。对于本地负载安全性更高。

 

3.3.2、实现方式

1、硬件负载

依靠具体的硬件专门实现分发请求从而实现负载均衡。对于硬件负载功能稳定,并且能够提供一些额外的功能。

2、软件负载

在操作系统中安装某一个软件来实现将请求进行分发从而实现负载均衡。对于软件负载受限制与操作系统。并且稳定性与硬件相比较略差。目前使用最多的是通过使用Nginx来实现负载均衡

3、Nginx概述

3.1、Nginx介绍

Nginx(”engine x”)是俄罗斯人编写的一款高性能的HTTP和反向代理服务器。它能够支持高达50000个并发连接数的响应,而内存,cpu等系统资源消耗却非常低。

Nginx属于一款轻量级别的邮件服务器、http服务器及方向代理服务器

3.2、常见的web服务器

Apache:属于一款重量级的web服务器

Nginx:属于一款轻量级的web服务器

Tomcat:java容器

IIS:微软开发

Tengine:淘宝对Nginx进行二次开发

3.3、常见PHP生产环境

1、LAMP:Linux+apache+mysql+php

2、LNMP:Linux+Nginx+mysql+php

3、LNAMP:Linux+Nginx+apache+mysql+php

Nginx 实现请求的分发

3.4、apache与Nginx的区别

1、apache功能强大,运行稳定

2、Nginx功能少(php不支持),稳定性比apache略差

3、apache在并发情况下性能一般(完全依靠进程来处理任务来一个请求产生一个进程处理)

4、Nginx在高并发时性能良好(依旧采用的进程方式进行工作但是Nginx使用了异步非阻塞网络模式)

4、Nginx环境搭建

4.1、创建Linux虚拟机

创建步骤参考Linux第一天的环境搭建

4.2、安装Linux

没有截图的跟Linux第一天的环境搭建一模一样

①选择安装的类型

选择所有空间无需自己创建分区

②选择安装精简版

4.3、配置网络

①使用root账户登录系统并且查看IP

②进入网络配置文件

③修改配置文件/etc/sysconfig/network-script/ifcfg-eth0

④重启网络服务

⑤查看IP

配置完网络服务就可以使用xshell进行远程连接

4.4、设置本地yum源并且安装基础软件

4.4.1、配置本地yum源

①设置光盘已连接

打开虚拟机设置

设置光盘已连接

②创建光盘的挂载目录

③手动挂载光盘

④查看结果

⑤进入到yum配置目录

⑥禁用默认的网络yum源

⑦修改配置文件启用本地的yum源

打开配置文件

⑧测试yum安装使用

结果

⑨yum卸载软件

⑩软件查询

如果想要查询指定可以使用管道符配在配合grep筛选

4.4.2、使用yum安装基础软件

yum -y install make gcc gcc-c++ opensslopenssl-devel pcre-devel zlib-devel libxml2 libxml2-devel vim

4.5、Nginx安装

①使用FTP将Nginx的源码包上传到服务器上

②在命令行中进行解压

③进入解压目录执行configure

④安装

4.6、PHP安装

①使用FTP上传PHP源码包

②命令行进入home目录解压

③进入解压目录执行configure

④安装

4.7、配置Nginx与PHP交互

4.7.1、Nginx的安装目录解释

4.7.2、关于Nginx的启动等操作

①启动Nginx服务

②关闭Nginx服务

通过此方式关闭Nginx服务属于平滑关闭(平滑即不对现有的用户请求产生影响)

③关于不平滑关闭方式

可以使用pkill 直接将所有的Nginx相关的进程全部关闭也可以使用kill关闭指定的进程(kill作用是用于给进程进行传递信号)

④Nginx的重启

4.7.3、启动php

①启动php

②解决报错问题

③查看php是否启动

4.7.4、配置Nginx与PHP交互

①确认Nginx已经以及php启动

②直接访问Nginx

直接访问不能正常说明有问题(可以通过检查是否能够通信、服务是否启动、防火墙)

③关闭防火墙

查看结果

④创建php测试文件

访问测试时 发现代码直接下载

⑤修改Nginx的配置文件

先打开配置文件

修改内容

⑥重启Nginx查看效果

 

5、虚拟主机配置

5.1、Nginx配置文件详解

具体完整的配置项信息可以参考资料中的“nginx配置文件详解.txt”

5.2、配置虚拟主机

①打开配置文件

②修改server

③重启Nginx

④修改本机的host文件

⑤访问测试

5.3、修改虚拟主机的配置方式

由于目前增加虚拟主机每次都需要修改到Nginx的主配置文件(nginx.conf)。此方式容易导致修改错误导致Nginx的主配置文件出错

①修改Nginx的主配置文件

打开配置文件

②创建虚拟主机配置文件的存储目录

③在vhosts目录下创建虚拟主机配置

创建文件

输入内容

在vhosts目录下每一个后缀为.conf的文件就是一个虚拟主机配置 内容为server一段

④重启Nginx查看效果

结果

5.4、关于Nginx的缓存功能

关于Nginx的缓存设置直接针对对应的资源文件进行匹配即可

6、实现负载均衡

6.1、克隆第一台服务器

①先关闭Nginx2服务器(被克隆的服务器)

②开始克隆

选中服务器->右键->管理->克隆

③在弹出的引导界面直接下一步

④克隆当前状态

⑤选中克隆方式

⑥设置名称及存储位置

 

6.2、克隆第二台服务器

完整操作步骤参考6.1步骤

注意:被克隆的依旧为Nginx2服务器

6.3、调整克隆的第一台服务器nginx3

6.3.1、配置网络服务

①使用root账户登录

密码跟nginx2的密码一模一样

②查看Mac地址

③进入到网络配置目录

④修改配置文件

⑤重启网络服务查看IP地址

6.3.2、确保Nginx3的web服务可以正常访问

①关闭防火墙

②启动Nginx跟php

③测试是否可以访问

④修改测试的p.php文件

⑤再次测试

 

6.4、调整克隆的第二台服务器nginx4

6.4.1、配置网络服务

步骤与6.3.1一模一样

6.4.2、配置Nginx正常

步骤与6.3.2一致

6.5、调试Nginx2正常分发请求

①关闭防火墙

②修改Nginx的主配置文件

打开文件

③针对要负载的虚拟主机修改配置文件

先打开虚拟主机配置文件

修改内容

④启动Nginx

⑤查看结果

6.6、upstream语法

upstream 别名{

server 域名/IP地址 参数;

}

1、weight=number权重

2、bakup备份服务器

3、down,不可用状态

6.6.1、权重指定

①打开Nginx主配置文件(处理分发请求的Nginx2服务器)

②修改内容

③重启Nginx

④查看效果

 

6.6.2、backup

①打开配置文件(处理分发请求的Nginx2服务器)

②修改配置项

③重启Nginx

④查看效果

⑤挂起192.168.26.134服务器

此处挂起即代表服务器宕机

6.6.3、down

表示将服务器标注为宕机状态不参与负载均衡。在任何情况下都不参与

6.7、负载均衡算法

6.7.1、轮循

安装顺序逐个分配

6.7.2、权重

安装指定的数组比例采用轮询的方式来分配请求

6.7.3、最小连接

将请求分发给处理请求数量最少的服务器

6.7.4、ip_hash

根据请求的客户端的IP地址分配给固定的某一个服务器处理请求。从理论上ip_hash可以解决负载均衡下的session问题。但是没人使用

其他第三方算法(url_hash等)

 

7、扩展定时脚本

建议仔细查看怎么使用

7.1、定时脚本介绍

对于某个任务需要在固定的某一个时间点执行或者执行多次。需要使用定时脚本功能。对于脚本编写可以使用php完成任务然后配合Linux中的crontab实现定时。

7.2、案例一

使用Nginx2服务器实现

①进入Nginx的web根目录创建1.txt

 

②修改1.txt内容

③修改1.txt文件权限

④创建cron.php

⑤使用浏览器访问测试

查看文件

⑥在命令行下执行php

方式一

方式二

建议编写脚本时涉及到目录地址统一采用绝对地址

⑦ crontab使用

Crontab格式为:* * * * * command

第1列分钟1~59

第2列小时1~23(0表示子夜)

第3列日1~31

第4列月1~12

第5列星期0~6(0表示星期天)

第6列要运行的命令

例如要求每天12点12分执行某个任务

30 21 * * * /usr/local/apache/bin/apachectl restart

上面的例子表示每晚的21:30重启apache。

45 4 1,10,22 * * /usr/local/apache/bin/apachectl restart

上面的例子表示每月1、10、22日的4 : 45重启apache。

10 1 * * 6,0 /usr/local/apache/bin/apachectl restart

上面的例子表示每周六、周日的1 : 10重启apache。

0,30 18-23 * * * /usr/local/apache/bin/apachectl restart

上面的例子表示在每天18 : 00至23 : 00之间每隔30分钟重启apache。

0 23 * * 6 /usr/local/apache/bin/apachectl restart

上面的例子表示每星期六的11 : 00 pm重启apache。

* */1 * * * /usr/local/apache/bin/apachectl restart

每一小时重启apache

* 23-7/1 * * * /usr/local/apache/bin/apachectl restart

晚上11点到早上7点之间,每隔一小时重启apache

0 11 4 * mon-wed /usr/local/apache/bin/apachectl restart

每月的4号与每周一到周三的11点重启apache

0 4 1 jan * /usr/local/apache/bin/apachectl restart

一月一号的4点重启apache

⑧使用crontab实现定时

先设置定时

查看日志

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

在Linux系统中无网络安装Nginx并配置负载均衡 通过本文的步骤,我们成功在无网络的环境中安装了Nginx,并配置了负载均衡功能。虽然无网络环境下的安装过程相对复杂,但通过手动编译和配置,我们依然能够搭建起一个高性能的Web服务器。希望本文能够帮助到需要在无网络环境下部署Nginx的开发者。如果你在安装过程中遇到任何问题,欢迎在评论区留言,我会尽力为你解答。 阅读详情

相关推荐

Linux下使用Nginx实现负载均衡

小编这些年深知大多数初中级工程师,想要提升自己,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。因此我收集整理了一份《2024年Java全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!如果你需要这些资料,⬅专栏获取[外链图片转存中…(img-kAYSAbQt-1719518107217)]

2401_85763595的博客 1072

进入大本营

刚加入学生大本营,希望能在里面学到好多知识,加油进步!

陆启超(网络管理) 16万+

基于linux下nginx服务负载均衡的配置

1.安装部署nginx [root@server4 ~]# cd /mnt [root@server4 mnt]# ls nginx-1.14.0.tar.gz [root@server4 mnt]# tar zxf nginx-1.14.0.tar.gz [root@server4 mnt]# ls nginx-1.14.0 nginx-1.14.0.tar.gz [root@server...

lin_made的博客 1万+

16.12.21小程序0.11.122100版本更新问题

官方更新了122100版本,一共有90几处改动。这里先不一一列举了。放在另外的文章里。这里主要指出本次更新后对我们项目的影响。

Beta007的博客 1356

Linux部署多个Spring Boot项目详解:从环境搭建到负载均衡

本文详细介绍了在Linux服务器上部署多个Spring Boot项目的完整流程。首先,通过系统初始化和JDK安装完成环境准备,接着规划项目结构和端口分配。随后,使用Systemd服务管理多个Spring Boot应用,并通过Nginx配置反向代理和负载均衡。此外,文章还提供了容器化部署方案,使用Docker和Docker Compose简化管理。最后,介绍了服务注册与发现(Eureka)和配置中心(Spring Cloud Config)的集成,以实现更高效的微服务架构。通过这些步骤,开发者可以在单台服务器

weixin_42593797的博客 1532

Linux系统之配置Nginx负载均衡

Linux系统之配置Nginx负载均衡

jks212454的博客 860

部署到Linux局部刷新出错,宝塔面板Linux正式版6.9.2推送更新 – 修正部分用户反馈安全入口有时会访问出错的问题...

宝塔面板反应速度足够快,最近大鸟也在官方反应了安全入口有时会访问出错的问题,也就是昨天反馈了这个问题,官方貌似也注意到了这事情。而且大鸟也给出了相应的解决办法,不过那个办法只能解决一时,只要取消安全入口才不会出现重复提示出错的问题。但是取消又会不太安全。好在官方第一时间推送了更新解决了这个问题,我没来看看后台的更新吧。宝塔面板Linux正式版6.9.2,是小幅更新,如图:这次的更新主要解决了3个问...

weixin_36305686的博客 336

常见卫星图源下载教程

上面列出的8个常见的亚米级别数据源都可以通过xyz协议或者wmts/wms协议进行下载。这些协议是什么?地理信息数据为了方便网络传输,制定了一系列的地理数据传输标准(wms/wmts/xyz等)。协议特点优点缺点栅格数据支持矢量数据支持WMS通过HTTP请求获取GIS数据,服务器会将数据渲染成图像高度定制的地图;交互性强服务器渲染图像,响应时间较长支持有限支持WMTS提供预渲染的地图瓦片速度快,因为地图瓦片可以预先生成并在请求时快速提供瓦片的内容是预先确定的,无法进行定制支持。

锐多宝的地理空间 1万+

uniapp 实现单选多选

template <template> <view> <view class="list-item" v-for="(item, index) in goodList" :key="index"> <view class="group"> <checkbox-group @change="changeitem(item)" checked class="checkbox"><checkbox :value="item.un

weCat_s的博客 3416

使用Hyper-V使用下载下来的macOS安装引导安装macos

然后关闭工具返回安装界面选择第二个reinstall,选择119g那个硬盘。我的资源上传了:macOS Monterey on Hyper-V.7z。设置固件的启动顺序,引导安装盘放到第一位,mac安装110g放第二。选择disk utility格式化那个110g。下载解压的macos引导挂载到虚拟硬盘。其他设置安全禁用,检查禁用,集成都选中。新建一个虚拟硬盘装mac,110g。

viviliving的专栏 3023

电感损耗 DCR/ACR/磁芯损耗 3 大来源解析:从集肤效应到磁滞回线

本文深入解析电感损耗的三大来源:DCR(直流电阻)、ACR(交流电阻)和磁芯损耗,从集肤效应到磁滞回线的微观机制。通过对比不同材料和设计策略,提供高频开关电源中电感损耗的优化方案,帮助工程师提升系统效率和可靠性。

weixin_34379433的博客 512

gitbook安装与使用(含常用插件和book.json配置详解)

GitBook 安装教程 下面将介绍本地如何安装GitBook 环境要求 node版本要求:V4.0.0以上 通过npm安装 执行命令: npm install gitbook-cli -g 通过gitbook -V命令查看是否安装成功。 初始化 新建一个文件夹,例如新建 mygitbook ,然后在该目录下执行命令: gitbook init 会自动生成两个必要的文件 README.md 和...

G笔记 1万+

从零构建MAVLink通信:PX4飞控与QGC的协议握手全解析

本文详细解析了PX4飞控与QGC地面站通过MAVLink协议进行通信的全过程,重点介绍了航点传输协议的状态机设计、INT类型消息的优化优势以及异常处理与调试技巧。通过实战案例和性能优化建议,帮助开发者高效构建无人机通信系统,提升数据传输效率与稳定性。

weixin_29209805的博客 504

linux 部署Nginx

Nginx - 学相伴 分享人:秦疆(遇见狂神说) 公司产品出现瓶颈? 我们公司项目刚刚上线的时候,并发量小,用户使用的少,所以在低并发的情况下,一个jar包启动应用就够了,然后内部tomcat返回内容给用户。 但是慢慢的,使用我们平台的用户越来越多了,并发量慢慢增大了,这时候一台服务器满足不了我们的需求了。 于是我们横向扩展,又增加了服务器。这个时候几个项目启动在不同的服务器上,用户要访问,就需要增加一个代理服务器了,通过代理服务器来帮我们转发和处理请求。 我们希望这个代理服务器可以帮助我们接收

会飞的蜗牛 6914

USB3.0 Type-B连接器SSTX/SSRX信号定义常见错误与硬件设计避坑指南

本文详细解析了USB3.0 Type-B连接器中SSTX/SSRX信号的定义标准与常见设计错误。针对连接器厂商图纸可能出现的信号标识错误,提供了实用的排查方法和硬件设计避坑指南,帮助工程师避免因引脚定义颠倒导致的通信降级或故障,确保USB3.0高速传输的稳定性。

gg901的博客 1263

最新测算源码PHP算命源码-风水八字-八字起名-塔罗牌占卜

未来,随着技术的发展和用户需求的变化,我们可以继续对系统进行升级和优化,以满足更多用户的需求和期望。数据库设计:创建一个名为bazi的数据库表,包含以下字段:id(自增ID)、name(姓名)、sex(性别)、birth_date(出生日期)、birth_time(出生时间)、bazi(八字结果)。数据库设计:创建一个包含塔罗牌信息的数据库表,如tarot_cards,包含字段:id(塔罗牌ID)、name(塔罗牌名称)、meaning(塔罗牌含义)等。根据操作系统的不同,PHP的安装方法会有所不同。

shanbeizi的博客 2417

Linux环境下使用tomcat+nginx部署若依项目

分享部署过程,提供部署过程中出现问题的解决方案。

m0_73866527的博客 1763

基于Python的信用卡欺诈检测机器学习案例报告

当今时代,在线支付已成为一种高效便捷的支付方式,我们可以突破时间和空间的限制,输入我们的信用卡各项信息就可以完成在线支付。但随之而来的是这种支付方式也具备一定的风险性,我们无法辨别对方是否是恶意套取我们资金的非法分子。当信用卡信息数据泄露导致金钱失窃并最终失去客户忠诚度和公司声誉时,组织、消费者、银行和商家都会面临风险。2017 年,未经授权的信用卡操作达到了惊人的 1670 万受害者。此外,据美国联邦贸易委员会 (FTC) 报告,2017 年信用卡欺诈索赔数量比上一年高出 40%。

weixin_45673389的博客 6691

Linux---Nginx部署环境

Linux—Nginx部署环境 省事的话可以直接安装个宝塔面板,然后再宝塔种勾选安装mysql,nginx即可。 mysql mariadb是MySQL的分支 下载 wget http://mirrors.sohu.com/mysql/MySQL-5.6/MySQL-5.6.44-1.el7.x86_64.rpm-bundle.tar tar -xf MySQL-5.6.44-2.sles12.x86_64.rpm-bundle.tar 安装 yum install -y *.rpm 报错: 解决:sete

李波的blog,一名喜欢编程和分享技术的研究僧~ 1万+

使用pytorch-superpoint与pytorch-superglue项目实现训练自己的数据集

superpoint与superglue的组合可以实现基于深度学习的图像配准,官方发布的superpoint与superglue模型均基于coco数据训练,与业务中的实际数据或许存在差距,为此实现基于开源的pytorch-superpoint与pytorch-superglue项目实现训练自己的数据集。然而,在训练pytorch-superpoint有诸多细节需要优化,特此整理成技术文档。本文档描述了实验pytorch-superpoint与pytorch-superglue项目训练自己的图像配准模型。

a486259的博客 9504

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

【Linux】部署前后端分离项目---(Nginx自启,负载均衡)

【Linux】部署前后端分离项目---(Nginx自启,负载均衡)----超详细的图文并茂讲解,感兴趣可以看看,希望官方大大给我推流💕

m0_73192864的博客 3035

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

【Linux】在Ubuntu下部署nginx——nginx的负载均衡

在Ubuntu下部署nginx——nginx的负载均衡

weixin_60387745的博客 2181

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

【Linux】Linux+Nginx部署项目(负载均衡&动静分离)

Linux+Nginx部署项目,以及实现负载均衡&动静分离,一网打尽!!!

m0_74315688的博客 2202

Linux安装nginx、部署静态网页、实现负载均衡

Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日。 1.添加yum源 `rpm -Uvh http://nginx.org/packages/centos/7/no...

千月落 1万+

玩转Linux系统之搭建Nginx+Tomcat群集实现负载均衡

理论 提示:理论是基础,对搭建最优平台架构有帮助。 1、tomcat是免费的开放源代码的web应用服务器 属于轻量级应用服务器,是开发和调试jsp程序的首选。一般来说,具有处理html页面的功能。 2、性价比高 在中小型系统和并发访问用户不是很多的场合下被普遍使用 3、处理html的能力远不及apache或者nginx 所以,tomcat通常是作为一个servlet和jsp容器,单独运行在后端。 搭建Nginx+Tomcat群集 提示:可以有多种方式,为便于理解介绍比较简单的一种。 环境: 1.

Friendsofthewind的博客 1215

Nginx的安装和部署以及Nginx的反向代理与负载均衡

Nginx的安装和部署以及Nginx的反向代理与负载均衡

prcool的博客 1153
上一篇: Linux系统下Lame环境的搭建
下一篇: 第Linux系统memcache安装及缓存
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值