手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆
浏览模式: 标准 | 列表Tag:转载

你知道你为什么还没有好工作吗?

这是一篇很长的文章了。。。当然不是我写的。我也写不出这样的文章,毕竟我也在迷惘,为什么我还没有好工作。呵呵,这当然是与我的能力有关,可更重要的,我把自己的位置放正了吗?

本文是我仅有的转载回来没有全部看完的文章之一。因为,它太长了,不过,我还是尽量把一些标题进行加粗,不然,每一位看的人都找不到重点,或者说一眼望去就没有看的兴趣了。

。。。。。。

» 阅读全文

Tags: 工作, 思考, 转载

[转载]使用IIS 7.0 PowerShell 创建web站点,Web应用,虚拟路径和应用程序池

在博客园代震军BLOG 上,他翻译了:使用IIS 7.0 PowerShell 创建web站点,Web应用,虚拟路径和应用程序池,因为可能会在以后使用windows服务器,所以相对比较关心一下,也就复制了一份做为资料。

原文网址:http://www.cnblogs.com/daizhj/archive/2008/12/22/1352019.html
作者:代震军(我看原文最后还有个人信息,也一并转载,省得说我复制部份,呵呵)

原文如下:

      原文链接:Creating Web-Sites, Web Applications, Virtual Directories and Application Pools

      在本文中您将学会如何去创建WEB站点,Web Applications, 虚拟目录和应用程序池.

介绍

      IIS PowerShell 名空间包括诸如: Web-Sites, Apps, Virtual Directories 和 Application Pools. 

使用内置的PowerShell cmdlets可以很容易创建一个名空间项和管理该项.

创建Web站点

      如果您熟悉PowerShell 的话,就会知道在各种PowerShell 名空间下New-Item cmdlet 通常被用于创建

新项。 举个例子,当前命令 "New-Item c:\TestDirectory" 会创建一个新的文件夹 (尽管多数人使用New-Item

的别名命令 "MD" 或 "MKDIR" ). 在IIS 7.0 PowerShell 名空间下,New-Item 也常用于创建新的Web站点.

参数

      在创建一个文件系统路径时,您需要指定一个路径名称. 不巧的是当前创建WEB站点时这是不够的. 除了像

文件系统路径这样的参数之外,还需要network bindings. 下面的命令用于创建一个新的WEB站点并使用dir命令

进行显示:

 

