首先要查看nginx的status需要在编译nginx的时候加上--with-http_stub_status_module。
然后在nginx.conf的server段中定义类似如下内容:
location /status {
stub_status on;
access_log off;
allow SOME.IP.ADD.RESS;
deny all;
}
访问http://ip.ad.dr.ess/status
Active connections: 1597
server accepts handled requests
3077942 3077942 7823838
Reading: 41 Writing: 83 Waiting: 1473
active connections — 对后端发起的活动连接数
server accepts handled requests — nginx 总共处理了 3077942 个连接, 成功创建 3077942 次握手 (证明中间没有失败的), 总共处理了 7823838 个请求
reading — nginx 读取到客户端的Header信息数
writing — nginx 返回给客户端的Header信息数
waiting — 开启 keep-alive 的情况下,这个值等于 active – (reading + writing),意思就是Nginx说已经处理完正在等候下一次请求指令的驻留连接
worker_processes 4; #这个与服务器的核数等同即可
upstream #这个里面的weight值越大,服务器所要承担的压力也越大;如果采用ip_hash模块时,就不能分配weight了,不然Nginx启动时会报错
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#以上配置是让后端的web服务器可以通过X-Forwarded-For获取客户端的真实IP
#允许客户端请求的最大的单个文件字节数
client_max_body_size 10m;
#缓冲区代理缓冲用户端请求的最大字节数 可以理解为先保存到本地再传给用户
client_body_buffer_size 128k;
#跟后端服务器连接的超时时间_发起握手等候响应超时时间
proxy_connect_timeout 90;
#连接成功后_等候后端服务器响应时间_其实已经进入后端的排队之中等候处理
proxy_read_timeout 90;
#后端服务器数据回传时间_就是在规定时间之内后端服务器必须传完所有的数据
proxy_send_timeout 90;
#代理请求缓存区_这个缓存区间会保存用户的头信息以供Nginx进行规则处理,一般只要能保存下头信息即可
proxy_buffer_size 8k;
#同上 告诉Nginx保存单个用的几个Buffer 最大用多大空间
proxy_buffers 4 32k;
#如果系统很忙的时候可以申请更大的proxy_buffers 官方推荐*2
proxy_busy_buffers_size 64k;
#proxy缓存临时文件的大小
proxy_temp_file_write_size 64k;
我一直是使用mysql这个数据库软件,它工作比较稳定,效率也很高。在遇到严重性能问题时,一般都有这么几种可能:
1、索引没有建好;
2、sql写法过于复杂;
3、配置错误;
4、机器实在负荷不了;
1、索引没有建好
如果看到mysql消耗的cpu很大,可以用mysql的client工具来检查。
在linux下执行
/usr/local/mysql/bin/mysql -hlocalhost -uroot -p (..更多内容)
下载nginx。
下载 后,编译。
tar zxvf nginx-0.7.66.tar.gz
cd nginx-0.7.66
./configure –prefix=/usr/local/nginx –user=nginx –group=nginx –with-http_stub_status_module –with-http_ssl_module
make
make install
然后先不要启动nginx,对conf文件做一些修改,主要是对缓存部分的设置。
vi /usr/local/nginx/conf/nginx.conf
里面对缓存的设置部分如下。写在http段里
proxy_temp_path /usr/local/nginx/proxy_temp;
proxy_cache_path /usr/local/nginx/proxycache levels=1:2 keys_zone=CachePool:300m inactive=1d max_size=3g;
server {
listen 真实的公网IP:80;
server_name localhost;
location / {
proxy_pass http://127.0.0.2;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header FORWARDED-FOR $remote_addr;
proxy_set_header Host $host;
location ~* \.(js|css|gif|png|bmp|jpeg|jpg|swf)$ {
proxy_pass http://127.0.0.2;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_cache CachePool;
#proxy_cache_key $host$request_uri$http_if_modified_since;
proxy_cache_key $host$request_uri;
proxy_cache_valid 5m;
}
}
一些解释
max_size=3g 缓存占用的最大空间3G
proxy_pass http://127.0.0.2 回头我们要把apache的监听改成监听这个IP的80端口。当然,也可以用其他端口和其他IP,这个自由设置。
proxy_cache_valid 5m; 缓存生存时间5分钟。这个时间的设置也要根据主机上的站点来具体设置,没有任何可以作为标准的说法。
设置完后,先停止 httpd。
/etc/init.d/httpd stop
/etc/init.d/directadmin stop
directadmin 也一定是要停的,不然会自动启动httpd进程。
修改文件
/etc/httpd/conf/extra/httpd-vhosts.conf
对应添加修改成
LogFormat “%O \”%r\”" homedir
NameVirtualHost 127.0.0.2:80
NameVirtualHost 真实公网IP:443
ServerAdmin webmaster@localhost
AliasMatch ^/~([^/]+)(/.*)* /home/$1/public_html$2
DocumentRoot /var/www/html
ServerName localhost
ScriptAlias /cgi-bin/ /var/www/cgi-bin/
CustomLog /var/log/httpd/homedir.log homedir
然 后安装一个apache需要的小模块。
wget http://www.openinfo.co.uk/apache/extract_forwarded-2.0.2.tar.gz
tar zxvf extract_forwarded-2.0.2.tar.gz
cd extract_forwarded
apxs -c -i -a mod_extract_forwarded.c
结束后修改/etc/httpd/conf/httpd.conf
ServerRoot “/etc/httpd”
Listen 127.0.0.2:80
#LoadModule dummy_module /usr/lib/apache/mod_dummy.so
#LoadModule php5_module /usr/lib/apache/libphp5.so
LoadModule extract_forwarded_module /usr/lib/apache/mod_extract_forwarded.so
MEForder refuse,accept
MEFrefuse all
MEFaccept 127.0.0.2
Include /etc/httpd/conf/extra/httpd-phpmodules.conf
FileETag none
User apache
Group apache
ServerAdmin admin@localhost
DocumentRoot “/var/www/html”
接下来是修改directadmin里已经建立的用户的对应配置。
cd /usr/local/directadmin/data/users
find -name ‘*.conf’ | xargs perl -pi -e ’s|真实公网IP|127.0.0.2|g’
然后修改directadmin的模板,让以后新添加的用户也自动启用对应的设置。
进 入/usr/local/directadmin/data/templates/custom 自定义模板的地方
里面需要从上层目录拷贝6个 文件进来。
ips_virtual_host.conf
virtual_host2.conf
virtual_host.conf
redirect_virtual_host.conf
virtual_host2_sub.conf
virtual_host_sub.conf
然后对应修改这六个文件中的部 分,主要就是类似的地方修改成,让directadmin生成用户配置文件的时候不写入真实IP,直接用127.0.0.2来代替。
然后就可 以了,检查确认无误。
/etc/init.d/httpd start
/usr/local/nginx/sbin/nginx (启动nginx)
检查进程,里面已经有nginx和httpd同时在跑了。初次的缓存生成后,用户再次读取静态文件的时候,就不需要麻烦 apache去了。
nginx的高级设置,这个就另外自行查看资料了。
apache方面:
1.修改banner
编译源代码,修改默认的banner
ServerTokens ProductOnly
ServerSignature Off
在apache的源码包中找到ap_release.h将
#define AP_SERVER_BASEPRODUCT “Apache”
修改为
#define AP_SERVER_BASEPRODUCT “Microsoft-IIS/6.0” (..更多内容)
1.删除之前已安装的相关软件:
yum remove -y pptpd ppp
rm -rf /etc/pptpd.conf
rm -rf /etc/ppp
删除iptables规则:
iptables --flush POSTROUTING --table nat
2.下载相关软件:
wget http://www.linuxschool.net/sources/dkms-2.0.17.5-1.noarch.rpm
wget http://www.linuxschool.net/sources/kernel_ppp_mppe-1.0.2-3dkms.noarch.rpm
wget http://www.linuxschool.net/sources/pptpd-1.3.4-1.rhel5.1.i386.rpm
wget http://www.linuxschool.net/sources/ppp-2.4.4-9.0.rhel5.i386.rpm
3.安装相关软件
yum -y install make libpcap iptables gcc-c++ logrotate tar vim-minimal cpio perl pam tcp_wrappers (..更多内容)
什么是Eaccelerator?
eAccelerator是一个自由开放源码php加速器,优化和动态内容缓存,提高了php脚本的缓存性能,使得PHP脚本在编译的状态下,对服务器的开销几乎完全消除。 它还有对脚本起优化作用,以加快其执行效率。使您的PHP程序代码执效率能提高1-10倍;
1、下载eAccelerator,地址是http://sourceforge.net/project/showfiles.php?group_id=122249
2、解压:tar -xjf eaccelerator-0.9.5--rc1.tar.bz2
3、进入解压后的目录:cd eaccelerator-0.9.5--rc1
4、进行编译:
#export PHP_PREFIX="/usr"
#$PHP_PREFIX/bin/phpize
#./configure --enable-eaccelerator=shared --with-php-config=$PHP_PREFIX/bin/php-config
#make
#make install
其中 PHP_PREFIX=”/usr” 为PHP的安装目录。
5、编译后得到eaccelerator.so所在的目录,比如我得到的是/usr/lib/php4/eaccelerator.so,记住这个路径,待会要用到。
6、修改PHP。INI,未安装ZEND时PHP。INI为/ETC/PHP。INI;安装ZEND后变为/USR/LOCAL/ZEND/ETC
# vi /usr/local/Zend/etc/php.ini (..更多内容)
产生一个空文件/swapfile,1000000个512大小的块(512MB)
[root@linuxschool /]# dd if=/dev/zero of=/swapfile bs=512 count=1000000
1000000+0 records in
1000000+0 records out
512000000 bytes (512 MB) copied, 3.87484 seconds, 132 MB/s
建立文件系统
[root@linuxschool /]#mkswap /swapfile
挂载
[root@linuxschool /]#swapon /swapfile
卸载
[root@linuxschool /]#swapoff /swapfile
增加一行:swapon /myswapfile 到/etc/rc.d/rc.local即可。
.tar
解包: tar xvf FileName.tar
打包:tar cvf FileName.tar DirName
(注:tar是打包,不是压缩,适合将很多小文件备份)
———————————————
.gz
解压1:gunzip FileName.gz
解压2:gzip -d FileName.gz
压缩:gzip FileName
.tar.gz
解压:tar zxvf FileName.tar.gz
压缩:tar zcvf FileName.tar.gz DirName
(一般常用的就是这个了)
———————————————
(..更多内容)