Nginx安装简记(含PHP支持、虚拟主机、反向代理负载均衡) Nginx,据说高性能和稳定性比Apache还牛,并发连接处理能力强,低系统资源消耗。目前已有250多万web站点在使用 系统环境: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文件的)需注释掉,否则可能影响该类文件的重定向。 } } (责任编辑:IT) |