使用Apache作为Nginx的PHP处理后台

Nginx本身不自带PHP处理模块,因此需要配置反向代理,将php请求交给其他的PHP解析器执行,然后返回结果给Nginx。
目前流行的方式是使用fast-cgi的方式配置PHP处理服务。其优点是比较简洁,服务器负载轻。但是缺点也是很明显的:无法查看php处理状态。
比如有时候网站因为负荷过高,php处理线程已经全部阻塞,就会造成网站无法再响应php服务。使用fastcgi方式,无法查看是哪些脚本处理时间过长,阻塞了php处理线程。
而Apache的有点就在于,可以很好的查看哪些php脚本处理时间过长,阻塞了有效进程数。

下面的方式是使用Apache最为Nginx的php处理后台:

1,先安装apache

apt-get install apache

并配置好apache正确运行在8001端口。

2,修改nginx的虚拟主机配置,其他php脚本交由apache解析

location ~ .php$ {
proxy_pass http://127.0.0.1:8001;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_connect_timeout 30;
proxy_send_timeout 30;
proxy_read_timeout 30;

client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
}

重启nginx和apache就好了。

注意,如果要查看php的处理状态,安装使用apache的监控模块就可以了。

关闭或者紧缩Nginx的错误和访问记录

网站如果流量比较大,那么Nginx记录的错误,特别是访问日志是非常多的,上百G的空间运行几个月以后也会被塞满,造成服务器运行不正常。
为了避免这种情况发生,可以关闭Nginx的错误和访问记录,也可以单独只关闭访问记录,还可以过滤掉某些不必要记录的访问。
首先是,在虚拟主机配置文件中,可以关闭访问记录:

access_log off;

如果要针对某些后缀的文件,不做访问记录,可以这样配置:

location ~ .*.(js|jpg|JPG|jpeg|JPEG|css|bmp|gif|GIF)$
{
access_log off;
}

如果需要关闭错误处理,不要这样配置:

error_log off;

这样不会真的关闭记录,nginx会记录到一个叫off的文件里面,起不到任何作用。

需要这样配置:

error_log /dev/null;

如果你只不想关闭记录非常严重的错误,可以这样配置:

error_log /var/log/nginx/error_log crit;

原文: http://www.nginx.com.cn/?p=356

关闭Nginx显示版本信息

Nginx 会在 http 头,或者出现错误页的时候会有醒目的版本号提示。
为了安全,可以关闭这些信息。以下为关闭Nginx显示版信息的设置。
方法很简单,只需在 nginx.conf 的 http { 里头加入 server_tokens 加的参数,文字加粗的部分。
重启Nginx以后就可以看到效果了。
例如:

http {
include mime.types;
default_type application/octet-stream;
server_tokens off;
client_header_timeout 3m;
client_body_timeout 3m;
send_timeout 3m;
}

LNMP相关目录和命令

安装:

wget -c http://soft.vpser.net/lnmp/lnmp0.9-full.tar.gz
tar zxvf lnmp0.9-full.tar.gz
cd lnmp0.9-full/

确认Linux发行版:

cat /etc/issue

CentOS系统下的安装

./centos.sh 2>&1 | tee lnmp.log

Debian系统下的安装

./debian.sh 2>&1 | tee lnmp.log

Ubuntu系统下的安装

./ubuntu.sh 2>&1 | tee lnmp.log

添加虚拟主机

/root/vhost.sh

删除虚拟主机

rm /usr/local/nginx/conf/vhost/xiaokyun.com.conf

安装组件
安装PureFTPd和FTP管理面板:

./pureftpd.sh

安装eAccelerator:

./eaccelerator.sh

安装ionCube:

./ionCube.sh

安装imageMagick:

./imageMagick.sh

安装memcached:

./memcached.sh

升级
升级Nginx:

./upgrade_nginx.sh

升级PHP版本:

./upgrade_php.sh

状态管理
LNMP状态管理:

/root/lnmp {start|stop|reload|restart|kill|status}

Nginx状态管理:

/etc/init.d/nginx {start|stop|reload|restart}

PHP-FPM状态管理:

/etc/init.d/php-fpm {start|stop|quit|restart|reload|logrotate}

PureFTPd状态管理:

/etc/init.d/pureftpd {start|stop|restart|kill|status}

MySQL状态管理:

/etc/init.d/mysql {start|stop|restart|reload|force-reload|status}

Memcached状态管理:

/etc/init.d/memcached {start|stop|restart}

相关图形界面程序

phpinfo : http://www.xiaokyun.com/phpinfo.php
phpMyAdmin : http://www.xiaokyun.com/phpmyadmin/
探针 : http://www.xiaokyun.com/p.php
PureFTP管理界面:http://www.xiaokyun.com/ftp/
Memcached测试页面:http://www.xiaokyun.com/memcached.php

LNMP相关目录

nginx : /usr/local/nginx
mysql : /usr/local/mysql
php : /usr/local/php
网站目录: /home/wwwroot/
Nginx日志目录:/home/wwwlogs/
/root/vhost.sh添加的虚拟主机配置文件所在目录:/usr/local/nginx/conf/vhost/

LNMP相关配置文件

Nginx主配置文件:/usr/local/nginx/conf/nginx.conf
/root/vhost.sh添加的虚拟主机配置文件:/usr/local/nginx/conf/vhost/域名.conf
MySQL配置文件:/etc/my.cnf
PHP配置文件:/usr/local/php/etc/php.ini
php-fpm配置文件:/usr/local/php/etc/php-fpm.conf
PureFtpd配置文件:/usr/local/pureftpd/pure-ftpd.conf
PureFtpd MySQL配置文件:/usr/local/pureftpd/pureftpd-mysql.conf

原文:http://lnmp.org/install.html

Nginx反向代理简单配置

都说用Nginx做反向代理简单,今天尝试了下确实简单,只要在nginx的conf文件中添加这么几句就OK了!
比如用ghs.neolee.com来反向代理ghs啦。

server
{
listen          80;
server_name     ghs.neolee.com;
location / {
proxy_pass              http://ghs.baidu.com/;
proxy_redirect          off;
proxy_set_header        X-Real-IP       $remote_addr;
proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
}
}

添加完后重启一次nginx就行。
原文:http://goo.gl/NKIjz