我一直在使用Analog来分析我们的 Apache Web 服务器的日志。虽然模拟非常强大,但我发现正确设置它以获取所需信息非常乏味。
我的问题是:您知道任何(也许是更“现代”的)工具来分析 Web 服务器日志文件吗?最好这些工具是在 Web 服务器机器本身上运行的工具,在我的情况下是 Debian Linux 系统。
我目前运行一个小型网站,用于托管大量(生成的)静态 HTML。问题是磁盘空间有限,HTML 每周增长 1GB。(文件被分组到目录中,每个文件大约有 500 个文件,总共 10B-100MB。文件压缩得很好 [低于 10%])
理想情况下,我正在寻找一种方法来压缩 HDD 上的所有 HTML 文件,同时仍然能够轻松地为它们提供服务。
在尝试从 .Net 客户端应用程序调用 .asmx Web 服务时,我们偶尔会收到以下错误:
“底层连接已关闭:服务器关闭了预期保持活动状态的连接。无法从传输连接读取数据:远程主机强行关闭了现有连接。”
我所说的零星是指它可能发生零次,每隔几天发生一次,或者对于某些用户来说每天发生六次。它永远不会发生在用户的第一次 Web 服务调用中。并且随后的(通常是相同的)调用将始终在失败后立即工作。失败发生在服务中的各种方法中,通常发生在从请求时间起 15-20 秒(根据日志)之间。
查看特定调用的 IIS 站点日志将显示以下 Windows 错误代码之一:
121:信号量超时时间已过。
1236:网络连接被本地系统中止。
一些额外的环境细节:
在由两台在 Windows Server 2008 操作系统上运行 IIS7 的服务器组成的内部网络 Web 场上运行。在 Windows Server 2003 上运行的由三台服务器组成的较旧的 IIS6 Web 场中运行时不会出现这些问题(我们使用单个 IIS6/2003 实例用于我们的开发和暂存环境,没有任何问题)。编辑:此外,所有这些服务器实例都是 VMWare 虚拟机,不确定这是否是一个惊喜。
Web 服务是一个 .Net 2.0/3.5 编译的 .asmx Web 服务,它有自己的应用程序池(.Net 2.0,集成管道)。仅启用了 Windows 身份验证。
我们在场上有另一个 Web 服务,它使用与主要服务相同的物理路径,唯一的区别是启用了基本身份验证。这用于我们 ERP 系统的一部分。已尝试使用相同和不同的应用程序池 - 对错误没有影响。此站点不像主站点那样经常被访问,并且从未出现过错误。
如前所述,错误只会在从 .Net 客户端调用时发生 - 而不是从其他应用程序调用。客户端应用程序始终为每个请求创建一个新的 Web 服务对象,并将服务凭据设置为 System.Net.CredentialCache.DefaultCredentials。
该应用程序要么在本地部署到客户端,要么在 Citrix 服务器会话中运行。那些在 Citrix 中运行的用户似乎没有遇到这个问题,只有本地部署的客户端才会遇到这个问题。Citrix 服务器和 Web 场位于相同的物理位置,并且位于相同的 IP 范围 (10.67.xx.xx) 中。遇到错误的本地部署客户端位于其他地方 (10.105.xx.xx, 10.31.xx.xx)。 …
我们计划升级我们的硬件,同时我们计划从一个全新的操作系统重新安装我们所有的网络服务器。目前,我们的 Web 服务器在专用服务器上运行 CentOS 4.7。我们正在使用 Apache、Mysql、PHP、SVN、FTP 以及通过 SSH 管理的 Web 服务器所需的所有工具。
我们计划为新的 Web 服务器使用云服务器。我不知道为这个新服务器采用哪个 Linux 发行版。我应该继续使用 Centos 并只使用最新的 5.4 版本,还是应该切换到诸如 Debian 基础发行版(Ubuntu 服务器)之类的其他发行版?
我不喜欢 CentOS 的一点是在 Yum 上没有最新版本的 PHP 和 Apache。这使得我们的网络服务器更难更新最新技术......
谢谢你的帮助!
如果我的 web 服务器上的 asp.net 站点在一段时间内没有被访问,它们的加载速度似乎很慢。
如果 ASP.NET 处理器在一段时间内未使用,它是否会进入挂起或睡眠模式?
对我来说,通过配置 ASP.NET 或编写一些程序来经常访问我的站点以使其保持清醒来解决这个问题是否更好?
windows-server-2003 windows-server-2008 iis-7 asp.net web-server
每次我执行这个命令
invoke-command -computername REMOTEPC -scriptblock { import-module WebAdministration; new-item "$env:systemdrive\inetpub\testsite" -type directory; New-WebSite -Name TestSite -Port 81 -PhysicalPath "$env:systemdrive\inetpub\testsite" }
Run Code Online (Sandbox Code Playgroud)
我收到以下错误
Invalid class string (Exception from HRESULT: 0x800401F3 (CO_E_CLASSSTRING))
+ CategoryInfo : NotSpecified: (:) [Get-ChildItem], COMException
+ FullyQualifiedErrorId : System.Runtime.InteropServices.COMException,Microsoft.PowerShell.Commands.GetChildItemCommand
Run Code Online (Sandbox Code Playgroud)
据我所知,该网站已成功创建。
以下命令在枚举 testsite 时给出相同的错误
Invoke-Command -computername REMOTEPC { import-module webadministration; dir -path IIS:\Sites\ }
Name ID State Physical Path Bindings PSComputerName
Default Web Site 1 Started http *:80: REMOTEPC
Invalid class string (Exception from HRESULT: 0x800401F3 (CO_E_CLASSSTRING))
+ CategoryInfo : …Run Code Online (Sandbox Code Playgroud) 当客户端浏览器从 Web 服务器请求文件时,我知道会执行某种检查,因为 Web 浏览器可能已经缓存了为网页提供服务所需的文件。因此,如果缓存中存在文件,则不会发送任何文件。但是如果服务器上的文件自从文件被缓存在浏览器中后发生了变化,无论如何都会发送和更新文件。
然后,如果您在服务器上启用了 gzip 之类的压缩,则必须在途中对要提供给客户端的文件进行 gzip,这需要一些服务器端处理。
但这是如何管理的?在我看来,逻辑方法是,Web 服务器也应该有一个缓存,其中包含在特定时间跨度内请求的所有文件的最新版本,因此是这些文件的压缩版本,这样压缩就不必了每次请求文件时执行。
而且,最终如何请求文件?浏览器是每次在 HTML 代码中遇到一个文件并且特定文件未存储在本地缓存中时询问文件,还是将所有需要的文件加起来并同时询问整个文件?
但这只是从编程的角度猜测,我真的不知道。
如果 Web 服务器系统之间的答案非常不同,那么我主要对 Apache 感兴趣,但也欢迎其他答案。
我们目前使用 Request Tracker 进行服务台票务,我们使用 Spiceworks 进行资产盘点。我正在考虑从 RT 转移到 Spiceworks 以获得帮助台是否值得。有没有人使用过这两个系统,并且可以对这两个系统的任何好处/问题提供一些见解?或者有普遍的哲学原因为什么应该使用一种解决方案而不是另一种?当然,RT 是开源的,而 Spiceworks 不是——通常这对我来说是一个主要项目——但是由于 Spiceworks 是免费的并且相当积极地参与社区,所以它对我(个人)来说并不重要。
有人可以向我解释以下概念,因为它们与测量来自我的网站的数据传输有关。
缓存、准备好的缓存和空缓存有什么区别?
你能给出每个的定义吗?
目标是能够执行存储在 WWW 目录中的任意脚本文件,例如http://www.example.com/*.py.
我不想为每个请求生成一个新的 Python 实例(解释器)(就像在常规 CGI 中所做的那样,如果我没记错的话),这就是我使用 FastCGI 的原因。
根据Lighttpd 的文档,以下是我的配置文件的 FastCGI 部分。问题是它总是/usr/local/bin/python-fcgi为每个 *.py 文件运行脚本,而不管该文件的内容如何:
http://www.example.com/script.py [output=>] "python-fcgi: test"
(无论内容如何script.py)
我对使用任何框架不感兴趣,而只是执行单独的 [web] 脚本。
我怎样才能让它像 PHP 一样运行,通过请求它的路径来执行 WWW 目录中的任何脚本?
/etc/lighttpd/conf.d/fastcgi.conf:
server.modules += ( "mod_fastcgi" )
index-file.names += ( "index.php" )
fastcgi.server = (
".php" => (
"localhost" => (
"bin-path" => "/usr/bin/php-cgi",
"socket" => "/var/run/lighttpd/php-fastcgi.sock",
"max-procs" => 4, # default value
"bin-environment" => ( …Run Code Online (Sandbox Code Playgroud) web-server ×10
compression ×2
iis-7 ×2
linux ×2
.net ×1
analysis ×1
asp.net ×1
cache ×1
centos ×1
fastcgi ×1
gzip ×1
helpdesk ×1
http ×1
iis ×1
lighttpd ×1
log-files ×1
monitoring ×1
networking ×1
php ×1
piwik ×1
powershell ×1
python ×1
web-hosting ×1
website ×1