Nginx 安装笔记(含PHP支持、虚拟主机、反向代理负载均衡)

系统环境:RHEL5 [ 2.6.18-8.el5xen ]
软件环境:
nginx-0.7.17
lighttpd-1.4.20.tar.gz
pcre-6.6-1.1
pcre-devel-6.6-1.1
php-5.1.6-5.el5
参考下载地址:
http://sysoev.ru/nginx/nginx-0.7.17.tar.gz (最新稳定版为0.6.32)
http://www.lighttpd.net/download/lighttpd-1.4.20.tar.gz
##########################################################################
一、安装支持软件
1、安装lighttpd以提取spawn-fcgi (如果站点不包含php页面,可以不安装spaw-fcgi、PHP)
shell> tar zxvf lighttpd-1.4.20.tar.gz
shell> cd lighttpd-1.4.20/
shell> ./configure && make
shell> cp -p src/spawn-fcgi /usr/sbin/spawn-fcgi
2、安装pcre和php(以下软件)
可使用RHEL5自带的rpm包安装,过程略。

二、安装nginx
shell> tar zxvf nginx-0.7.17.tar.gz
shell> cd nginx-0.7.17/
shell> ./configure --prefix=/opt/nginx --with-http_stub_status_module --with-http_ssl_module
shell> make && make install
shell> ln -sf /opt/nginx/sbin/nginx /usr/sbin/

三、nginx运行控制
1、检查配置文件有无语法错误
shell> nginx -t
2、启动(不带任何参数直接运行即可)
shell> nginx
3、重新加载nginx配置
shell> killall -s HUP nginx #//或者 killall -1 nginx
4、处理完当前请求后退出nginx
shell> killall -s QUIT nginx #//或者 killall -3 nginx

四、nginx配置用例
1、常规配置
shell> vi /opt/nginx/conf/nginx.conf
worker_processes 1; #//工作进程数
events {
use epoll; #//增加该事件提高I/O性能
work_connections 4096;
}
http {
include mime.types;
default_types application/octet-stream;
sendfile on;
tcp_nodelay on
keepalive_timeout 60;
server {
listen 80; #//设置监听端口,注意不要和Apache等其他Web程序冲突
server_name www.linux.org; #//指定使用的主机名
charset utf-8; #//指定站点文件的默认编码
location / {
root html; #//设置网站根目录
index index.html index.html;
}
error_page 500 502 503 504 /50x.html
location = /50x.html {
root html;
}
}
}
2、添加状态监控
shell> vi /opt/nginx/conf/nginx.conf #//增加以下内容
location ~ ^/NginxStatus/ {
stub_status on;
access_log off;
}
shell> killall -1 nginx
#//使用浏览器访问 http://nginx_server_ip/NginxStatus/ 即可看到状态统计页面。(三个数字分别表示:总共处理连接数、成功创建的握手次数、总共处理的请求数)
3、通过FastCGI方式支持PHP语言
1)启动FastCGI服务(用php-cgi做实际处理php页面的程序,用spawn-fcgi是便于同时开启多个php-cgi进程——“-C”选项控制子进程数)
shell>/usr/sbin/spawn-fcgi -a 127.0.0.1 -p 9000 -f /usr/bin/php-cgi -C 10
2)修改/opt/nginx/conf/nginx.conf配置文件,添加以下内容:
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
3)重新加载配置
shell> killall -1 nginx
4、虚拟主机设置
修改nginx.conf文件,增加一个server {……}配置即可,每个虚拟主机的参数可以独立配置。
http {
server {
listen 80;
server_name www.vhost1.com;
access_log logs/vhost1.access.log main;
location / {
index index.html;
root /var/www/vhost1; #//第1个虚拟主机的网页根目录
}
}
server {
listen 80;
server_name www.vhost2.com;
access_log logs/vhost2.access.log main;
location / {
index index.html;
root /var/www/vhost2; #//第2个虚拟主机的网页根目录
}
}
}
5、基于反向代理的负载均衡
修改nginx.conf文件,增加upstream配置,指定对应服务器群的IP和权重,并调整server段中的网页根目录配置。使访问nginx服务器的HTTP请求分散到Web群集中的服务器来处理。
http {
upstream my_web_cluster {
server 192.168.2.11:8000 weight=3;
server 192.168.2.12:8000 weight=3;
server 192.168.2.13:8000 weight=3;
server 192.168.2.14:8000 weight=3;
server 192.168.2.15:8000 weight=3;
}
server {
listen 80;
server_name www.domain.com;
location / {
proxy_pass http://my_web_cluster;
proxy_set_header x-real-IP $remote_addr;
}
#//注:其他的location配置段(如关于.php文件的)需注释掉,否则可能影响该类文件的重定向。
}
}

(0)

