容器技术交流

 找回密码
 立即注册
查看: 14968|回复: 25

FAMP优化小结

[复制链接]
发表于 2009-9-12 08:09:49 | 显示全部楼层 |阅读模式
本帖最后由 hnbbs 于 2009-11-6 00:42 编辑

环境:FreeBSD+FAMP5.1.0
经过一段时间的摸索和压力测试,总结一下优化内容,与大家讨论共享。


全新编译方面:
mysql.sh      #增加分区和innodb引擎支持
--with-partition \
--with-innodb \
php.sh  php-fcgi.sh  #增加FTP支持
--enable-ftp \
nginx.sh    #增加状态监控支持
--with-http_stub_status_module \
—————————————————————————————————————
nginx方面:
1、开启状态(vhost.conf,可以填写到nginx的重写规则那栏):
        location /nginx_status {
            stub_status on;
            access_log off;
        }
   减小日志:
        location ~ .*\.(jpeg|jpg|gif|bmp|css|js|JPEG|JPG|GIF|BMP|CSS|JS)$
        {
                access_log off;
        }
2、工作进程及程序执行时间(nginx.conf)
       worker_connections  40960;
       fastcgi_buffer_size 128k;
       fastcgi_buffers 4 128k;
       fastcgi_busy_buffers_size 128k;
       fastcgi_temp_file_write_size 128k;
       fastcgi_intercept_errors on;
主要解决502错误:
       upstream backend {
           server 127.0.0.1:9000;
           server 127.0.0.1:9002;
           server 127.0.0.1:9003;
           server 127.0.0.1:9004;
       }
