All posts by 龙生

RijndaelManaged类

构造函数 名称 说明 System_CAPS_pubmethod RijndaelManaged() 初始化 RijndaelManaged 类的新实例。 属性 名称 说明 System_CAPS_pubproperty BlockSize 获取或设置加密操作的块大小(以位为单位)。(继承自 SymmetricAlgorithm。) System_CAPS_pubproperty FeedbackSize 获取或设置加密操作的反馈大小(以位为单位)。(继承自 SymmetricAlgorithm。) System_CAPS_pubproperty IV 获取或设置对称算法的初始化向量 (IV)。(继承自 SymmetricAlgorithm。) System_CAPS_pubproperty Key 获取或设置对称算法的密钥。(继承自 SymmetricAlgorithm。) System_CAPS_pubproperty KeySize 获取或设置对称算法所用密钥的大小(以位为单位)。(继承自 SymmetricAlgorithm。) System_CAPS_pubproperty LegalBlockSizes 获取对称算法支持的块大小(以位为单位)。(继承自 SymmetricAlgorithm。) System_CAPS_pubproperty LegalKeySizes 获取对称算法支持的密钥大小(以位为单位)。(继承自 SymmetricAlgorithm。) System_CAPS_pubproperty Mode 获取或设置对称算法的运算模式。(继承自 SymmetricAlgorithm。) System_CAPS_pubproperty Padding 获取或设置对称算法中使用的填充模式。(继承自 SymmetricAlgorithm。) 方法 名称 说明 System_CAPS_pubmethod Clear() 释放 SymmetricAlgorithm 类使用的所有资源。(继承自 SymmetricAlgorithm。) System_CAPS_pubmethod CreateDecryptor() 用当前的 Key 属性和初始化向量 (IV) 创建对称解密器对象。(继承自 SymmetricAlgorithm。) System_CAPS_pubmethod CreateDecryptor(Byte[], Byte[]) 创建对称 Rijndael 解密器对象具有指定 Key 和初始化向量 (IV)。(覆盖SymmetricAlgorithm.CreateDecryptor(Byte[], Byte[])。) System_CAPS_pubmethod CreateEncryptor() 用当前的 Key 属性和初始化向量 (IV) 创建对称加密器对象。(继承自 SymmetricAlgorithm。) System_CAPS_pubmethod CreateEncryptor(Byte[], Byte[]) 创建对称 Rijndael 加密器对象具有指定 Key 和初始化向量 […]

龙生   15 May 2017
View Details

nginx优化缓冲缓存

