我们最近将我们的 ASP.NET网站升级为Web 应用程序,我们对部署时突然出现的困难感到震惊。考虑到这是一项多么普遍的任务,我想知道人们使用什么插件/软件来部署快速发展的远程存储项目(即网站)?
除了在Visual Studio 中“发布”然后必须手动 FTP 已更改的文件之外,一定有更好的方法吗?尤其是因为当我们上传我们的 .DLL 时网站会宕机。
有太多繁琐的文件异常,我必须尽可能地自动化该过程,以防止意外上传。
使用我们的旧解决方案(在我们的网站上),我们使用Dispatch for ASP,它完全震撼了整个过程,只需单击一下。不幸的是,它对 DLL 来说不是很好(如前所述)。
那么你的团队是如何做到的呢?
感谢您的任何建议。
PS - 我已经读到 Visual Studio 2010 应该解决 VS2005/08 中的这些缺点,但在那之前......
我看到 Apache 和 Nginx 都使用 var/www 作为它们的 Web 根目录 - 但该目录未包含在Filesystem Hierarchy Standard 中。我还在目录中看到了一些带有 web 根/home/username/www目录的服务器。那么网络根在哪里呢?或者更确切地说,对于公共 Web 服务器来说,它大部分时间应该去哪里?
在与 Web 服务器相同的机器上运行数据库服务器似乎很简单,但是我们这样做是否冒了很大的安全风险?
环境将是 Windows 2008 服务器、Postgresql(最新版本,发布时可能是 9.0)和 Apache 2。
我只是在WebPageTest.org上查看我们的网站,他们对加快网站速度的建议之一是:
通常不应使用 ETag 标头,除非您有明确的理由需要它们
我想知道这是什么意思。这是否意味着您知道不会更改的静态内容不应该包含它们,或者这是否意味着您知道将定期更改的内容不应该包含它们,或者是否意味着您不应该普遍使用它们,除非您有具体需要。
如果是后者,什么时候使用它们合适?
如何使 apache 中的目录列表显示./hidden 文件?我都试过了
<Directory /var/www/*>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
Run Code Online (Sandbox Code Playgroud)
和
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
Run Code Online (Sandbox Code Playgroud)
但既不显示隐藏文件
这是一个与浏览器无关的问题,但我们正在使用 IE9 进行测试。
我们的用户访问的 Web 应用程序之一被随机缓存,更改未在应有的时候显示。没有其他网站有这个问题,我们已经与声称它不会发生在其他任何人身上的供应商合作。如果我们使用开发人员工具栏并选择“从服务器强制刷新”,一切都会正确更新。
我们的想法不是真正解决问题,而是通过禁用此特定站点的缓存来解决它。但是,我们不知道如何。
我有一个运行 nginx/php-fpm/varnish/wordpress 和 amazon s3 的系统。
现在我在设置系统时查看了很多配置文件,在所有这些文件中我发现了这样的内容:
/* If the request is for pictures, javascript, css, etc */
if (req.url ~ "\.(jpg|jpeg|png|gif|css|js)$") {
/* Remove the cookie and make the request static */
unset req.http.cookie;
return (lookup);
}
Run Code Online (Sandbox Code Playgroud)
我不明白为什么要这样做。大多数示例还将 NginX 作为网络服务器运行。现在的问题是,为什么要使用 varnish 缓存来缓存这些静态文件。
对我来说只缓存动态文件更有意义,这样 php-fpm / mysql 就不会受到太多影响。
我是正确的还是我在这里遗漏了什么?
我想根据给出的答案向问题添加一些信息。
如果您有一个动态网站,其中内容实际上发生了很大变化,则chaching 没有意义。但是,例如,如果您将 WordPress 用于静态网站,则可以将其缓存很长时间。
也就是说,对我来说更重要的是静态内容。我在不同的缓存应用程序和网络服务器应用程序上找到了一些测试和基准测试的链接。
http://nbonvin.wordpress.com/2011/03/14/apache-vs-nginx-vs-varnish-vs-gwan/
NginX 实际上在获取静态内容方面更快,因此让它通过更有意义。NginX 适用于静态文件。
——
除此之外,大多数时候静态内容甚至不在网络服务器本身中。大多数情况下,这些内容存储在 CDN 上的某个地方,可能是 AWS S3 之类的。我认为清漆缓存是您希望存储静态内容的最后一个地方。
我正在启动一个项目,该项目使用环境变量来设置数据库连接和其他一些事情。(他们不想使用配置文件,因为人们粗心大意并覆盖了它们)。
无论如何,我正在使用 nginx,虽然它支持 env - 它似乎并没有很好地支持它。您不能在每个服务器块的基础上设置 env 值。换句话说,这行不通:
server {
listen 80;
server_name domain;
env FOO = "bar";
}
Run Code Online (Sandbox Code Playgroud)
你必须这样做:
env FOO = "bar";
http {
server {
listen 80;
server_name domain;
}
}
Run Code Online (Sandbox Code Playgroud)
这意味着我不能拥有特定于 vhost 的值。所以我必须为每个站点创建一个完整的 vhost 配置,并且只激活我目前想要的一个,以便正确设置值。
有没有办法解决这个问题?
有问题nginx。它在客户端完成下载之前关闭连接。看起来像:
$ wget -O /dev/null http://www.site.com/images/theme/front/clean.jpg
--2012-07-11 21:37:03-- http://www.site.com/images/theme/front/clean.jpg
Resolving www.site.com (www.site.com)... 123.234.123.234
Connecting to www.site.com (www.site.com)|123.234.123.234|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 90707 (89K) [image/jpeg]
Saving to: `/dev/null'
26% [===============> ] 24,291 --.-K/s in 8.7s
2012-07-11 21:37:12 (2.74 KB/s) - Connection closed at byte 24291. Retrying.
--2012-07-11 21:37:13-- (try: 2) http://www.site.com/images/theme/front/clean.jpg
Connecting to www.site.com (www.site.com)|123.234.123.234|:80... connected.
HTTP request sent, awaiting response... 206 Partial Content
Length: 90707 (89K), 66416 (65K) remaining [image/jpeg]
Saving to: `/dev/null' …Run Code Online (Sandbox Code Playgroud) 我们有两个独立的托管 Web 服务器。一个运行 CentOS 6.2 并用作许多站点的生产环境。第二个运行 CentOS 6.4,并托管一些内部应用程序,例如我们的 wiki、gitlab 和问题跟踪器。
我还想将次要站点用作我们开发的站点的暂存环境,以便在它们投入生产之前进行测试。理想情况下,两种环境在操作系统方面应该具有相同的设置。
我的选择似乎是;
选项 3 很诱人,但由于我无法真正找到两个版本之间的差异,我不知道它是否明智,有人可以建议吗?
web-server ×10
nginx ×3
apache-2.2 ×1
cache ×1
centos6 ×1
database ×1
deployment ×1
etags ×1
http ×1
iis ×1
optimization ×1
page-speed ×1
security ×1
varnish ×1
virtualhost ×1
web ×1