enable_php.conf文件中
fastcgi_pass  127.0.0.1:9000;修改为:
fastcgi_pass  backend;
fastcgi_next_upstream error timeout invalid_header http_500;
nginx-start文件中
/usr/local/nginx/sbin/spawn-fcgi -a 127.0.0.1 -p 9000 -C 28 -u daemon -f "/usr/local/php-fcgi/bin/php-cgi -d open_basedir=/home/ftp/:/tmp/:/var/tmp/"
修改为:
/usr/local/nginx/sbin/spawn-fcgi -a 127.0.0.1 -p 9000 -C 100 -u daemon -f "/usr/local/php-fcgi/bin/php-cgi -d open_basedir=/home/ftp/:/tmp/:/var/tmp/"
/usr/local/nginx/sbin/spawn-fcgi -a 127.0.0.1 -p 9002 -C 100 -u daemon -f "/usr/local/php-fcgi/bin/php-cgi -d open_basedir=/home/ftp/:/tmp/:/var/tmp/"
/usr/local/nginx/sbin/spawn-fcgi -a 127.0.0.1 -p 9003 -C 100 -u daemon -f "/usr/local/php-fcgi/bin/php-cgi -d open_basedir=/home/ftp/:/tmp/:/var/tmp/"
/usr/local/nginx/sbin/spawn-fcgi -a 127.0.0.1 -p 9004 -C 100 -u daemon -f "/usr/local/php-fcgi/bin/php-cgi -d open_basedir=/home/ftp/:/tmp/:/var/tmp/"
—————————————————————————————————————
Mysql方面:
[mysqld]
port            = 3306
socket          = /tmp/mysql.sock
skip-locking
key_buffer = 512M
max_allowed_packet = 2M
table_cache = 512
sort_buffer_size = 8M
net_buffer_length = 512K
read_buffer_size = 8M
read_rnd_buffer_size = 8M
myisam_sort_buffer_size = 128M
max_connections = 1024
query_cache_size = 128M
thread_concurrency = 4
log_slow_queries = ON
slow_query_log_file = /usr/local/mysql/var/slow.log
long_query_time = 1
—————————————————————————————————————
php方面:
/usr/local/php-fcgi/lib/php.ini
post_max_size = 80M
upload_max_filesize = 20M
—————————————————————————————————————
防火墙方面:
限制单个IP的连接数为30,可以酌情考虑
ipfw add 00110 allow tcp from any to me setup limit src-addr 30
—————————————————————————————————————
定时分割和删除日志方面(其中oyiya为网站标示):
首先建立脚本cut_nginx_log.sh
#!/bin/sh
logs_path="/var/log/"
mv ${logs_path}"nginx_log_oyiya" ${logs_path}"log_oyiya/"$(date -v -1d +%Y%m%d)".log"
kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`
rm -rf ${logs_path}"log_oyiya/"$(date -v -2d +%Y%m%d)".log"
然后修改权限
chmod 777 famp_jh1.sh
添加
00 00 * * * /usr/local/nginx/sbin/cut_nginx_log.sh
修改权限回来
chmod 500 famp_jh1.sh

评分

2

查看全部评分

 楼主| 发表于 2009-9-12 08:11:48 | 显示全部楼层
不成熟的地方欢迎大家批评指正,同时也希望大家贴出自己,共同提高。
发表于 2009-9-12 09:03:20 | 显示全部楼层
总体不错,有些配置待验证
发表于 2009-9-12 21:57:58 | 显示全部楼层
才开始接触FreeBSD,对于前面的编译不知道是怎么做的。是在“#”字符后面照着您的代码直接输入吗?我想不是吧?MYSQL好像没有安装在根目录下吧?
发表于 2009-9-12 22:02:37 | 显示全部楼层
对FAMP的了解比我还多啊!
不错
 楼主| 发表于 2009-9-12 22:45:49 | 显示全部楼层
才开始接触FreeBSD,对于前面的编译不知道是怎么做的。是在“#”字符后面照着您的代码直接输入吗?我想不是吧?MYSQL好像没有安装在根目录下吧?
向光明 发表于 2009-9-12 21:57


你把三个文件打开,看下编译选项就自然清楚了,以上三个文件的编译开关的作用分别是#字符后面的,自己可以酌情使用,非必须啊
 楼主| 发表于 2009-9-12 22:47:12 | 显示全部楼层
对FAMP的了解比我还多啊!
不错
爱洞特漏 发表于 2009-9-12 22:02


老大谦虚了,没有FAMP,我也一点都不了解FreeBSD了,感谢啊!!!
发表于 2009-9-13 15:41:04 | 显示全部楼层
感谢hnbbs ,感谢洞大!

还有有点看不明!
用nginx 运行速度不错!大家可以用ab压力测试一下!
 楼主| 发表于 2009-9-13 16:48:32 | 显示全部楼层
有啥不明白的,指出来共同探讨
发表于 2009-9-14 16:19:24 | 显示全部楼层
fastcgi_buffer_size 128k;
fastcgi_buffers 4 128k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 128k;
fastcgi_intercept_errors on;

这四条在/usr/local/nginx/conf/nginx.conf里面没有。是要自己加上去的吗?
 楼主| 发表于 2009-9-14 16:26:21 | 显示全部楼层
手动加入,主要解决fastcgi执行的参数
发表于 2009-9-14 16:34:10 | 显示全部楼层
防火墙方面:
限制单个IP的连接数为30,可以酌情考虑
ipfw add 00110 allow tcp from any to me setup limit src-addr 30

当我输入完ipfw add 00110 allow tcp from any to me setup limit src-addr 30 回车显示
ipfw:getsockopt(IP_FW_ADD):protocol not available

这个是怎么回事啊
发表于 2009-9-14 16:37:17 | 显示全部楼层
upstream backend {
           server 127.0.0.1:9000;
           server 127.0.0.1:9002;
           server 127.0.0.1:9003;
           server 127.0.0.1:9004;
       }

这个又是加到哪里呢?
 楼主| 发表于 2009-9-14 18:02:30 | 显示全部楼层
upstream backend {
           server 127.0.0.1:9000;
           server 127.0.0.1:9002;
           server 127.0.0.1:9003;
           server 127.0.0.1:9004;
       }

这个又是加到哪里呢?
rice_zhong 发表于 2009-9-14 16:37


nginx.conf
 楼主| 发表于 2009-9-14 18:03:04 | 显示全部楼层
防火墙方面:
限制单个IP的连接数为30,可以酌情考虑
ipfw add 00110 allow tcp from any to me setup limit src-addr 30

当我输入完ipfw add 00110 allow tcp from any to me setup limit src-addr 30 回车显示 ...
rice_zhong 发表于 2009-9-14 16:34


安装防火墙了吗???
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Archiver|URLOS ( 粤ICP备18087780号 )

GMT+8, 2025-5-11 10:15 , Processed in 0.028962 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表