服务器管理员

系统和网络管理员的问答


2
什么时候应该创建一个新的用户帐户在服务器上运行软件?
通常,什么时候应该创建一个新的用户帐户来在服务器上运行一个面向互联网的软件? 例如,假设我正在使用共享的Debian服务器(例如,通过Dreamhost),并且我想使用WordPress运行一些网站,一些使用Redmine,一些使用Ruby on Rails,也许一些使用Django,并且我想为Mercurial服务仓库。 在Dreamhost服务器和许多其他类似的设置服务器上,都可以在单个用户帐户下完成,但是我可以看到这种方法的一些缺点: 更长的.bashrc 如果该帐户被盗用,则该帐户下运行的所有站点也将被盗用。 另一方面,要跟踪很多用户帐户可能会有些麻烦,特别是如果其中一些用户对安装的软件有相同的要求时。例如,为每个运行WordPress的网站拥有一个帐户可能就太过分了。 最佳做法是什么?这仅仅是一个与每个人的偏执程度成比例地减少每个用户帐户的托管站点(或托管存储库等)数量的问题吗? 请对此发表您的意见,并说明理由。 另外,如果您有任何理由认为在专用服务器或VPS上使用的方法应与在共享服务器上使用的方法不同,请概述它们的含义以及您使用它们的原因。

3
Redis加载大数据集时,某些Linux系统变得非常慢
我收到了来自Redis用户的报告,由于我不是Linux及其调度程序领域的专家,所以我不确定要回答什么,但是我们(作为Redis项目)需要特别解决这类问题将来,与Redis Cluster一样,我们将在一个盒子中同时运行许多Redis实例。所以我想在这里寻求帮助。 问题: 内核:“ Linux redis1 2.6.32-305-ec2#9-Ubuntu SMP Thu Apr 15 08:05:38 UTC 2010 x86_64 GNU / Linux” 大量的可用RAM,没有其他进程执行重要的I / O。 重要提示,请在EC2大实例上运行,而不要在真实服务器上运行。我从未在非虚拟化环境中看到过类似的东西。EC2实例为:“高内存超大型实例17.1 GB内存,6.5 ECU(2个虚拟核,每个虚拟核具有3.25个EC2计算单元),420 GB本地实例存储,64位平台”。 基本上,一旦重新启动大型Redis实例,系统将变得非常缓慢,无法再在Shell上键入内容。当Redis加载实例时,它将使用100%的CPU(它会尽快加载数据)并顺序读取dump.rdb文件。I / O并不是特别高,因为加载受CPU约束,而不是I / O约束。 为什么在地上有两个CPU和大量RAM的盒子,磁盘上没有可交换的东西,应该基本上停止使用此工作负载? 我觉得这与EC2实例有很大关系,这与所使用的虚拟化技术有关,因为我一直将Redis 24 GB数据集加载到我的盒子中而没有任何问题(即使是Redis的其他实例)高负载运行)。 感谢您的提示! 救世主 编辑:添加一些我从Twitter收到的反馈: 来自@ezmobius:@antirez首先要做的是从/ mnt或本地临时驱动器中进行尝试,以查看其EBS脆弱性,第二是确保其不是“首次写罚”(用谷歌搜索),如果是,那么您需要先在磁盘上dd 0。 来自@dvirsky:@antirez我正好在这样的ec2节点上运行许多redis实例。我注意到bgsave的速度有所下降,但没有出现这种现象。

4
正确处理带有url(/%)百分号的IIS请求
我正在寻找任何一种解决方案来正确获取IIS请求,例如/programming//%和http://bing.com/%,以不显示400 Bad Request页面,而是显示自定义错误页面类似于http://google.com/%和http://facebook.com/%的用法(显然,这些示例不在IIS上)。 我相信我已经尝试根据http://support.microsoft.com/kb/820129设置所有适用的http.sys注册表设置(AllowRestrictedChars,PercentUAllowed),但这没有帮助。设置AllowRestrictedChars和自定义的400页具有固定的URL,例如/programming//%12,但没有/%。
14 iis  iis-7  iis-7.5 