反向代理的一个问题是代理大量用户时会增加服务器进程的性能冲击影响。在大多数情况下,可以很大程度上能通过利用Nginx的缓冲和缓存功能减轻。 当代理到另一台服务器,两个不同的连接速度会影响客户的体验: 从客户机到Nginx代理的连接。 从Nginx代理到后端服务器的连接。 Nginx具有优化这些连接调整其行为的能力。 如果没有缓冲,数据从代理的服务器发送并立即开始被发送到客户。如果假定客户端很快,缓冲可以关闭而尽快使数据到客户端,有了缓冲,Nginx代理将暂时存储后端的响应,然后按需供给数据给客户端。如果客户端是缓慢的,允许Nginx服务器关闭到后端的连接。然后,它可以处理数据分配到客户端,以任何可能的速度。 Nginx默认有缓冲设计,因为客户端往往有很大的不同的连接速度。我们可以用以下指令调节缓冲行为。可以在HTTP,server或location位置来设置。重要的是要记住,大小size指令是针对每个请求配置的,所以增加超出你需求会影响你的性能,如果这时有许多客户端请求: proxy_buffering:该指令控制缓冲是否启用。默认情况下,它的值是“on”。 proxy_buffers:该指令控制代理响应缓冲区的数量(第一个参数)和大小(第二个参数)。默认配置是8个缓冲区大小等于一个内存页(4K或者8K)。增加缓冲区的数目可以让你缓冲更多信息。 proxy_buffer_size:从后端服务器的响应头缓冲区大小,它包含headers,和其他部分响应是分开的。该指令设置响应部分的缓冲区大小。默认情况下,它和proxy_buffers是相同的尺寸,但因为这是用于头信息,这通常可以设置为一个较低的值。 proxy_busy_buffers_size:此指令设置标注“client-ready”缓冲区的最大尺寸。而客户端可以一次读取来自一个缓冲区的数据,缓冲被放置在队列中,批量发送到客户端。此指令控制允许是在这种状态下的缓冲空间的大小。 proxy_max_temp_file_size:这是每个请求能用磁盘上临时文件最大大小。这些当上游响应太大不能装配到缓冲区时被创建。 proxy_temp_file_write_size:这是当被代理服务器的响应过大时Nginx一次性写入临时文件的数据量。 proxy_temp_path:当上游服务器的响应过大不能存储到配置的缓冲区域时,Nginx存储临时文件硬盘路径。 正如你所看到的,Nginx提供了相当多的不同的指令来调整缓冲行为。大多数时候,你不必担心太多,但它对于调整一些值可能是有用的。可能最有用的调整是proxy_buffers和proxy_buffer_size指令。 一个例子:、 proxy_busy_buffers_size 8k; proxy_max_temp_file_size 2048m; proxy_temp_file_write_size 32k; proxy_pass http://example.com; 配置代理服务缓存来减少响应时间 尽管缓冲可以帮助释放后端服务器以处理更多的请求,Nginx还提供了一种方法来缓存从后端服务器的内容,对于许多请求无需连接到上游。 配置代理缓存 要设置缓存用于代理内容,我们可以使用proxy_cache_path指令。这将创建区域保存来自被代理服务器返回的数据。该proxy_cache_path指令必须在HTTP上下文部分进行设置。 在下面的例子中,我们将配置一些相关的指令来建立我们的缓存系统。 # http context proxy_cache_path /var/lib/nginx/cache levels=1:2 keys_zone=backcache:8m max_size=50m; proxy_cache_key $scheme$request_method$host$request_uri$is_args$args ; proxy_cache_valid 200 302 10m; proxy_cache_valid 404 1m; 用proxy_cache_path指令,我们首先应该已经定义在文件系统中希望存储缓存的目录。在这个例子中,我们选择在/var/lib/nginx/cache目录。如果该目录不存在,你可以用正确的权限和所有权创建它: sudo mkdir -p /var/lib/nginx/cache sudo chown www-data /var/lib/nginx/cache sudo chmod 700 /var/lib/nginx/cache levels=参数指定缓存将如何组织。 Nginx将通过散列键(下方配置)的值来创建一个缓存键。我们选择了上述的levels决定了单个字符目录(这是散列值的最后一个字符)配有两个字符的子目录(下两个字符取自散列值的末尾)将被创建。你通常不必对这个细节关注,但它可以帮助Nginx快速找到相关的值。 keys_zone=参数定义缓存区域的名字,我们称之为backcache。这也是我们定义多少元数据存储的地方。在这个例子里,我们是存储8 MB的key。对于每兆字节,Nginx可存储8000左右的条目。MAX_SIZE参数设置实际缓存数据的最大尺寸。 我们使用上面的另一个指令是proxy_cache_key。这个设置将设置用于存储缓存值的键。此键用于检查是否一个请求可以从高速缓存提供服务。我们将它设置成方案(http或https),HTTP请求方法,以及被请求的主机和URI的组合。 proxy_cache_valid指令可以被指定多次。它依赖于状态代码值使我们能够配置多长时间存储。在我们的例子中,我们对于后端返回200和302存储10分钟,404响应的一分钟过期。 现在,我们已经配置了缓存区,但我们仍然需要告诉Nginx什么时候使用缓存。 在我们代理到后端的location位置,我们可以配置使用这个缓存: # server context location /proxy-me { proxy_cache backcache; proxy_cache_bypass $http_cache_control; add_header X-Proxy-Cache $upstream_cache_status; proxy_pass http://backend; } 使用proxy_cache指令,就可以指定该backcache缓存区被用于这个位置。 Nginx会在这里检查传递给后端有效的条目。 上述proxy_cache_bypass指令被设置为$ http_cache_control变量。这将包含一个指示器,用以指示该客户端是否被明确地请求一个最新的,非缓存版本。设置此指令允许Nginx正确处理这些类型的客户端请求。无需进行进一步的配置。 […]