PS IIS:\Sites> New-Item iis:\Sites\TestSite -bindings @{protocol="http";bindingInformation=":80:TestSite"-physicalPath c:\test

PS IIS:\Sites
> dir

Name             ID   State      Physical Path                  Bindings
----             --   -----      -------------                  --------
Default Web Site 1    Started    f:\inetpub\wwwroot             http *:80:
TestSite         
2    Started    c:\test                        http :80:TestSite 

 

     这里直接使用了 -physicalPath 参数. 然而您可能会问: -bindings 看起来咋这么复杂?.

     在构造时通常使用hashtable (在 这里 了解更多PowerShell hash tables信息). hash table 中的键值对表示一个

设置集合,该集合在IIS站点bindings section中会反射出相关属性:

 

<bindings>
        
<binding protocol="http" bindingInformation=":80:TestSite" />
</bindings> 

 

      现在我们找出了一个使用hash table的原因: IIS 配置是可以使用属性进行扩展的。 (查看 这里 了解更多信息) . 您

可以想像一下使用其它属性扩展 <binding> 元素节点.  hash table 的键值对提供了这种弹性.

      坦白说,该语法有一点复杂. 我们正在考虑在Tech Preview中封装一些典型任务:比如创建站点的方法或脚本。

删除站点

      下面是删除刚创建的站点.

PS IIS:\ >Remove-Item IIS:\Sites\TestSite 

创建Web Applications

    创建Web Applications 要比创建站点要容易. 下面: 

PS IIS:\> New-Item 'IIS:\Sites\Default Web Site\DemoApp' -physicalPath c:\test -type Application 
 

Name                     ApplicationPool          EnabledProtocols         PhysicalPath
----                     ---------------          ----------------         ------------
DemoApp                  DefaultAppPool           http                     c:\test 

 

     您仅需指定的一个参数是 type (-type) ,因为在一个站点下,您可能要创建一个Applications 或一个虚拟路径.

通过指定 -type 参数,就会告之 IIS Provider 要创建一个application.

 

     要删除这个 application 的话,也可以使用Remove-Item(见上面删除站点).  

创建虚拟目录

      要创建虚拟目录,您也要使用New-Item cmdlet. 下面会在指定站点(Default Web Site)下创建两个虚拟目录。

一个位于站点下,一个位于刚创建的 Web Application (DemoApp)下面.

 

 

PS IIS:\> New-Item 'IIS:\Sites\Default Web Site\DemoVirtualDir1' -type VirtualDirectory -physicalPath c:\test\virtualDirectory1

Name                                              PhysicalPath
----                                              ------------
DemoVirtualDir1                                   c:\test\virtualDirectory1


PS IIS:\
> New-Item 'IIS:\Sites\Default Web Site\DemoApp\DemoVirtualDir2' -type VirtualDirectory -physicalPath c:\test\virtualDirectory2

Name                                              PhysicalPath
----                                              ------------
DemoVirtualDir2                                   c:\test\virtualDirectory2

 

创建应用程序池

 

      创建应用程序池更简单. 仅需指定一个名称即可.

PS IIS:\> new-item AppPools\DemoAppPool

Name                     State
----                     -----
DemoAppPool              {}

      简单吧,不是吗? 现在让我们将这些知识点连起来做一个完整的方案.

将所有知识点连在一起

    在这个方案中,我们将执行下面这些步骤:

  1. 创建一系列的文件系统路径用于绑定站点, web applications 和虚拟文件。
  2. 向新创建的目录下拷贝一些简单的web内容。
  3. 创建一个新的应用程序池。
  4. 创建一个新的站点,一个新的 application 以及两个虚拟目录并将其绑到新创建的应用程序池上。
  5. 使用浏览器请求(访问这些内容)。

步骤 1: 创建目录

   我们使用 New-Item cmdlet 来创建新的文件系统目录. 执行下面命令 (如不想指定-type 参数的话,可使用'md'):

New-Item C:\DemoSite -type Directory

New
-Item C:\DemoSite\DemoApp -type Directory

New
-Item C:\DemoSite\DemoVirtualDir1 -type Directory

New
-Item C:\DemoSite\DemoVirtualDir2 -type Directory 

 

步骤 2: 拷贝内容

      现在向这些目录中写入一些 html 内容(文件):

Set-Content C:\DemoSite\Default.htm "DemoSite Default Page"

Set
-Content C:\DemoSite\DemoApp\Default.htm "DemoSite\DemoApp Default Page"

Set
-Content C:\DemoSite\DemoVirtualDir1\Default.htm "DemoSite\DemoVirtualDir1 Default Page"

Set
-Content C:\DemoSite\DemoVirtualDir2\Default.htm "DemoSite\DemoApp\DemoVirtualDir2 Default Page"

 

 

步骤 3: 创建新的应用程序池

     为站点创建一个新的应用程序池 'DemoAppPool' (如之前的例子中您也创建的话,请先删除它).  

New-Item IIS:\AppPools\DemoAppPool

Step 4: 创建新的站点, Web Applications 和虚拟目录并绑定到应用程序池上

     这里简化一下,我们创建 DemoSite, DemoApp 和两个虚拟目录:

      DemoVirtualDir1 绑定到DemoSite 下

      DemoVirtualDir2 绑定到DemoApp 下

     我们将DemoSite 和 DemoApp 绑定到之前创建的 DemoAppPool 上. 为了不与'Default Web Site' 冲突,

这里DemoSite 的端口设置为 8080: 

New-Item IIS:\Sites\DemoSite -physicalPath C:\DemoSite -bindings @{protocol="http";bindingInformation=":8080:"}

Set
-ItemProperty IIS:\Sites\DemoSite -name applicationPool -value DemoAppPool

New
-Item IIS:\Sites\DemoSite\DemoApp -physicalPath C:\DemoSite\DemoApp -type Application

Set
-ItemProperty IIS:\sites\DemoSite\DemoApp -name applicationPool -value DemoAppPool

New
-Item IIS:\Sites\DemoSite\DemoVirtualDir1 -physicalPath C:\DemoSite\DemoVirtualDir1 -type VirtualDirectory

New
-Item IIS:\Sites\DemoSite\DemoApp\DemoVirtualDir2 -physicalPath C:\DemoSite\DemoVirtualDir2 -type VirtualDirectory

 

     好,下面就要请求这些web 内容了。

步骤 5: 请求Web 内容

     当然,您可以打开浏览器并敲入地址 http://localhost:8080/ ,以及其它链接(上面已创建)。但本文是PowerShell

的walkthrough 所以我们使用 .NET WebClient classes 来实现这个请求:

 

$webclient = New-Object Net.WebClient

$webclient.DownloadString("http://localhost:8080/");

$webclient.DownloadString("http://localhost:8080/DemoApp");

$webclient.DownloadString("http://localhost:8080/DemoVirtualDir1");

$webclient.DownloadString("http://localhost:8080/DemoApp/DemoVirtualDir2");

If you feeling adventurous you can also use Internet Explorer object itself:

$ie = new-object -com InternetExplorer.Application

$ie.Visible = $true

$ie.Navigate(http://localhost:8080/);

 

总结

     本文中,您了解了如何使用PowerShell创建WEB站点, Web Applications, 虚拟目录和应用程序池.

除此之外,我们还使用 PowerShell 创建了一个功能(函数)化的完整方案.

 

     译者注: PowerShell Provider for IIS 7.0 (x86) - CTP2下载连接,请点击这里:)

     

     当然除了上面的方式来管理IIS站点之外,还可以使用Microsoft.Web.Administration(该dll位于"Windows\

System32\inetsrv目录下)。下面的PS脚本就是实现指量创建,删除等站点操作功能的:

 

function Setup-IIS
{
    
param([int]$NumSites)
    
for($i=0 ; $i -lt $NumSites ;  $i++)
    {
        
$Appfolder = "c:\inetpub\webroot\Site$i"
        
if (-not (test-path $Appfolder))
        {
            md 
$AppFolder -force | out-null
            
$defaultHTM = "$Appfolder\default.htm"
            echo 
"This is site $i" | out-file $defaultHTM
        }
    }
}
function Cleanup-IIS
{
    
param([int]$NumSites)
    [System.Reflection.Assembly]
::LoadWithPartialName("Microsoft.Web.Administration"

    
$mgr = new-object Microsoft.Web.Administration.serverManager 

    
for($i=0 ; $i -lt $NumSites ;  $i++)
    {
        
$AppPoolName= "AppPool_$i"
        
$SiteName = "WebSite_$i"
        
$Appfolder = "c:\inetpub\webroot\Site$i"
        
$mgr.Sites.Remove($mgr.Sites[$SiteName])
        
$mgr.ApplicationPools.Remove($mgr.ApplicationPools[$AppPoolName])
        
if (test-path $Appfolder)
        {
            rd 
$Appfolder -recurse
        }
    }
    
$mgr.CommitChanges()


function Makewebs-IIS
{
    
param([int]$NumSites

    
$start = get-date
    [System.Reflection.Assembly]
::LoadWithPartialName("Microsoft.Web.Administration"| out-null 

    
$mgr = new-object Microsoft.Web.Administration.serverManager 

    
for($i=0 ; $i -lt $NumSites ;  $i++)
    {
        
$AppPoolName= "AppPool_$i"
        
$SiteName = "WebSite_$i"
        
$portNumber = 8000 + $i
        
$mgr.ApplicationPools.Add($AppPoolName| out-null
        
$Appfolder = "c:\inetpub\webroot\Site$i" 

        
$site = $mgr.Sites.Add($SiteName,$Appfolder,$portNumber)
        
$site.ServerAutoStart = $true 

        
$app = $site.Applications[0]
        
$app.ApplicationPoolName = $AppPoolName
        
#$site.Bindings.Add("*:$portNumber:", "http") | out-null            
    }
    
$mgr.CommitChanges() 

    
$duration = [DateTime]::Now - $start
    write
-host "Total seconds: " + $duration.TotalSeconds.Tostring()
}

 

     我们只要以“管理员身份”运行Powershell,并在命令行下输入如下(以创建站点为例)代码:   

>Makewebs-IIS 10

 

     这样就会批量创建10web站点了:)

     好了,今天的内容就先到这里了。


     原文链接:http://www.cnblogs.com/daizhj/archive/2008/12/10/1352019.html

     作者: daizhj, 代震军

     Tags: iis7,powershell,powershell provider

     网址: http://daizhj.cnblogs.com/

————EOF————

由于PowerShell将会成为未来CMD的替代品,对于它,有很多人都在关注着,也曾经下载了一个关于PowerShell的介绍和简单使用 的PDF,(在家里),等有空的时候也一并上传

 

Tags: iis, power shell, 翻译, 转载

如何更好的提高博客性能[转载+自己的理解分析]

本文是从网上COPY而来,本文原始网址为:http://www.wlue.cn/html/200863124143.html,属于SEO一类的文章,对于文章中的一些见解,如果我有不同看法,我会以不同颜色的文字标出。
请看全文:


      对于服务器租用者来说,要想在硬件环境、网络环境等来改善自身网站性能,受客观因素的影响可能会有比较大的难度。因此,只能退而求其次,在程序上狠下功 夫。对于独立博客站长来说,使用的博客程序一般都是比较成熟的发行版的程序,这些程序为了适用的广泛性往往在代码中留出了很大的改进余地,因此,我们可以 在这上面下一些功夫。

  提高博客性能方法一: 合并JavaScript文件。

     无论是在PJBlog还是其它的博客程序中,都使用了大量的外部JavaScript文件,要知道,引入一个外部文件都要 发送一个HTTP请求,而在所有影响页面响应速度的因素中,HTTP请求是最关键的一个,因此把所有的JavaScrip文件合并到一个 javascript.js的文件中是一个很好的做法。不过,你要注意不同的JavaScript文件中使用了不同的变量和函数名称,你要保证它们合并之 后还能正常工作。在某些情况下,你也可以有两个独立的JavaScript文件;

  提高博客性能方法二:精减你的JavaScript文件。

      合并 JavaScript文件是为了减少HTTP请求次数,但是基本上不会在体积上有所改观,所以你还需要精简掉JavaScript文件中那些没有用的东 西,比如注释、换行、空白等,这大概会使你的程序缩小20%~30%的空间。你可以使用ESC 1.14对文件进行压缩,它的压缩率高达60%以上,对于减少响应大小、提高响应速度来说大有裨益;

  提高博客性能方法三:合并CSS文件与精减CSS文件。

      和处理JavaScript文件一样,把所有的CSS文件合并到一个style.css中,CSS比 JavaScript 好处理的一点就是它冲突的机率较小,即便有冲突也不会是大问题。精简就去掉多余的样式化的格式,把所有的CSS规则都放到一行中。这款叫作Minify的 程序不但可以压缩CSS还可以压缩JavaScript和PHP程序。不过这里要提醒的是,如果你要合并和精简文件一定要保留原来的文件以便以后程序更改 时使用。 [在这里推荐一个在线更新CSS文件的地址:http://www.cleancss.com/]

  提高博客性能方法四: 使用CSS Spirites。

       所谓的CSS Spirites就是所有CSS中用来做背景图像的图片文件都放到一个文件中。在PJBlog以及其它博客程序的皮肤中,作者很多都没有使用CSS Spirites,这样造成每出现一次background规则都要发送一次HTTP请求,而如果使用CSS Spirites则只需要一次HTTP请求,节省不必要的开支。 [说实话,这里有点痛苦,不是每个做网站的人都懂得这点,但即使懂得这点,如果改起来,对原有的CSS文件的改动也非常大,只有建议那些做模版的朋友们在做模版的时候能够考虑这点就好了。]

  提高博客性能方法五: 使用缓存。

       对于静态内容(如Flash、 JavaScript、CSS、Image)通过加上Expires头或者Cache-Control来把它们缓存到客户端,这样用户在下次访问的时候就 可以不用下载这样内容了,这样减少了HTTP请求的次数又减少了下载文件的大小。在IIS中设置文件头很简单,在你要设置的文件或者文件夹上右键点击—— 属性——HTTP头,然后勾中“启用文件过期”,设定过期时间,可以是一年或者十年等,还可以指定某个未来的时间,如2010年等。不过你一但设置了 HTTP头,如果你要对文件作出修改你需为修改过的文件重新起一个名字。 [不知道如何在文件中设置过期时间,PHP还能通过设置头来搞定,可是CSS、JS呢?]

  提高博客性能方法六: 启用Gzip压缩。

       Gzip压缩针对 JavaScript、CSS等内容一种压缩技术,它能大大减少文件的体积提高传输速率,精简JavaScript和CSS只是去除不必要的内容,而 Gzip压缩则是将文件在服务器端打包、在客户端解包的过程。Apache和IIS6.0都内置了Gzip技术,现代浏览器都支持Gzip技术(即使不支 持它也会告诉服务器不要打包),因此可以放心使用。在IIS6.0中你需要简单配置之后才能使用Gzip技术,而在Apache 1.3中要启用mod_zip,在Apache 2.x使用moflate。Gzip大概可以节省70%的传输空间,目前互联网中有90%浏览器资料支持Gzip传输。

  提高博客性能方法七: 把JavaSCript 文件放在文档的最末尾,而把CSS文件放在之间。

       CSS放在之间会加快文档下载。在Yahoo!的研 究中发现,如果你把一个CSS文件置于文档内部,当浏览器加载到这个样式表时会终止所有文件的下载而单独下载它(一般的下载浏览器使用并行下载模式),这 是因为浏览器在下载到一个CSS文件后都要根据CSS内的规则重绘屏幕,这还会导致用户出现白屏。所以要把你所有的样式文件都放在最开始。而把 JavaScript文件放于末尾下载,一方面可以使用户首先获得文档内容,另一方面JavaScript文件的下载和其它文件不同,它不能和其它文件同 时下载,所有的JavaScript文件只有单独一个一个下载。所以在不影响使用的情况下,JavaScript文件要放在末尾加载。 [关于这点,我确实没有什么话好讲的,JS不同于其他的文件,如果网页中有JS需要在加载的时候运行,你能怎么办?说实话,如果不是用JS框架,这一点几乎不能实现,怎么可能把JS放在文件结尾呢?
CSS放在之间,我想指的应该是放在head之间吧]

  提高博客性能方法八: CSS和JavaScript文档要成为独立的外部文件。

       这是因为浏览器加载使用的是并行模式,一次可以加载多个内容,把CSS和JavaScript作为单独文件不但可以减小HTML文档的大小,而可以加快下载效率。 [关于这点,在yslow的介绍文件里也有说明,意思是如果有可能,请尽量为你的CSS中的图片和JS使用单独的域名,这样,即使出现404,也不会影响当前页面的下载,可以加快浏览速度,而且放到单独的域名里之后,也可以更方便的使用、设置过期时间什么的]

  提高博客性能方法九: 使用少量的域名。

      一般来说一个页面引用的文件(图片、Flash、CSS、JavaScript)不能多于四个主机,因为每多出一个域名就意味着多一个 DNS的查找,在浏览器查找DNS信息的过程中,浏览器由于不知道要访问的IP地址是什么,所以它什么都不做,只是在等待,所以DNS查找的次数越少,响 应速度就越快。 [这一点,我在yslow里面看到了,同样说明,如果我们要放广告的话,尽量使用同一个网站的广告,这样也能避免DNS查找花费太大的时间]

  提高博客性能方法十: 避免CSS中使用Expression。

      虽然功能很强大,但是它的计算频率太高,影响网站的整体性能。对于一个CSS Expression来说,即使你滚动一下屏幕它都要重新计算一次,甚至你移到一次鼠标它都要重新计算,所有一个CSS Express在页面中计算10000次是很容易的事情。 

       以上就如何提高博客性能方法提出的十条建议


说的虽然是提高博客性能,但几乎对每个网站的优化都有一定的好处。如果需要更详细的介绍,我想,应该是看那篇关于网页设计的14条军规(现在改为20条了),也可以通过yslow来进行检测,看看你的网站被打分多少。yslow的检测是根据以前的14条军规而进行检测的,现在还没有更新的20条。
所谓的军规也是yahoo那帮子人提出来的,现在也成为了一种规范,yslow就是在这个基础上进行开发,不过yslow是FF的插件哦,IE下面有httpwatch插件,可以清楚的看到网站的每一个页面加载花费了多少时间,在哪个文件或者图片上所花费的时间最长,那么就可以有针对性的进行更新了。

Tags: 性能, 分析, 博客, 转载