当你有一个专用的虚拟服务器来运行你的网站时,很有可能它是为每个人配置的,而不是为最大限度地提高运行网站的性能而定制的。
Contents[hide] |
我们希望最大限度地提高性能的问题有很多:
有相当多的调整,你可以做,这将略有不同的服务器上你使用。这些调整适用于运行CentOS的服务器,但它们应该适用于大多数DV服务器。
如果您的主机提供商为您的域处理DNS(可能),那么您可以禁用DNS服务。
disable dns /etc/init.d/named stop chmod 644 /etc/init.d/namedchmod命令从脚本中删除execute权限,停止脚本在启动时运行。
如果你没有在你的服务器上使用电子邮件帐户,你不应该费心运行反垃圾邮件工具。(你也应该看看谷歌应用,更好的电子邮件解决方案)
/etc/init.d/psa-spamassassin stop chmod 644 /etc/init.d/psa-spamassassinxinetd进程包含许多其他进程,这些进程对于典型的web服务器都没有用处。
/etc/init.d/xinetd stop chmod 644 /etc/init.d/xinetd如果使用plesk面板,可以通过添加选项文件强制它使用较少的内存。
vi /usr/local/psa/admin/conf/httpsd.custom.include向文件中添加以下行:
MinSpareServers 1 MaxSpareServers 1 StartServers 1 MaxClients 5请注意,此选项已知可用于MediaTemple DV服务器,但尚未在任何其他服务器上选中。(见参考文献)
如果你一年只使用一次Plesk,没有什么理由让它继续运行。请注意,此步骤是完全可选的,并且稍微高级一些。
运行以下命令关闭plesk:
/etc/init.d/psa stop通过运行以下命令,可以禁用它在启动时运行:
chmod 644 /etc/init.d/psa请注意,如果禁用了它,则在不更改文件权限的情况下无法手动启动它(chmodu+x)。
打开/etc/我的.cnf归档并在[mysqld]部分添加以下行,如下所示:
[mysqld] query-cache-type = 1 query-cache-size = 8M如果愿意,可以向查询缓存添加更多内存,但不要使用太多内存。
默认情况下,有数量惊人的主机可以通过TCP/IP访问MySQL,这对网站来说毫无意义。您可以通过运行以下命令来确定mysql是否正在侦听TCP/IP:
netstat -an | grep 3306要禁用,请在/etc中添加以下行/我的.cnf文件:
skip-networking打开你的httpd.conf文件文件,通常位于/etc/httpd/conf中/httpd.conf文件
找到如下所示的线条:
Timeout 120把它改成:
Timeout 20现在找到包含这些行的部分,并调整为类似的内容:
StartServers 2 MinSpareServers 2 MaxSpareServers 5 ServerLimit 100 MaxClients 100 MaxRequestsPerChild 4000在PHP平台上调整服务器时需要记住的一点是,每个apache线程都将在内存中的一个单独位置加载PHP。这意味着,如果一个未使用的模块向PHP添加了256k内存,那么在40个apache线程中,您将浪费10MB内存。
你需要找到你的php.ini文件文件,通常位于/etc/php.ini文件(请注意,在某些发行版上,会有一个/etc/php.d/目录,其中包含许多.ini文件,每个模块一个。
用以下模块注释所有loadmodule行:
Todo:在此处添加更多信息。
有很多操作码缓存可以使用,包括APC、eAccelerator和Xcache,最后一个是我个人的偏好,因为稳定性。
下载xcache并将其解压到一个目录中,然后从xcache源目录运行以下命令:
phpize ./configure --enable-xcache make make install打开你的php.ini文件文件并为xcache添加一个新节。如果php模块是从其他地方加载的,则需要调整路径。
vi /etc/php.ini将以下节添加到文件:
[xcache-common] zend_extension = /usr/lib/php/modules/xcache.so [xcache.admin] xcache.admin.user = "myusername" xcache.admin.pass = "putanmd5hashhere" [xcache] ; Change xcache.size to tune the size of the opcode cache xcache.size = 16M xcache.shm_scheme = "mmap" xcache.count = 1 xcache.slots = 8K xcache.ttl = 0 xcache.gc_interval = 0 ; Change xcache.var_size to adjust the size of variable cache xcache.var_size = 1M xcache.var_count = 1 xcache.var_slots = 8K xcache.var_ttl = 0 xcache.var_maxttl = 0 xcache.var_gc_interval = 300 xcache.test = Off xcache.readonly_protection = On xcache.mmap_path = "/tmp/xcache" xcache.coredump_directory = "" xcache.cacher = On xcache.stat = On xcache.optimizer = OffTodo:需要对此进行一点扩展,并在引用中链接到xcache。
没有什么比网站的自动备份更重要的了。你可以从你的主机提供商那里得到快照备份,这也非常有用,但是我更喜欢自动备份。
我通常首先创建一个/backups目录,下面有一个/backups/files目录。如果需要,可以调整这些路径。
mkdir -p /backups/files现在创建一个备份.sh备份目录中的脚本:
vi /backups/backup.sh向文件中添加以下内容,并根据需要调整路径和mysqldump密码:
#!/bin/sh THEDATE=`date +%d%m%y%H%M` mysqldump -uadmin -pPASSWORD DATABASENAME > /backups/files/dbbackup$THEDATE.bak tar -cf /backups/files/sitebackup$THEDATE.tar /var/www/vhosts/my-website-path/httpdocs gzip /backups/files/sitebackup$THEDATE.tar find /backups/files/site* -mtime +5 -exec rm {} \; find /backups/files/db* -mtime +5 -exec rm {} \;该脚本将首先创建一个日期变量,以便所有文件在单个备份中的名称相同,然后转储数据库,对web文件进行tar处理并gzip处理。find命令用于删除任何超过5天的文件,因为您不希望驱动器空间不足。
通过运行以下命令使脚本可执行:
chmod u+x /backups/backup.sh接下来,您需要将其分配给cron自动运行。确保您使用的帐户可以访问备份目录。
crontab -e将以下行添加到crontab:
1 1 * * * /backups/backup.sh您可以通过在登录到用户帐户时运行脚本来提前测试脚本。(我通常以root用户身份运行备份)
现在您已经运行了服务器的自动备份,您可以使用rsync实用程序将它们同步到其他地方。您需要阅读这篇关于如何设置ssh密钥以进行自动加密的文章登录:添加公共一个命令中的远程服务器SSH密钥
您可以通过在另一个位置的linux或Mac机器上运行这个命令来测试这一点(我在家有一个linux服务器,这就是我运行这个命令的地方)
rsync -a [email protected]:/backups/files/* /offsitebackups/第一次运行这个程序需要相当长的时间,但是最后本地计算机应该在/offsitebackups/目录中有一个files目录的副本。(请确保在运行脚本之前创建该目录)
您可以通过将其添加到crontab行来安排:
crontab -e添加以下行,它将在45分钟标记处每小时运行rsync。您会注意到我们在这里使用rsync的完整路径。
45 * * * * /usr/bin/rsync -a [email protected]:/backups/files/* /offsitebackups/你可以安排它在不同的时间运行,或者每天只运行一次。这真的取决于你。
请注意,有许多实用程序允许您通过ssh或ftp进行同步。你不必使用rsync。
您要做的第一件事是确保您有一个通过ssh使用的常规用户帐户,并确保您可以使用su切换到root。允许root通过ssh直接登录是一个非常糟糕的主意。
编辑/etc/ssh/sshd_config文件,并查找以下行:
#PermitRootLogin yes将该行更改为如下所示:
PermitRootLogin no在进行此更改之前,请确保您有一个常规用户帐户,并且可以su到root,否则您可能会将自己锁定在外。
除了SSH版本2,实在没有理由使用其他任何东西,因为它比以前的版本更安全。编辑/etc/ssh/sshd_config文件,并查找以下部分:
#Protocol 2,1 Protocol 2确保只使用协议2,如图所示。
现在您需要重新启动SSH服务器才能使其生效。
/etc/init.d/sshd restart您可以使用以下命令查看服务器正在侦听的端口:
netstat -an | grep LISTEN你真的不应该有任何监听端口22,80,可能8443以外的普莱斯克。
主要文章:在Linux上使用Iptables
您可以选择设置iptables防火墙来阻止更多连接。例如,我通常会阻止对工作网络以外的任何其他端口的访问。如果你有一个动态IP地址,你会想避免这个选项。
如果到目前为止您已经完成了本指南中的所有步骤,那么可能没有必要在混合中添加防火墙,但最好了解您的选择。
...例如,Kali Linux是一个道德黑客和渗透测试Linux发行版。有服务器Linux操作系统、media center Linux发行版等。 ...
...Linux、Apache、MySQL、PHP捆绑在一起,就像你通常理解的web服务器一样工作。(一个密切相关的堆栈或一组技术是“LEMP”,其中“E”来自Apache的替代品Nginx的发音,称为“engine x”) ...
...络),但它们通常都没有提到细节。我们经常听到的代理服务器和VPN连接到底是如何工作的?如果你想投入时间和精力来提高安全性,你需要确保你为正确的工作选择了正确的工具。 尽管vpn和代理有着本质上的不同,但它们有...
...免费管理。另一方面,开发人员的最佳主机为您提供虚拟服务器、操作系统的选择、专用资源和更多的实际管理。如果您拥有自己的工具或进行自己的开发,您相信谁会为您提供所需的平台?在下面的讨论中,为初学者分享您的...
...小型网站的人来说,有两种选择:共享Web托管和虚拟专用服务器(VPS)Web托管。它们都将多个站点压缩到一台计算机中,从而允许所有者分担托管成本。比较两者,很容易看出共享web主机通常比VPS主机便宜。这就是为什么许多讨...
一般来说,服务器是一台高端网络计算机,管理连接的设备(“客户机”)及其作为中央资源对多个应用程序的访问,而数据库是支持应用程序后端数据处理的存储库。 什么是服务器(a server)? 根据组织的网络大小、用户数量...
...将这些函数作为服务提供。它提供底层硬件技术,如虚拟服务器、操作系统、数据库解决方案、开发人员工具和网络支持。硬件和软件由平台提供商管理。该提供商通过管理云软件开发平台来促进云应用程序的部署,消除了配置...
VPS和专用服务器的主要区别在于,VPS(或虚拟专用服务器)是服务器内部的专用虚拟环境,特定于客户机,而专用服务器是仅属于单个客户机的服务器。 Internet托管是指在Internet服务器上运行的服务。它们帮助个人和业务用户向...
... 代理 允许用户安全访问专用网络 允许用户从其他网络服务器访问资源 安装在操作系统级别 充当设备中单个应用程序的中间人 加密数据 不加密数据 定义 VPN或虚拟专用网络允许用户使用公共网络(例如因特网)访问专...
...在互联网上进行评估。提供这项服务的公司,提供他们的服务器计算机(物理位置)来存储网页和文件。网页设计是指创建网站或网页的视觉方面的过程。它包括网页的规划和创建。 网页托管和网页设计都有很大的不同。网络...