Linux服务器安装后的优化

我们的服务器并不是安装完成后就可直接托管到机房了,
而是需要进行一系列的优化配置和安全配置等

   
 1,关闭不需要的服务
    这个应该很容易理解的,凡是我们的系统不需要的服务,一概关闭,
    这样一个好处是减少内存和CPU时间的占用,另一个好处相对可以提高安全性
  
    那么哪些服务是肯定要保留的呢?
    在linux机器上通常有四项服务是必须保留的
     iptables
             linux下强大的防火墙,只要机器需要连到网上,哪里离得开它
     network
             linux机器的网络,如果不上网可以关闭,只要上网当然要打开它
     sshd
             这是openssh server,如果你的机器不是本地操作,而是托管到IDC机房,
              那么访问机器时需要通过这个sshd服务进行
     syslog
            这是linux系统的日志系统,必须要有,
            否则机器出现问题时会找不到原因

    除了这四项必需的服务之外,其他的服务需要保留哪些呢?
    这时就可以根据系统的用途而定,比如:数据库服务器,就需要启用mysqld(或oracle)
                                    web服务器,就需要启用apache
  
  
 
  2,关闭不需要的tty
请编辑你的/etc/inittab
找到如下一段:
1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6

这段命令使init为你打开了6个控制台,分别可以用alt+f1到alt+f6进行访问
此6个控制台默认都驻留在内存中,事实上没有必要使用这么多的
你用ps auxf这个命令可以看到,是六个进程
root      3004  0.0  0.0  1892  412 tty1     Ss+  Jun29   0:00 /sbin/mingetty tty1
root      3037  0.0  0.0  2492  412 tty2     Ss+  Jun29   0:00 /sbin/mingetty tty2
root      3038  0.0  0.0  2308  412 tty3     Ss+  Jun29   0:00 /sbin/mingetty tty3
root      3051  0.0  0.0  1812  412 tty4     Ss+  Jun29   0:00 /sbin/mingetty tty4
root      3056  0.0  0.0  2116  412 tty5     Ss+  Jun29   0:00 /sbin/mingetty tty5
root      3117  0.0  0.0  2396  412 tty6     Ss+  Jun29   0:00 /sbin/mingetty tty6

如何关闭这些进程?
通常我们保留前2个控制台就可以了,
把后面4个用#注释掉就可以了

然后无需重启机器,只需要执行 init q 这个命令即可
init q
q作为参数的含义:重新执行/etc/inittab中的命令

3,如何关闭ipv6?

   ipv6目前我们还不需要,但系统安装完成后它会作为模块常驻核心,没有必要,
   可以用这个步骤来关闭它:
   首先编辑网络配置文件:
   vi /etc/sysconfig/network
   修改
   NETWORKING_IPV6=yes

   为
    NETWORKING_IPV6=no

   然后关闭其模块:vi /etc/modprobe.conf
   在文件中添加以下两行
    alias net-pf-10 off
    alias ipv6 off

   修改完成后需重启机器使之生效

4,如何关闭atime?

    一个linux文件默认有3个时间:
         atime:对此文件的访问时间
         ctime:此文件inode发生变化的时间
         mtime:此文件的修改时间

  如果有多个小文件时通常没有必要记录文件的访问时间,
  这样可以减少磁盘的io,比如web服务器的页面上有多个小图片
 
  如何进行设置呢?
  修改文件系统的配置文件:vi /etc/fstab
  在包含大量小文件的分区中使用noatime,nodiratime两项
  例如:
  /dev/md5                /data/pics1           ext3    noatime,nodiratime 0 0
  
  这样文件被访问时就不会再产生写磁盘的io

5,一定要让你的服务器运行在level 3上
  做法:
      vi /etc/inittab
       
      id:3:initdefault:
  让服务器运行X是没有必要的

    6,优化sshd
     
          X11Forwarding no        //不进行x图形的转发
          UseDNS no               //不对IP地址做反向的解析
             
    7,优化shell
         修改命令history记录
          # vi /etc/profile
         找到 HISTSIZE=1000 改为 HISTSIZE=100
         然后 source /etc/profile

LNMP-Linux下Nginx+MySQL+PHP+phpMyAdmin一键安装包(2015年6月1日更新)


LNMP一键安装包是一个用Linux Shell编写的可以为CentOS/RadHat/Fedora、Debian/Ubuntu/Raspbian VPS(VDS)或独立主机安装LNMP(Nginx/MySQL/PHP)、LNMPA(Nginx/MySQL/PHP/Apache)、LAMP(Apache/MySQL/PHP)生产环境的Shell程序。同时提供一些实用的辅助工具如:虚拟主机管理、FTP用户管理、Nginx、MySQL/MariaDB、PHP的升级、常用缓存组件的安装、重置MySQL root密码、502自动重启、日志切割、SSH防护DenyHosts/Fail2Ban、备份等许多实用脚本。

LNMPA是在LNMP的基础上产生的新的扩展,目前LNMP一键安装包的用户可以直接升级到LNMPA(Nginx、MySQL、PHP、 Apache),由Nginx作为前端处理静态页面、js、图片等,Apache作为后端处理PHP,解决高并发时php-cgi的502问题,提高服务 器处理动态内容的能力及稳定性。

LNMP一键安装包官网:https://lnmp.org/