相关推荐

  • 实现Nginx中使用PHP-FPM时记录PHP错误日志的配置方法

    nginx与apache不一样,在apache中可以直接指定php的错误日志,那样在php执行中的错误信息就直接输入到php的错误日志中,可以方便查询. 在nginx中事情就变成了这样:nginx只对页面的访问做access记录日志.不会有php的error log 信息.nginx把对php的请求发给php-fpm fastcgi进程来处理,默认的php-fpm只会输出php-fpm的错误信息,在php-fpm的errors log里也看不到php的errorlog. 原因是php-fpm的配

  • Nginx和PHP-FPM的启动、重启、停止脚本分享

    服务器上的Nginx和PHP都是源码编译安装的,不像ubuntu一样有自带service启动脚本,所以不支持类似以前的nginx (start|restart|stop|reload)了.自己动手丰衣足食.以下脚本应该在RHEL, Fedora, CentOS下都适用. 一.Nginx启动脚本/etc/init.d/nginx 复制代码 代码如下: #!/bin/bash # # Startup script for Nginx - this script starts and stops th

  • Windows下Nginx+PHP5的安装与配置方法

    以下是我在 Windows 2003 安装中 Nginx 和 PHP5.2 的步骤,但windows版本的nginx性能要比Linux/Uninx版本的Nginx差太多. 安装 PHP5首先,从 http://www.php.net/downloads.php 下 载最新的 PHP5.2.9-2 Windows 版本,解压至 C:\php,把压缩包中的 php.ini-recommended,更名为 php.ini,然后打开修改几个选项: error_reporting = E_ALLdispl

  • 安装配置php-fpm来搭建Nginx+PHP的生产环境

    nginx本身不能处理PHP,它只是个web服务器,当接收到请求后,如果是php请求,则发给php解释器处理,并把结果返回给客户端. nginx一般是把请求发fastcgi管理进程处理,fascgi管理进程选择cgi子进程处理结果并返回被nginx 本文以php-fpm为例介绍如何使nginx支持PHP 一.编译安装php-fpm 什么是PHP-FPM PHP-FPM是一个PHP FastCGI管理器,是只用于PHP的,可以在 http://php-fpm.org/download下载得到. P

  • PHP使用Nginx实现反向代理

    一.代理服务器 1.什么是代理服务器 代理服务器,客户机在发送请求时,不会直接发送给目的主机,而是先发送给代理服务器,代理服务接受客户机请求之后,再向主机发出,并接收目的主机返回的数据,存放在代理服务器的硬盘中,再发送给客户机. 2.为什么要使用代理服务器 1)提高访问速度 由于目标主机返回的数据会存放在代理服务器的硬盘中,因此下一次客户再访问相同的站点数据时,会直接从代理服务器的硬盘中读取,起到了缓存的作用,尤其对于热门站点能明显提高请求速度. 2)防火墙作用 由于所有的客户机请求都必须通过代

  • nginx调用php-fpm出错解决方法和nginx配置详解

    装完了nginx和php-5.5,配置好了nginx调用php后,就开始启动php-fpm. 使用下面的命令 复制代码 代码如下: /usr/local/php/sbin/php-fpm 就可以启动了. 在nginx的目录中创建个php的检测脚本index.php 结果在打开http://localhost/index.php 悲剧的发现居然无法打开 .查看日志文件,看了下报错原因 复制代码 代码如下: 2013/07/01 22:34:26 [error] 3214#0: *64 FastCG

  • CentOS 6.4安装配置LNMP服务器(Nginx+PHP+MySQL)

    准备篇 1.配置防火墙,开启80端口.3306端口vi /etc/sysconfig/iptables-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT #允许80端口通过防火墙-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT #允许3306端口通过防火墙 备注:很多网友把这两条规则添加到防火墙配置的最后一行,导致防火墙启动失败, 正确

  • CentOS+Nginx+PHP+MySQL详细配置(图解)

    一.安装MySQL 目前web服务器已经很少有跑静态页面的,如果要跑动态网站那当然就离不开数据库,虽然在以前文章中有写MySQL是怎么安装的,但是感觉好久没装MySQL,现在只把步骤贴出来,就不做过多的讲解了 #useradd mysql #tar zxvf mysql-5.0.40.tar.gz #cd mysql-5.0.40 #./configure --prefix=/usr/local/mysql #make && make install #/usr/local/mysql/b

  • mac下安装nginx和php

    一.前话:1.1.环境选择:重新在mac上配置php,原本mac上就自带有apach.php以及pgsql,如果图简单的话,直接用就可以了,不过在安装前我仔细思考了一下几个问题:选apache还是nginx:两个我了解的都比较少,相对而言我接触nginx比较多,服务器用的也是nginx,没办法谁叫nginx负载高呢.为了更好的接触nginx的环境,我决定还是统一下环境,方便今后使用,这是这次的主要关键:安装php:Mac os自带了php,好像是5.3.8,版本比较落后,不过这不碍事,因为以前我

  • nginx安装及配置支持php的教程(全)

    pcre-7.8.tar.gz  正则表达式下载地址:ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/  nginx-0.7.26.tar下载地址:http://www.nginx.net/   php-5.2.6.tar.bz2下载地址:http://www.php.net/releases/  php-5.2.6-fpm-0.5.9.diff.gz  php-fpm是为PHP打的一个FastCGI管理补丁,可以平滑变更php.ini

随机推荐