服务器

VISUALSVN安装及客户端使用

扶醉桌前 提交于 2020-02-29 05:30:37
1.为什么要用VisualSVN Server,而不用Subversion? 回答: 因为如果直接使用Subversion,那么在Windows 系统上,要想让它随系统启动,就要封装SVN Server为windws service,还要通过修改配置文件来控制用户权限,另外如果要想以Web方式【http协议】访问,一般还要安装配置Apache,如果是新手,岂不是很头痛?而VisualSVN Serve集成了Subversion和Apache,省去了以上所有的麻烦。安装的时候SVN Server已经封装为windws service,Apache服务器的配置也只是在图像界面上,指定认证方式、访问端口等简单操作;另外,用户权限的管理也是通过图像界面来配置。 2.为什么不用TFS? 回答: 因为我们一开始就是用Subversion和TortioseSVN,所以就没有更换其他的软件。至于TFS至今没有用过,其实,我只是看了一些的文章而已,对它也不了解。 3.VisualSVN Server是免费的吗? 回答: 是的,VisualSVN Server是免费的,而VisualSVN是收费的。VisualSVN是SVN的客户端,和Visual Studio集成在一起, VisualSvn Server是SVN的服务器端,包括Subversion、Apache和用户及权限管理,优点在上面已经说过了

罗友之家服务器文件管理升级小记

北城以北 提交于 2020-02-29 03:50:55
元旦前后,网站增加了直播功能,但发现,有时候打开页面,网站反应很慢。 吓死宝宝了,以为服务器出了啥子问题。 后来发现,由于上传图片,当一个页面有十多张图片,每个图片都有一兆多的时候,瞬间占满了一兆的带宽。 问题来了,就得解决。 原来的服务器文件,上传了,就放在那里,请求来了,便给。这样,如果一个页面有三两个一兆以上的文件,便会加载很慢,同时,其他访问,便拥堵了。 还有一个问题,原来的文件,都放到了数据库里,这样方便服务器横向扩展的时候,不用关心文件,反正都在数据库里。但,租用的数据库,也渐渐地满了。 最快捷的解决方法:加钱买啊! 钱能解决的问题,就不是问题。可,问题是没钱。 且,这么简单粗暴地解决问题,也不是我得风格。 于是,挽起袖子,自己解决。 需求如下: 1.图片要处理。图片有多种使用场景,缩略图,常规图,广告图片,海报图片等,规格都不一样。要随需供应。 2.语音也要处理。目前找到的文件500KB左右,加载要三两秒时间,明显等待。不爽。 3.要缓存。 4.支持所有文件。一个是用户上传的文件,另一个是ckeditor插件上传和管理的文件。 功能实现。 这是有史以来最废纸的功能,用了两页纸!平日里,一个功能,半张一张的,也就够了。 FreeFile领域类,用于存储文件元数据。主要是名称大小,路径之类(不再存数据库了)。为啥叫FreeFile,没啥意思,我是个爱自由的人。也想

实施虚拟化存储的五大理由

匆匆过客 提交于 2020-02-28 14:37:24
一、支持服务器虚拟化和高可用 存储虚拟化提供的共享存储,让虚拟机之间做迁移和负载均衡时不需要在存储系统之间迁移,同时也简化了动态虚拟化环境下存储资源的优化。共享存储池支持虚拟机集群技术以实现虚拟机的高可用,也就是在检测到错误时自动切换并能快速重启虚拟机。同样的,共享存储池也支持物理服务器上关键应用程序的高可用,也就是手动切换存储系统并能支持应用程序的集群技术。 二、简化管理 从管理的角度来看,与管理服务器直连存储相比,一个大的共享存储意味着更少的管理工作。当需要扩展现有存储或者在存储系统之间迁移数据的时候,存储虚拟化能够提供无干扰的存储空间扩容。越大的磁盘阵列越发拥有更好的管理工具,从而能更简化给服务器分配存储这类日常工作,减少管理员的工作量。 三、存储资源整合和分级存储 尤其是在NAS设备上,存储虚拟化可以被用来整合存储和对存储资源进行重复利用。举个例子,越来越多的对性能要求很高的数据会被迁移到更新的列上,而老的磁盘阵列作为二级存储则被用来存放备份数据。很多存储设备和虚拟化设备也有存储分级功能,能够实现这样的数据分层存储。 四、简化数据保护和灾难恢复 存储虚拟化技术能够帮助数据在本地和异地直接的拷贝以实现灾难恢复,很多存储虚拟化解决方案自带了远程异步复制功能。 五、易于部署 数据块级别虚拟化通常的实现方式有三种。它可以是运行在操作系统管理程序上的软件