龙生   15 May 2017
View Details

GitHub: Permission denied (publickey). 问题解决方法

之前一直用https来push到github上, 今天试了下用ssh, 把origin改为ssh地址后, 用git push -u origin master出现错误: [plain] view plain copy Permission denied (publickey). fatal: The remote end hung up unexpectedly 上网搜了一下, 原因是 You ve probably not added a public key to your SSH keys. 解决方法如下: 用下面的命令生成public key $ ssh-keygen -t rsa 复制 public key (id_rsa.pub) 到你账户的 list of SSH keys, 再重新push. 参考: http://stackoverflow.com/questions/14967621/fatal-the-remote-end-hung-up-unexpectedly http://stackoverflow.com/questions/15240815/git-fatal-the-remote-end-hung-up-unexpectedly from:http://blog.csdn.net/xzz_hust/article/details/8969090

龙生   15 May 2017
View Details

MySQL 数据库操作,将查询结果插入新表

做项目,需要测试数据,而现成的其他表有类似数据,为了方便,就将想将查询结果直接放到新表里。具体操作如下: INSERT INTO TableA(c1,c2,c3) SELECT TableB.c1,TableB.c2,TableB.c3 FROM TableB 参考:http://wenda.so.com/q/1372470880061763 如果表存在: insert into tab1 select * from tab2; 如果表不存在: create table tab1 as select * from tab2; from:http://blog.csdn.net/chark_leo/article/details/39525633

龙生   15 May 2017
View Details

在Linux中使用Docker容器部署ASP.NET 5应用程序

本文的作者是微软的Azure平台的工程师,去年年底微软就宣布开源.Net核心运行时,并与Mono合作以推进.Net在Linux等非Windows 平台的移植。同时,微软也宣布将在新一代的Windows服务器上支持Docker,支持容器化部署,这让我们看到了微软拥抱开源的决心。本文介绍了如何 在Linux中使用Docker容器部署基于ASP.NET 5的应用程序。 作为ASP.NET 5跨平台部署实现的一部分,我们正在为简化ASP.NET应用部署、兼容Linux或者Mac OS X等操作系统运行而努力工作。最近,我们发布了首个ASP.NET的Docker镜像: ASP.NET 5预览版Docker镜像。 Docker是一个开源的项目,目的是在Linux操作系统下轻松的以沙箱 的方式运行应用程序。当你下载了ASP.NET 5的Docker镜像,你就有了一个能够运行ASP.NET 5应用程序的Linux环境;现在你所要做的仅仅是在这个镜像中添加你的应用程序,然后启动一个容器,运行它,发布它。 本教程中我们为你展示如何在微软Azure云上利用Docker在Linux操作系统中部署一个使用ASP.NET 5预览版编写的简单的Web应用程序。这个教程中的例子可以在Linux、Mac OS X或者所有能装Docker客户端的操作系统下运行(如果喜欢,你也可以远程登录Linux虚拟机运行)。当然,当你安装了Docker的Windows 客户端,你就能在Windows上运行本文中的例子。以后,如果Window Server支持容器化部署了,你就能使用Docker在Windows Server中来管理Windows Server的容器了。 注:文中所有的演示流程与代码都是基于ASP.NET 5(vNext)预览版的,在正式发布后运行的方式可能会有所不同。所以,到时候如果读者需要知道如何使用Docker部署ASP.NET 5的应用程序,还请自行登陆ASP.NET 5的 Docker Hub页面或者 GitHub仓库去参看最新的部署文档。 第一步:创建运行环境 现在Docker还只能在Linux上运行,所以你必须找一台Linux机器或者装了Linux虚拟机的机器来运行Docker;你在 这里可以找到Docker的安装步骤或者通过参考这篇文章 Getting Started with Docker On Azure(在Azure云端安装Docker的起步教程)。当然你可以从Azure云获取一个安装好Docker的Linux虚拟运行环境。 这个教程假设你已经在Azure上有了安装好Docker的Linux虚拟机。如果你拥有其它类似的运行环境,那这个教程也是可以使用的。 第二步:为你的ASP.NET 5应用创建一个Docker镜像 为了能让ASP.NET应用程序在云端部署,你需要一个Docker镜像来承载你的应用。 Docker镜像的文件系统是层叠式的(AUFS文件系统),可以这样形象的理解:你的应用程序只是“基础镜像”上层新加的一个层而已(译者注:就像盖房子一样,新增的楼层是基于它下面的楼层建立起来的),而在我们的例子中“基础镜像”为 microsoft/aspnet(译 者注:这是一个Docker镜像的名称,这个镜像存在于Docker Hub中)。在Docker中镜像的层级是增量叠加起来的(译者注:这点跟Git原理一样),Docker保存了每个层之间的差异,所以当我们用 Docker部署应用时,提交的更新不会包含Linux发行版内核或者ASP.NET的运行时,因为这些都已经存在于“基础镜像”中了,你只会提交基于此 “基础镜像”构建的应用程序本身,所以Docker的这种差异化提交、部署机制能够确保应用程序以最快速、最小化的增量方式进行部署,为运维带来极大的便 利。 如何创建Docker镜像呢?答案是使用:Dockerfile。跟Makefile相似,Dockerfile包含了供Docker用来构建一个镜像的所有步骤。 本教程所用到的ASP.NET源代码可以从GitHub的 aspnet/Home仓库下的 HelloWeb目录提取。首先,使用如下命令将源代码从GitHub上克隆下来:

切换到aspnet-Home的sample目录下:

完成后目录结构应该如下所示:

然后我们在此目录下创建一个名叫Dockerfile的文件,并输入如下指令:

让我们逐条解释此Dockerfile中命令的含义: 第一行中FROM命令后面的‘microsoft/aspnet’说明我们要下载Docker Hub中名为‘microsoft/aspnet’(此镜像也是ASP.NET在Docker Hub上的官方镜像)的镜像作为我们例子程序的“基础镜像”; COPY命令告诉Docker在构建镜像的时候同时将当前目录(译者注:.表示当前目录)下的所有文件(译者注:Startup.cs、image.jpg与project.json这三个文件)拷贝到容器的/app目录下;紧接着,使用WORKDIR命令告诉Docker将容器启动目录设置为/app目录; RUN [kpm, restore]命令告诉Docker运行kpm restore命令安装ASP.NET相关依赖项,这些都是Docker在第一次运行此容器之前要做的准备工作; EXPOSE 5004命令会告诉Docker正在构建的镜像有个监听5004号端口的服务(可以查看project.json文件确认)(译者注:意思是以此镜像为基础运行的容器需要向外暴露5004号端口); 最后,ENTRYPOINT [k, kestrel]命令说明每次用Docker启动此容器时都会自动执行k kestrel命令,同时通过运行此命令保证容器始终在运行不退出,其实kestrel命令就是启动了ASP.NET 5的服务器,启动此服务器后会启动一个监听5004号端口的进程,处理HTTP连接请求。(译者注:这就是为什么要向外暴露5004号端口的原因。)   第三步:创建镜像 当我们编写完Dockerfile后,当前目录应该是如下结构,Dockerfile和程序源代码在一起:

现在我们来创建此Docker镜像。这个过程非常简单--运行Docker的build命令即可,命令如下:

这条命令运行结束后Docker就生成了一个名为myapp的镜像;同时,你对镜像所做的任何变化都能通过重新运行此命令来生成一个新的镜像。在你的Linux虚拟机或者开发环境中运行docker images命令可以看到我们刚刚创建的myapp镜像了:

你可以看到你的应用镜像以及ASP.NET镜像都存在于你的主机上。 现在我们开始讲如何将ASP.NET应用程序部署到云端。 第四步:运行容器 […]

龙生   15 May 2017
View Details

