linode安装完lnmp简单优化思路与方法
首先修复linode防火墙问题:
[cce]vi /etc/init.d/iptables[/cce]
大约在138行case”$i”in添加:
[cce] security) $IPTABLES -t filter -P INPUT $policy \ && $IPTABLES -t filter -P OUTPUT $policy \ && $IPTABLES -t filter -P FORWARD $policy \ || let ret+=1 ;; [/cce]
修改iptables 防火墙配置文件:
[cce]vi /etc/sysconfig/iptables-config[/cce]
找到下面的2个配置项:
[cce] IPTABLES_MODULES=”ip_conntrack_netbios_ns” IPTABLES_MODULES_UNLOAD=”yes” [/cce]
修改为:
[cce] IPTABLES_MODULES=”” IPTABLES_MODULES_UNLOAD=”no” [/cce]
备注:我使用的是linode centos6,默认IPTABLES_MODULES=””,所以无需修改这个选项。
保存后重启下iptables防火墙
[cce]service iptables restart[/cce]
优化下系统配置:
[cce]vi /etc/sysctl.conf[/cce]
在最下面增加:
[cce] # Add net.ipv4.tcp_max_syn_backlog = 65536 net.core.netdev_max_backlog = 32768 net.core.somaxconn = 32768 net.core.wmem_default = 8388608 net.core.rmem_default = 8388608 net.core.rmem_max = 16777216 net.core.wmem_max = 16777216 net.ipv4.tcp_timestamps = 0 net.ipv4.tcp_synack_retries = 2 net.ipv4.tcp_syn_retries = 2 net.ipv4.tcp_tw_recycle = 1 #net.ipv4.tcp_tw_len = 1 net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_mem = 94500000 915000000 927000000 net.ipv4.tcp_max_orphans = 3276800 #net.ipv4.tcp_fin_timeout = 30 #net.ipv4.tcp_keepalive_time = 120 net.ipv4.ip_local_port_range = 1024 65535 net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 180 [/cce]
执行/sbin/sysctl –p立即生效
lnmp安装完成后,安装eaccelerator和memcache,在lnmp文件夹有相关sh文件
#安装eaccelerator
./eaccelerator.sh
#安装memcached
./memcached.sh
优化mysql:
[cce]vi /etc/my.cnf[/cce]
[cce] [client] port = 3306 socket = /tmp/mysql.sock [mysqld] port = 3306 socket = /tmp/mysql.sock skip-external-locking key_buffer_size = 64M max_allowed_packet = 1M table_open_cache = 128 sort_buffer_size = 512K net_buffer_length = 8K read_buffer_size = 512K read_rnd_buffer_size = 1M myisam_sort_buffer_size = 32M thread_concurrency = 16 skip-networking server-id = 1 max_connections=1000 wait_timeout=120 interactive_timeout=120 max_connect_errors=2000 [mysqldump] quick max_allowed_packet = 16M [mysql] no-auto-rehash [myisamchk] key_buffer_size = 20M sort_buffer_size = 20M read_buffer = 2M write_buffer = 2M [mysqlhotcopy] interactive-timeout [/cce]
备注:
lnmp默认的max_connections只有100,mysql很容易就出现mysql too many connections错误,这里我设置是1000,你可以根据自己vps情况设置。
因为我的vps只是用来放个小博客,不需要远程链接,所以我关闭了mysql远程链接,你根据自己情况选择是添加skip-networking。
nginx配置项修改:
vi /usr/local/nginx/conf/nginx.conf
找到:
[cce] worker_processes 1; fastcgi_pass unix:/tmp/php-cgi.sock; [/cce]
修改为
[cce] worker_processes 4; fastcgi_pass 127.0.0.1:9000; [/cce]
为了使以后增加的站点也是用这种方式,需要修改下/root/vhost.sh
找到
[cce]fastcgi_pass unix:/tmp/php-cgi.sock;[/cce]
修改为
[cce]fastcgi_pass 127.0.0.1:9000;[/cce]
修改php-ftpm配置文件:
/usr/local/php/etc/php-fpm.conf
查找:
[cce] <value name="listen_address">/tmp/php-cgi.sock</value> <value name="max_children">5</value> <value name="request_terminate_timeout">0s</value> [/cce]
修改为:
[cce] <value name="listen_address">127.0.0.1:9000</value> <value name="max_children">10</value> <value name="request_terminate_timeout">60s</value> [/cce]
备注:
这里我只开了10个php-fpm进程,你可以根据自己内存调整
request_terminate_timeout我修改为60秒,是为了防止有php脚本使用file_get_contents()函数超时导致php进程一直卡住
php.ini这里就不做修改了,lnmp禁用了不少函数,如果你需要使用其中某个函数去除即可。
重启下lnmp:
/root/lnmp restart
删除/home/wwwroot/下除phpmyadmin以外的文件,
phpmyadmin改成别的名字
本文由瞎悟学习网作者:hiovo 发表,其版权均为本站所有,文章内容系作者个人观点瞎悟学习,不代表对观点赞同或支持。如需转载,请注明文章来源。