2.请求安全-- MD5的必要性以及实际应用场景

时光毁灭记忆、已成空白 提交于 2020-01-10 12:04:38
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> #MD5的必要性以及实际应用场景 ##前言 MD5为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护。用于确保信息传输完整一致。是计算机广泛使用的杂凑算法之一(又译摘要算法、哈希算法),主流编程语言普遍已有MD5实现。将数据(如汉字)运算为另一固定长度值,是杂凑算法的基础原理,MD5的前身有MD2、MD3和MD4。 PS:写这篇文章的本意是把我在工作中使用的MD5加密技巧分享出来,和大家一起交流,可能应为水平有限会有遗漏之处望大家包含,也请大家提出建议我会进一步完善. ##1.MD5算法具有以下特点:## 1、压缩性:任意长度的数据,算出的MD5值长度都是固定的。 2、容易计算:从原数据计算出MD5值很容易。 3、抗修改性:对原数据进行任何改动,哪怕只修改1个字节,所得到的MD5值都有很大区别。 4、弱抗碰撞:已知原数据和其MD5值,想找到一个具有相同MD5值的数据(即伪造数据)是非常困难的。 5、强抗碰撞:想找到两个不同的数据,使它们具有相同的MD5值,是非常困难的。 根据以上的特定我们能总结出几个根据以上特点衍生出来可以供我们使用的特性: 1.方便存储:MD5加密出来都是32位的字符串,能够给定固定大小的空间存储,传输,验证 2.文件加密:MD5运用在文件加密上很有优势

使用linux套接字实现的简易服务器与客户端

别来无恙 提交于 2020-01-09 20:31:23
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 本文中的代码是我在学习linux套接字编程时写的,运行环境为RedHat,编译环境为G++ 测试环境有两台linux虚拟机,地址分别设为192.168.8.123和192.168.8.99 其中,192.168.8.123上运行了客户端,其源码(client.cpp)为 #include<sys/types.h> //data types #include<sys/socket.h> //main sockets header #include<stdio.h> //standard buffered input/output #include<netinet/in.h> //Internet address family #include<arpa/inet.h> //definitions for internet operations #include<unistd.h> //standard symbolic constants and types #include<stdlib.h> //standard library definitions #include<string.h> //string operions int main() { struct sockaddr_in address; /

php 安装扩展组件的方法

孤街浪徒 提交于 2019-12-19 14:12:31
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 对于已经安装完成的PHP,有时会出现没有我们所需扩展组件的情况,这种情况下需要编译一下代码安装少的PHP组件,下面以安装邮件系统时少了mbstring为例说明.其它的PHP组件安装方法一样。 php安装扩展组件的方法中使用的PHP版本是:php-5.3.8 [MoUnix@Mounix.Com mbstring]# pwd /data/Mounix.Com/org/php-5.3.8/ext/mbstring [MoUnix@Mounix.Com mbstring]# 1.在ext/组件/目录下是没有configure文件的,需要使用phpize生成configure文件。 phpize目录如下:/usr/local/php/bin/phpize 2.生成配置信息 ./configure --with-php-config=/usr/local/php/bin/php-config --enable-mbstring 提示:如果对configure支持的参数不了解的可以使用./configure --help查看帮助信息 3.完成编译安装 make && make install 4.查看编译后的PHP扩展文件 [MoUnix@Mounix.Com no-debug-non-zts-20090626]# ls

Jetty源码学习2-应用服务器架构