WINDOWS 2008Server 配置nginx 反向代理服务器

本案例有用过可行 0、先要在域名官网上面配置域名对应的IP地址,然后要在自己路由器上面将80端口映射到要装nginx服务器的IP地址。 1、从官网上面下载nginx1.6.2   WINDOWS版本的。访问地址http://nginx.org/en/download.html 2、解压缩到C盘根目录下面 3、复制C:\nginx\conf\nginx.conf,保存成一个副本 4、编辑nginx.conf,内容如下 #工作进程数,建议设置为CPU的总核数worker_processes  2; #全局错误日志定义类型,日志等级从低到高依次为: #debug | info | notice | warn | error | crit error_log  logs/error.log  info; #记录主进程ID的文件 pid        /nginx/nginx.pid;   #一个进程能打开的文件描述符最大值,理论上该值因该是最多能打开的文件数除以进程数。 #但是由于nginx负载并不是完全均衡的,所以这个值最好等于最多能打开的文件数。 #LINUX系统可以执行 sysctl -a | grep fs.file 可以看到linux文件描述符。 worker_rlimit_nofile 65535;   #连接数上限, 单个进程允许的最大连接数 events {        worker_connections  65535; }   #设定http服务器,利用它的反向代理功能提供负载均衡支持 http { #文件扩展名与文件类型映射表 include       mime.types; #默认文件类型 default_type  application/octet-stream; #日志格式  log_format  main   $remote_addr $remote_user [$time_local] $request                             […]

龙生   15 May 2017
View Details

MySQL各版本的区别

MySQL 的官网下载地址:http://www.mysql.com/downloads/ 在这个下载界面会有几个版本的选择。 1. MySQL Community Server 社区版本,开源免费,但不提供官方技术支持。 2. MySQL Enterprise Edition 企业版本,需付费,可以试用30天。 3. MySQL Cluster 集群版,开源免费。可将几个MySQL Server封装成一个Server。 4. MySQL Cluster CGE 高级集群版,需付费。 5. MySQL Workbench(GUITOOL)一款专为MySQL设计的ER/数据库建模工具。它是著名的数据库设计工具DBDesigner4的继任者。MySQLWorkbench又分为两个版本,分别是社区版(MySQL Workbench OSS)、商用版(MySQL WorkbenchSE)。 MySQL Community Server是开源免费的,这也是我们通常用的MySQL的版本。根据不同的操作系统平台细分为多个版本,下面我们以windows平台为例来说明。 例如下载mysql5.5.19的界面如下: 说明: 我们选择Generally Available(GA)Release 去下载。GA是指软件的通用版本,一般指正式发布的版本。 mysql-5.5.19-win32.msi,windows安装包,msi安装包是用msiexec安装完成的。windows下双击根据向导安装即可,简单方便。 mysql-5.5.19.zip,这个是windows源文件,需要编译。 mysql-5.5.19-win32.zip,这个文件解包后即可使用,是编译好的windows32位MySQL。需要手工配置。 带 "winx64" 的则是对应的64位版本,在64位操作系统下使用。 一般做后台开发,我们就下载mysql-5.5.19-win32.msi。 例如下载mysql5.1.60的界面如下: 说明: 选择Generally Available(GA)Release 去下载。GA 是指软件的通用版本,一般指正式发布的版本。 “essentials” 是指精简版,不包含 embedded server and benchmarksuite,有自动安装程序和配置向导,没有MySQL文档。 “noinstall” 是指非安装的压缩包的。包含 embedded server and benchmarksuite,没有自动安装程序和配置向导,需手动安装配置,有MySQL文档。 mysql-essential-5.1.60-win32.msi 是精简版,如果只需要mysql服务,就选择此版本。 mysql-5.1.60-win32.msi 是完整版,包含安装程序和配置向导,有MySQL文档。 mysql-noinstall-5.1.60-win32.zip是非安装的zip压缩包,没有自动安装程序和配置向导,需手动安装配置,有MySQL文档。 mysql-5.1.60.zip 是用于windows的Mysql源码压缩包 带 "winx64" 的则是对应的64位版本,在64位操作系统下使用。 一般做后台开发,我们就下载mysql-essential-5.1.60-win32.msi 即可。   什么是MySQL企业版(MySQL Enterprise)? MySQL企业版是一个已被证明和值得信赖的平台,这个平台包含了MySQL企业级数据库软件,、监控与咨询服务,以及确保您的业务达到最高水平的可靠性、安全性和实时性的技术支持。 MySQL企业版包括: MySQL企业级服务器,这是全球最流行的开源数据库最可靠、最安全的最新版本。 MySQL企业级系统监控工具,它可以提供监控和自动顾问服务,以此来帮助您消除安全上的隐患、改进复制、优化性能等。 MySQL技术支持,可以使您最棘手的技术问题得到快速解答。 MySQL咨询支持,只有购买了MySQL企业级银质或金质服务的客户才能得到此项支持。MySQL技术支持团队将为您的系统提供针对性的建议,告诉您如何恰当地设计和调整您的MySQL服务器、计划、查询和复制设定,以获得更好的性能。 什么是MySQL社 区版(MySQL Community Server)? MySQL公司一直专注于向开源社区发布全球最流行的开源数据库——MySQL […]

