把简单的事情做好

0%

LAMP服务器的初始化工作

技术大大要求记录下的笔记,自己从网上查了一些资料弄明白了什么含义,写一篇日志记录一下。(环境:Centos7+php7+MariaDB10+Nginx1.9)

修改hostname

搞到一台新的服务器,二话不说名字先换掉。

1
# vi /etc/hostname

修改磁盘参数

Linux默认是开启 atime 的,每次访问一次 inode 节点都会在服务器上添加一条访问记录。在 fstab 中的第四列中添加 noatime ,可以提升性能。详见 wiki

1
# vi /etc/fstab

修改内核参数

1
# vi /etc/sysctl.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
vm.swappiness = 0
net.ipv4.neigh.default.gc_stale_time=120
net.ipv4.conf.all.rp_filter=0
net.ipv4.conf.default.rp_filter=0
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.all.arp_announce=2
net.ipv4.tcp_max_tw_buckets = 5000
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_syn_backlog = 1024
net.ipv4.tcp_synack_retries = 2
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
net.ipv4.conf.lo.arp_announce=2
# Decrease TIME_WAIT seconds
net.ipv4.tcp_fin_timeout = 15

# Recycle and Reuse TIME_WAIT sockets faster
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_tw_reuse = 1
net.core.somaxconn=65535
vm.overcommit_memory = 1
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1

fs.file-max=209708

fs.file-max 这个参数表示进程可以同时打开的最大句柄数,这个参数直接限制最大并发连接数,需要根据实际情况配置。
tcp_tw_reuse 这个参数设置为1,表示允许将TIME-WAIT状态的socket重新用于新的tcp链接,这对服务器来说很有意义,因为服务器上总会有大量TIME-WAIT状态的链接。
tcp_keepalive_time 这个参数表示当keepalive启用时,TCP发送keepalive消息的频度。默认是2小时,若将其设置的小一些,可以更快的清理无效的链接。
tcp_fin_timeout 这个参数表示当服务器主动关闭连接时,socket保持在FIN-WAIT-2状态的最大时间。
tcp_max_tw_buckets 这个参数表示操作系统允许TIME-WAIT套接字数量的最大值,如果超过这个数字。

安装第三方yum源

  • epel 对官方源的扩展
    1
    # yum -y install epel-release
  • remi 包含各种php版本,省去编译安装的麻烦
    1
    2
    # wget http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
    # rpm -ivh remi-release-7.rpm
  • rpmforge 强大的三方源,版本也比较新
    1
    2
    # wget ftp://ftp.pbone.net/mirror/ftp5.gwdg.de/pub/opensuse/repositories/home:/Kenzy:/packages/CentOS_7/x86_64/rpmforge-release-0.5.3-2.1.x86_64.rpm
    # rpm -ivh rpmforge-release-0.5.3-2.1.x86_64.rpm
  • mariadb mysql之父在mysql被收购后创建的分支,目前好多特性优于mysql
    1
    2
    3
    4
    5
    6
    7
    # cat << EOF > /etc/yum.repos.d/CentOS-Maridb.repo
    [mariadb]
    name = MariaDB
    baseurl = http://yum.mariadb.org/10.0/centos7-amd64
    gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
    gpgcheck=1
    EOF

升级yum

1
# yum -y upgrade

安装服务

等待升级完,就可以开心的使用 yum install nginx php7 MariaDB-server MariaDB-client了。然后修改一下相应的配置文件,就可以作为服务器使用了。