4
使用SQL Server(2008),可以在架构中授予创建表权限吗?
使用SQL Server 2008中的安全性,我试图授予用户CREATE TABLE权限,但仅在特定架构内。CREATE TABLE权限仅适用于数据库级别吗? 我可以限制用户仅在模式内创建表吗? 我试过了: USE [databasename] GRANT CONTROL ON Schema :: [schemaname] TO [username] GO 和 USE [databasename] GRANT ALTER ON Schema :: [schemaname] TO [username] GO 但是,用户仍然无法在目标架构内创建表。直到我运行此命令,用户才能创建表: USE [databasename] GRANT CREATE TABLE to [username] GO 格兰特 GRANT数据库权限

3
将git用于多个服务器配置文件
我们已经将许多源代码迁移到了git上,并对当前的解决方案感到非常满意。我们希望在同一系统上对服务器配置文件进行版本控制,但是有些事情并没有达到我们想要的方式,我希望有人可以在这里分享他的经验。 此问题类似于对服务器配置文件使用修订控制?,但我们有一些特殊要求,与这些问题的建议不符。 当前设置使用Subversion来配置文件。相应的存储库看起来像这样 /#仓库的根目录 +-www.domain.com/#配置www | \ - 等等/ | \-apache2 / +-dev.domain.com/#开发的配置 | +-等/ | \ - 选择/ | \-app1 / | \-conf /#在dev上配置app1 \-staging.domain.com/#配置登台 使用subversion可以很好地工作,因为可以检出存储库的子目录。此外,您可以使用svn:externals指向一种通用结构,用于几种不同的配置设置。我们只需要处理所有版本目录中的.svn文件。另一方面, Git 没有svn:externals和稀疏签出始终要求从根目录到实际目录的路径相同。 在讨论向git的迁移时,我尝试写下服务器配置版本控制的主要要求: 我们只想要一个存储库 应该可以轻松地将更改推送到中央遥控器 变更集应包含真实作者 是否有一种很好的方法将所有配置都存储在一个存储库中,并且只有一个子路径作为工作副本?目前,我正在考虑两种方法,但想先在这里问这个问题 如果.git存储库位于固定位置,例如/ var中的某个位置,我们可以从“目标”工作目录链接到子路径。主要问题:除了将单个文件符号链接之外,我不知道将/ etc “链接” 到另一个目录以仅导入内容的方法。 我在这个SO问题上找到了另一种选择,建议在一个存储库中有多个分支。这无疑会增加复杂性,但是我可以看到我们尝试这种方式。 在单台机器上使用git进行配置文件管理可以正常工作,但是我相信一定有人在使用它,就像我们希望使用它那样。 谢谢你 Kariem
14 linux  svn  configuration  git 

6
如何启用通过Mod代理的请求的日志记录
有没有一种方法可以记录通过mod Proxy进行的请求?我需要一种调试配置的方法,因为我似乎并没有达到应有的水平。我需要以下信息: 传入请求的标头 发送到代理目标的内容 也许是一个相关的问题:是否有一种方法可以剥离一些标头?我尝试了以下方法: ProxyPass /proxy/other http://not.under.my.control/ <Location /proxy/other> ProxyPassReverse / RequestHeader unset Authorization </Location> 我真的不知道这是否可以,因为我什么也看不到。


6
ARP回复包含错误的MAC地址
我有一个运行带有有线和无线适配器的linux的机器人。当我启动时,它可以连接到无线网络。当我为有线(静态地或通过DHCP)分配IP时,它看起来可以工作。如图ifconfig所示,显示正确的IP和route正确的路由。但是,当我执行有线IP的ARP请求时,ARP回复包含无线MAC。 ??? 机器人上没有运行的桥梁,所以为什么我没有有线MAC? 当电线断开连接时,有线IP会回复ping ... 为什么机器人通过无线接口对有线IP请求进行答复? 编辑:同一IP子网上的有线和无线适配器。我从同一IP子网上的计算机(尝试使用不同的计算机)发出ARP请求。 相关的ifconfig输出: eth0 Link encap:Ethernet HWaddr 00:01:C0:04:BD:F7 inet addr:192.168.0.110 Bcast:192.168.0.255 Mask:255.255.255.0 UP BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) ra0 Link encap:Ethernet HWaddr 24:3C:20:06:3E:6D inet …
14 linux  bridge  arp 

3
为什么我无法进入目录?
我正在运行Ubuntu 10.04.2 LTS。为什么我不能cd进入/var/www目录? david@ubuntu:/var$ pwd /var david@ubuntu:/var$ ls -l drwxrwxr-- 13 root root 4096 2011-02-26 21:53 www david@ubuntu:/var$ cd www -bash: cd: www: Permission denied david@ubuntu:/var$ sudo cd www sudo: cd: command not found
14 ubuntu  directory 