LNMP一键安装包 V1.2 已经在LinodeDiaHostingPhotonVPSDigitalOceanVR香港VPS遨游主机RamNodeBudgetVM瑞豪开源DirectSpaceKVMLAOneAsiahost新加坡VPS景文互联HostigationBuyVMLocVPS80VPSXSVPS等众多VPS的CentOS 5-7、Debian 5-8、Ubuntu 10.04-15.04的32位和64位系统上测试通过。
Read More

Nginx关闭日志

用Nginx做Web服务器,如果没有处理好日志,日志文件可能会很恐怖~10G、20G

可以修改nginx.conf 找到access_log:

access_log /dev/null;
error_log /dev/null;

这样全部把他们丢到系统的黑洞里了
不用每时每刻都往系统磁盘疯狂的读写日志了 还延长硬盘的寿命

修改完,重启Nginx( kill -HUP `cat logs/nginx.pid` )即可。

由于应用程序配置不正确 应用程序未能启动

今天在家里的电脑使用VMware虚拟机精简版 6.5的时候提示“由于应用程序配置不正确 应用程序未能启动”。只要安装下微软的Microsoft Visual C++ 2005 SP1即可。至于引起这个问题的原因可能是破解精简的时候默认电脑里安装了这个程序,所以就去给掉了。 点击下载:Microsoft Visual C++ 2005 SP1

另外以下某人说的非常有理!
vc  2005对系统级dll(如msvcrt.dll)的依赖性检查比以前更严格,不能像以前那样直接随exe打包然后简单放在安装机器的搜索目录中,操作系统自带的msvcrt.dll   只是供操作系统使用的。
以下是自己想起在学校学VC++时想起的~~
对于程序员来讲在开发中可以使用一些两种方法把问题解决:
1、静态链接:
修改项目属性,静态链接mfc库(静态链接时,会自动修改上面提到的多线程DLL为多线程)。
2、动态链接:
拷贝msvcrt.dll ,和Microsoft.VC80.CRT.manifest文件到XP机上。

Windows下Nginx以服务的方式运行

从wnmp发布以来,很多朋友就问Windows下如何将Nginx加入服务中,以便于服务器重启后自动运行,我在朋友的留言中回复了,可能不是很好找,便整理在此,便于需要的朋友查找。

假设nginx安装在c:\nginx\下:

1.下载微软服务注册工具srvany.exe, instsrv.exe, srvany-instsrv存放到c:\nginx\目录下

2.安装Nginx服务, 将命令行切换到c:\nginx\,执行下列命令

instsrv NGINX c:\nginx\srvany.exe

3.在c:\nginx\下,新建一个nginx.reg文件,输入一下内容:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NGINX\Parameters]
"Application"="C:\\nginx\\nginx.exe"
"AppParameters"=""
"AppDirectory"="C:\\nginx\\"

5.让服务与程序关联起来, 命令行执行

regedit /s nginx.reg

6.编辑启动nginx脚本start-nginx.bat(关闭脚本不用变), 让程序以服务方式运行

@ECHO OFF
net stop nginx
net start nginx
EXIT

完成~

最近一直在研究Linux下的Nginx自动安装,呵呵,鼓励大家迁移到Linux平台...

CentOS 5.2安装以后的一些初始化操作

1、建立一个普通权限的用户
因为root用户对系统具有全权的操作权限,为了避免一些失误的操作,建议在一般情况下,以一般用户登录系统,必要的时候需要root操作权限时,再通过“su -”命令来登录为root用户进行操作。
useradd pysche
passwd pysche
usermod -G wheel pysche
修改pam配置,使非wheel组用户不能使用su命令登录为root:
vi /etc/pam.d/su
找到
#auth required /lib/security/$ISA/pam_wheel.so use_uid
将行首的 # 去掉。
然后
vi /etc/login.defs
在文件末尾加上
SU_WHEEL_ONLY yes
2、安装yum加速工具,并更新系统
yum install yum-fastestmirror -y
yum upgrade -y
3、安装mlocate工具
yum install mlocate -y
4、root邮件的修改
在系统出现错误或有重要通知发送邮件给root的时候,让系统自动转送到我们通常使用的邮箱中,这样方便查阅相关报告和日志。
vi /etc/aliases
在文件末尾加上
5、locate命令设置
vi /etc/updatedb.conf
在末尾增加
DAILY_UPDATE=yes
然后运行
updatedb
6、关闭不必要的服务
比如cups
/etc/init.d/cups stop
chkconfig cups off
除了以下服务以外,其他服务默认的都可以采用刚才的方法关闭:
atd
crond
irqbalance
lvm2-monitor
microcode_ctl
network
sendmail
sshd
syslog
7、停止ipv6
vi /etc/modprobe.conf
在文件末尾加上
alias net-pf-10 off
alias ipv6 off
8、关闭SELinux
vi /etc/selinux/config
将其中的
SELINUX=enforcing
改为
SELINUX=disabled
9、安装sudo工具
yum install sudo -y
安装好了以后,修改sudo的配置
vi /etc/sudousers
# %wheel ALL=(ALL) NOPASSWORD:ALL
去掉前面的 # , 然后保存文件。
这样修改了以后,只有所有属于wheel组的用户能执行sudo命令,并且执行sudo命令时只需要输入自己的密码即可。
10、修改SSH配置
vi /etc/ssh/sshd_config
增加ServerKey的强度
找到
#ServerKeyBits 768
改为
ServerKeyBits 1024
不允许root用户直接登录
#PermitRootLogin Yes
改为
PermitRootLogin no
禁止空密码登录
找到
#PermitEmptyPasswords no
去掉前面的 #
全部修改完了以后,重启服务器
init 6