半世苍凉 提交于 2019-12-19 00:05:03
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 引言 该文主要参考了 玄霄 的分享,感觉他分享的比较细。 应用服务器目录结构 由于需要用到jetty的websocket开发,因此选用的版本是8.1.7,从上图可以看到,主要有下面几个主要目录: 1、bin目录 启动脚本的目录,也包括了start.jar,主要是用来起引导作用的,引导资源加载和服务的启动。 2、etc目录 配置文件的目录,也包括了start.ini,这份配置文件是用来指导start.jar的加载顺序和加载模块的,这个后面会有详解。 3、lib目录 库文件目录,如果需要调试jetty的话,可以下载源码加到eclipse中,客户端远程调试即可,命令: java -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8090 -DEOS_DEBUG=true -jar start.jar 4、webapps目录 应用部署目录 应用服务器启动流程 1、【流程图】 2、【start.jar】 可以看到,最后将server启动起来了,而jetty最核心的即server类,学习jetty的同学不防直接从server类的doStart()或者handle(...)入手。 3、【server.start 】

Jetty源码学习4-基本架构与工作原理

孤者浪人 提交于 2019-12-18 23:43:54
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 引言 Jetty相较于Tomcat更加轻便,虽然架构更加简单,但是看起来可并不轻松。Spring是设计初衷是用来管理应用中的实例Bean,因而是基于Bean的架构;Jetty则更倾向于流程和组件的管理,采用了基于handler的架构。handler的嵌套和链式结构,LifeCycle和doStart、doHandler模式无不印证了这点。 本文主要从基本架构、LifeCycle结构、Handler体系结构、Jetty启动过程、接受并处理请求的流程和与Tomcat的比较来简要介绍下Jetty,细节部分后面的博文会有分析。 Jetty的基本架构 前面的博文谈及应用服务期的架构已经说过了几个基本模块的概念,connection、Threadpool等~拷贝了 许令波 画的图(文中关于基本架构的描述挺详细的,参考了其目录结构哈~不过对于有些知识点有自己的看法,因此总结该文): 该博文中谈到“ Jetty 中还有一些可有可无的组件,我们可以在它上做扩展。如 JMX,我们可以定义一些 Mbean 把它加到 Server 中,当 Server 启动的时候,这些 Bean 就会一起工作。 ”我的理解是,Jetty中的JMX是提供给server的Container,使得注册到server的Handler同时注册到JMX上

windows Socket 通信模型

怎甘沉沦 提交于 2019-12-15 20:27:17
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 在windows平台Socket通信中,IO有 阻塞和、阻塞 两种模式,并提供了**选择(Select)、异步选择(WSAAsyncSelect)、事件选择(WSAEventSelect)、重叠I/O(Overlapped I/O)和完成端口(Completion Port)**共五种Socket模型。 阻塞模式 :执行I/O操作完成前会一直进行等待,不会将控制权交给程序。套接字默认为阻塞模式。可以通过多线程技术进行处理。 非阻塞模式 :执行I/O操作时,Winsock函数会返回并交出控制权。这种模式使用起来比较复杂,因为函数在没有运行完成就进行返回,会不断地返回 WSAEWOULDBLOCK错误。 五种Soceket模型,具体的实现细节和步骤请浏览 Socket模型详解(转) 来源: oschina 链接: https://my.oschina.net/u/221120/blog/650392

android中访问本机服务器的方法

南笙酒味 提交于 2019-12-10 08:15:59
我们在android的程序中要访问本机服务器里的资源,是不能通过localhost或者127.0.0.1的方法来访问的,不然会报错。 问题是这样的,android模拟器(simulator)把它自己作为了localhost,也就是说代码中使用localhost或者127.0.0.1来访问,都是访问模拟器自己!这是不行的! 我们访问本机有两种方式: 1. 使用android内置的IP 10.0.2.2 , 10.0.2.2 是模拟器设置的特定ip,是你的电脑的别名,在模拟器上用10.0.2.2访问你的电脑本机 2.ipconfig来查自己的ip地址。(因为我是使用的无线路由器,所以这个方法查的也只是路由器分配的ip)。 我由于不知道,被这个错纠结了两天...希望大家看了不会再步入我的歧途.. 来源: oschina 链接: https://my.oschina.net/u/920442/blog/108480