4
Linux中央认证/授权方法
我有一个规模虽小但正在增长的Linux服务器网络。理想情况下,我想在一个中央位置控制用户访问,更改密码等。我已经阅读了很多有关LDAP服务器的信息,但是我仍然对选择最佳的身份验证方法感到困惑。TLS / SSL是否足够好?Kerberos有什么好处?什么是GSSAPI?等等...我还没有找到明确的指南来说明这些不同方法的优缺点。谢谢你的帮助。

3
如何以一种不会使我面临VLAN跳动风险的方式设置VLAN?
我们计划将生产网络从无VLAN配置迁移到标记VLAN(802.1q)配置。此图总结了计划的配置: 一个重要的细节是,这些主机中的很大一部分实际上将是一台裸机上的VM。实际上,唯一的物理计算机将是DB01,DB02,防火墙和交换机。所有其他计算机将在单个主机上虚拟化。 人们一直担心的是这种方法很复杂(隐含的过于复杂),并且VLAN仅提供了一种安全感,因为“ VLAN跳跃很容易”。 鉴于由于虚拟化将多个VLAN用于单个物理交换机端口,这是否是一个有效的问题?我如何适当地设置VLAN以防止这种风险? 另外,我听说VMWare ESX有一个称为“虚拟交换机”的东西。这是VMWare虚拟机管理程序唯一的吗?如果没有,它是否可以与KVM(我计划的虚拟机管理程序)一起使用?它如何发挥作用?


1
GRO(通用接收卸载)如何在更高级的NIC上工作?
我对特定答案感兴趣: 具有GRO的NIC是否会编辑/创建TCP ACK或任何其他数据包(或者此功能对接收者/发送者TCP堆栈透明)? NIC应该将“粘合段”传递到TCP堆栈时应该有一个超时/事件?这些是什么? 在数据包转发设置中-GRO功能是否还会尝试读取接收器的ACK(请参阅下文,为什么我要这样做)? 任何比Wikipedia和linux手册页更好地解释GRO以及其他NIC卸载功能(TSO,LSO ...)的资料都将不胜感激。 更多细节: 我正在解决一种IPSec实现的性能问题。问题是可用带宽没有在所有4个VPN隧道中平均分配(大约200MBps / 200MBps / 1MBps / 1MBps;每个VPN隧道封装了一个TCP连接)。在PCAP中,我偶尔会看到Web服务器空闲约2秒钟(等待ACK)。当Web服务器重新传输未确认的段时,下载将恢复。 我从PCAP得出的结论是,NIC GRO功能将数据包粘合在一起,但是有时不能及时将它们传递到TCP堆栈,这是造成问题的原因。 由于此VPN服务器不具有终止TCP连接的接口,而仅转发数据包。然后,我尝试禁用GRO,此后,我发现流量均匀分布在所有隧道中。同样,当在Web服务器上禁用TCP窗口缩放时,即使启用了GRO,带宽甚至也被分配了(这就是我提出问题3的原因)。 我正在Ubuntu 10.04服务器(64位)上使用2.6.32-27 linux。NIC是Intel 82571EB。所有接口(HTTP客户端,VPN客户端,VPN服务器,Web服务器)直接通过1Gbit以太网电缆成链连接。

5
是否真的有必要将Apache作为Glassfish / JBoss / Tomcat的前端运行?
我主要是Java开发人员,因此遇到一个问题,跨越了开发人员和sysadmins之间的鸿沟。 几年前,当将Tomcat作为应用服务器运行是一种新颖的事物时,通常将其与Apache一起使用。据我了解,这样做是因为: Java被认为是“慢速”的,让Apache直接提供静态内容是有帮助的。 除非以root身份运行,否则Tomcat无法监听端口80/443。 Java不再被认为是缓慢的,我怀疑将Apache添加到该组合中实际上将有助于加快处理速度。 至于端口问题,这些天可能有更简单的方法将应用程序服务器连接到端口80/443。 因此,我的问题是-如今,将Java Webapp与Apache一起使用真的有任何好处吗?如果是这样,Apache仍然是要走的路吗?我应该看看Nginx吗?如果重要的话,我使用的是Glassfish,而不是Tomcat。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.