Articles of web server

切换到.net 4.0后IIS7中的“服务器应用程序不可用”

我们最近升级到.Net 4.0,并为我们的应用程序编写了一个自定义的部署脚本,它使用Microsoft.Web.Administration库来执行诸如创build网站和设置应用程序池之类的事情。 我们开始testing开发者框中的代码,它似乎工作。 然后我们注意到,如果开发者重新构build应用程序,它将停止运行,IIS7会给我们这个(实际上是无用的)错误信息: 服务器应用程序不可用 您尝试在此Web服务器上访问的Web应用程序当前不可用。 请点击网页浏览器中的“刷新”button重试您的请求。 pipe理员注意:可以在Web服务器的应用程序事件日志中find详细描述此特定请求失败原因的错误消息。 请查看此日志条目,以发现导致此错误发生的原因。 如果我们手动回收应用程序池,应用程序将立即启动。 我们在应用程序日志中看不到任何事件或错误。 该池设置为自动启动并在configuration更改时回收。 我们已经尝试了应用程序池,应用程序和ASP.net设置中的各种设置组合。 我们已经尝试以不同的用户帐户运行应用程序池。 我们尝试删除应用程序池和应用程序,并通过用户界面手动重新创build,问题仍然存在。 这就好像使用Microsoft.Web.Administration库毒害机器,所以它永远不会自动重新启动应用程序池? 我们将不胜感激任何见解或debuggingbuild议。 我们不能在任何生产系统上运行这个,直到我们明白是什么导致了这种情况发生。

Nginx和loadbalancer有很多错误400 access.log

HY, 我有正确的安装nginx我的网站,一切工作正常,非常快:) 但是我的访问日志中有这样的错误: IP – [30 / Dec / 2011:11:06:00 +0000] – “ – ”400 0“ – ”“ – ” IP – [30 / Dec / 2011:11:06:10 +0000] – “ – ”400 0“ – ”“ – ” IP – [30 / Dec / 2011:11:06:20 +0000] – “ – ”400 0“ – ”“ – ” IP […]

SVN和“精简版”Web服务器

我打算设置和configurationSVN服务器。 考虑一下'lite'web服务器,比如nginx或者lighttpd。 AFAIK nginx只有有限的DAV支持,并没有SVN模块本身。 这是正确的信息? 如果是的话lighttpd呢? SVN可以用lighttpd正确configuration吗? 请告诉你有谁的经验。 什么是最好的解决scheme。 谢谢。

服务器挂起时,页面加载服务随机文件

我正在优化一个网站,我现在面临的问题是服务器相关的。 在页面加载期间,有大约40-50个请求发送到服务器(取决于页面),并且在任何情况下,服务器在某个文件上挂起大约5-6秒(主要是图像,导致css和js被合并) ,或两三个。看看萤火虫截图,以得到一个更好的主意,我在说什么 http://i.stack.imgur.com/aDhih.png (这里有90个请求,因为js和css不合并)。 网站是Bigelow化学家 。 任何想法可能导致这一点。 我可以深入了解一下,我只需要提示可能是这种行为的原因。 谢谢

具有每个目录SSLVerifyClient的Apache替代品

我的应用程序需要对SSL客户端证书进行每个目录的validation(即,当用户请求/富时,我们要求他们有一个客户端证书并validation它,但是当他们请求/我们不关心他们是否有客户端证书时)。 Apache对此提供了很好的支持,因为SSLVerifyClient设置可以在每个目录的基础上应用,并且Apache将在这个实例中进行SSL重新协商,以便在需要时需要证书,但在访问其他目录时不提示input证书。 我的问题是:哪些其他Web服务器有这种能力? 使用Apache来满足SSL处理要求是好的,但这不是我唯一的要求,我想知道其他选项是什么。

改变nginx的端口

我想在同一台机器上运行apache和nginx。 我configuration了Apache,并在端口80上运行正常。现在我想在端口7007上configurationnginx。我在nginx.conf中做了更改。 这里是nginx.conf文件 – user nginx root; worker_processes 3; worker_rlimit_nofile 200000; error_log /var/log/nginx/error.log; #error_log /var/log/nginx/error.log notice; #error_log /var/log/nginx/error.log info; pid /var/run/nginx.pid; events { worker_connections 65535; use epoll; } http { include /etc/nginx/mime.types; default_type application/octet-stream; index index.php index.htm index.html; log_format main '$remote_addr – $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; #access_log /var/log/nginx/access.log main; […]

在日志中奇怪的“GET / api / levels /”和“GET / play /”请求