龙生   15 May 2017
View Details

Module ngx_http_proxy_module

Example Configuration Directives proxy_bind proxy_buffer_size proxy_buffering proxy_buffers proxy_busy_buffers_size proxy_cache proxy_cache_bypass proxy_cache_convert_head proxy_cache_key proxy_cache_lock proxy_cache_lock_age proxy_cache_lock_timeout proxy_cache_max_range_offset proxy_cache_methods proxy_cache_min_uses proxy_cache_path proxy_cache_purge proxy_cache_revalidate proxy_cache_use_stale proxy_cache_valid proxy_connect_timeout proxy_cookie_domain proxy_cookie_path proxy_force_ranges proxy_headers_hash_bucket_size proxy_headers_hash_max_size proxy_hide_header proxy_http_version proxy_ignore_client_abort proxy_ignore_headers proxy_intercept_errors proxy_limit_rate proxy_max_temp_file_size proxy_method proxy_next_upstream proxy_next_upstream_timeout proxy_next_upstream_tries proxy_no_cache proxy_pass proxy_pass_header proxy_pass_request_body proxy_pass_request_headers proxy_read_timeout proxy_redirect proxy_request_buffering proxy_send_lowat proxy_send_timeout proxy_set_body proxy_set_header proxy_ssl_certificate proxy_ssl_certificate_key proxy_ssl_ciphers proxy_ssl_crl proxy_ssl_name proxy_ssl_password_file proxy_ssl_server_name proxy_ssl_session_reuse proxy_ssl_protocols proxy_ssl_trusted_certificate proxy_ssl_verify proxy_ssl_verify_depth proxy_store proxy_store_access proxy_temp_file_write_size proxy_temp_path Embedded Variables The ngx_http_proxy_module module allows passing requests to another server.   Example Configuration  

  Directives Syntax: proxy_bind […]

龙生   15 May 2017
View Details

Happy 15th Birthday .NET!

Today marks the 15th anniversary since .NET debuted to the world. On February 13th, 2002, the first version of .NET was released as part of Visual Studio.NET. It seems just like yesterday when Microsoft was building its “Next Generation Windows Services” and unleashed a new level of productivity with Visual Studio.NET. Since the beginning, the .NET platform has allowed developers to quickly build and deploy robust applications, starting with Windows desktop and web server applications in 2002. You got an entire managed framework for building distributed Windows applications, […]

龙生   15 May 2017
View Details

查看binlog文件的2种方式

1.使用show binlog events 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 a.获取binlog文件列表 mysql> show binary logs; +—————————+—————–+ | Log_name         | File_size | +—————————+—————–+ | mysql–bin.000005 |      1288 | | mysql–bin.000006 |       120 | +—————————+—————–+ mysql> b.查看当前正在写入的binlog文件 mysql> show master status\G; *************************** […]

龙生   15 May 2017
View Details
1 249 250 251 414