我已经设置了新的Amazon EC2实例。 在一两天内,大约10秒内(例如66.249.76.84,66.249.74.152)就开始从“类似谷歌机器的”IP(例如66.249.76.84,66.249.74.152)中获得奇怪的“GET”请求: 66.249.74.152 – – [10/Apr/2013:06:05:02 +0000] "GET /play/gp4GbjXBD4B3?sh=04f2fd19ae2dd623e7135d29a1894f03&sh=f172a32c89190e28f9c27123d7c6cf43&sh=04f2fd19ae2dd623e7135d29a1894f03 HTTP/1.1" 404 295 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)" 66.249.76.84 – – [11/Apr/2013:03:51:44 +0000] "GET /api/levels/2ry7ZAh0Y91r HTTP/1.1" 404 295 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)" 他们正在检查文件夹中的散列 /play/'some_hash_here' /profile/'some_hash_here' /level/'some_hash_here' /api/'some_hash_here' 我从来没有这个网站上的文件夹。 但是,要做到这一点,我试图阻止他们在robots.txt User-agent: * Disallow: Crawl-delay: 120 Disallow: /play Disallow: /profile Disallow: /level 但它根本没有帮助,它只是不读robots.txt。 为了摆脱他们在我的error_log文件中提供的所有混乱,我已经在.htaccess文件中创build了这样的规则 Redirect 301 […]

具有PKCS11支持服务器证书的Web服务器?

我有一个PKCS#11兼容智能卡与私钥或证书和私钥的组合(我可以有两个)。 我想从智能卡向访问者呈现证书,或者在磁盘上使用常规证书文件,但是使用仅存储在那里的私钥对智能卡上的stream量进行解密。 这似乎应该是可能的,但现有的支持似乎是不存在的(每个人都关注客户证书,这不是我想要的)。 Windows + IIS似乎不支持该选项(仅来自文件的证书)。 Linux + Apache + mod_ssl似乎是最接近的,但却无法识别我的pkcs11引擎。 当应用以下补丁( https://issues.apache.org/bugzilla/show_bug.cgi?id=52473 )时,服务器不再启动(看起来是由于双重locking的错误)。 没有其他的networking服务器似乎支持这一点,至less,没有我能find。 我错了吗? 有没有可以做到这一点的networking服务器? 有人有更好的mod_ssl补丁吗? 我真的很想要这个吗? 请帮忙。

Apache反向代理到多个虚拟机

我已经全面了解我的问题的解决scheme,找不到它。 build立: 所以我有一台运行带有多个Web服务器的虚拟机的主机。 每个虚拟机(networking服务器)有2个networking适配器; 纳特(与端口转发8080至80和SSH)和主机只适配器。 每台主机只有适配器有它自己的networking适配器(所以每个虚拟机应该有它自己的外部IP)。在主机上使用Apache我有以下文件在站点可用(每个服务器一个): <VirtualHost *:80> ProxyPreserveHost On ProxyRequests Off ServerName www.domain1.com ServerAlias domain1.com ProxyPass / http://192.168.58.1:8080/ ProxyPassReverse / http://192.168.58.1:8080/ </VirtualHost> 我们的想法是,主机系统上的apache会根据域名将请求redirect到托pipe该站点的正确的vm(然后让apache在该服务器上执行所需的操作)。 问题: 看来我所有的域名都指向同一个虚拟主机。 所以,不pipe我去哪个域,它都需要我完全相同的页面。 所以我想知道我做错了什么,以及如何使域指向正确的虚拟机? 它是否与服务器上的主机名configuration不正确? 如果是主机名问题,我应该如何设置主机名? 更新: 看来,Apache不是问题。 似乎所有主机只有IP指向同一个虚拟机。 所以我必须错过vms上的主机专用适配器的一些configuration,即使我确信每个虚拟机都有自己的configuration。 解决了: 见下面的答案。

允许从DMZ到Active Directory的LDAPauthentication。 我的想法是否安全?

我有一个面向互联网的应用程序服务器,我想使用AD身份validation。 这是我第一次做这个没有MS应用程序或没有某种代理。 我脑中已经有了一个想法来说明如何去做。 我想确保我不会错过一个明显的安全漏洞。 我目前的想法是互联网stream量去DMZnetworking应用程序服务器只允许HTTPS / 443stream量和拒绝所有其他,包括传出stream量(不包括LDAPS)。 DMZ内部有一个只读域控制器,除了RODC所需的LDAPS和端口(基于MS RODC DMZ最佳实践)所需的stream量之外,它将拒绝所有input输出。 RODC将不会有任何直接的互联网stream量。 内部networking我将有一个常规的域控制器。 WebApp和RODC之间的所有通信都将是LDAPS。 3台服务器之间的所有IP通信都将使用IPSEC对IPstream量进行身份validation和encryption。 RODC将被过滤为只包含用户名数据,无密码或其他数据。 它将每个需求每次查询内部DC。 WebApp和RODC都将是一个服务器核心安装,没有GUI。 WebApp —- | IPSEC / LDAPS | —> RODC —– | IPSEC / LDAPS | —>内部DC 显然所有的服务器将被locking,只允许直接IPstream量与所需的端口,没有别的。 我错过了什么吗?