Nginx(enginex)是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔赛索耶夫为俄罗斯访问量第二的 Rambler.ru站点开发的,第一个公开版本0.1.0发布于2004年10月4日。
其将源代码以类日BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。2011年6月1日, nginx10.4发布。
一、Nginx
1.优点
1)多并发数:30000 - 50000
2)网易、腾讯等
3)新闻、论坛等
4)静态网页
5)轻量级
6)nginx+tomcat:负载均衡
Apache:模块化设计
特点:
1)多并发数:30000-50000
2)模块较少(缓存、群集)
3)轻量化(工作模式event)
二、Nginx
源代码
1.安装软件包
1)rm -rf /etc/yum.repos.d/*2)vim /etc/yum.repos.d/local.repo[name]name=localbaseurl=file:///mntgpgcheck=0enable=13)yum -y install lrzsz //安装软件包,支持鼠标上传文件4)yum -y install pcre-devel //支持地址重写功能(防盗链)5)useradd -M -s /sbin/nologin nginx //新建运行用户6)tar -zxvf nginx-1.6.0.tar.gz -C /usr/src/ //解压nginx源码包7)cd /usr/src/nginx-1.6.0/ //进入nginx源码解压目录8)./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module
详解:
--user:指定运行用户
--group:指定运行组
--with-http_stub_status_module:启用状态统计模块支持
8)make && make install
2.修改配置文件
vim /usr/local/nginx/conf/nginx.conf //编辑nginx主配置文件user nobody nginx; //指定Nginx运行用户和组worker_processes 1; //启动进程数(根据物理CPU个数设置)error_log logs/error.log info; //定义错误日志,记录级别为info(信息)pid logs/nginx.pid; //指定PID文件(存储程序进程号)位置events { use epoll; //使用epoll网络I/O模型,优化Nginx worker_connections 1024; //每个工作进程允许最大的同时连接数}http { include mime.types;//额外加载该文件(mime.types内定义各文件类型映像,如image/png png;png格式文件为图片类型;主要用于识别文件类型,什么类型使浏览器用什么方式呈现) default_type application/octet-stream; //默认响应为文件流 access_log logs/access.log main; //指定所有站点访问日志存放路径 sendfile on; //打开系统函数sendfile()提高性能 tcp_nopush on; //sendfile开启后才生效,调用tcp_cork方法 #keepalive_timeout 0; keepalive_timeout 65; //会话保持时间,指定时间内客户端无访问请求,断开连接,需连接时重新请求 gzip on; //网页压缩 server { listen 80; //定义服务器监听端口 server_name localhost; //定义服务器名及监听IP charset utf-8; //网站的字符编码 access_log logs/host.access.log main; //指定当前站点访问日志存放路径 location / { 匹配客户端所有请求,执行如下操作 root html; //网页存放目录 index index.html index.htm; //Nginx首页支持页面 } error_page 500 502 503 504 /50x.html; location = /50x.html { //错误页面 } }}
3.启动服务
1)ln -s /usr/local/nginx/sbin/* /usr/local/sbin/ 或echo "PATH=$PATH:/usr/local/nginx/sbin/" >>/etc/profile && source /etc/profile//将命令做软链接或加入到PATH环境变量,方便命令执行2)vim /etc/init.d/nginx#!/bin/bash# chkconfig: - 99 20# description: Nginx Server Control ScriptNP="/usr/local/nginx/sbin/nginx"NPF="/usr/local/nginx/logs/nginx.pid"case "$1" in start) $NP; if [ $? -eq 0 ] then echo "nginx is starting!! " fi ;; stop) kill -s QUIT $(cat $NPF) if [ $? -eq 0 ] then echo "nginx is stopping!! " fi ;; restart) $0 stop $0 start ;; reload) kill -s HUP $(cat $NPF) if [ $? -eq 0 ] then echo "nginx config file is reload! " fi ;; *) echo "Usage: $0 {start|stop|restart|reload}" exit 1esacexit 03)chmod +x /etc/init.d/nginx4)/etc/init.d/nginx start && chkconfig --level 35 nginx on5)nginx -t //检查配置文件是否有误
4.增加状态统计支持
1)vim /usr/local/nginx/conf/nginx.conf location /status { //在server下添加如下行 stub_status on; access_log off; }2)/etc/init.d/nginx restart3)http://192.168.1.10/status5.aws状态统计页面
1)awstats部署
tar -zxvf awstats-7.3.tar.gz //解压mv awstats-7.3 /usr/local/awstats //移动并重命名为/usr/local/awstats目录chown -R root:root /usr/local/awstats //设置目录所有者及所有组为root用户chmod -R 755 /usr/local/awstats/ //给予所有者完整权限chmod +x /usr/local/awstats/tools/*.pl //给予所有以.pl结尾的文件所有人拥有执行权限chmod +x /usr/local/awstats/wwwroot/cgi-bin/*.pl //给予所有以.pl结尾的文件所有人拥有执行权限
2)awstats配置
cd /usr/local/awstats/tools/./awstats_configure.pl //生成配置文件及目录(y-->none-->y-->主机名-->回车-->回车)vim /etc/awstats/awstats.www.xueluo.org.conf //编辑生成的配置文件 50 LogFile="/usr/local/nginx/logs/access.log" //修改Nginx访问日志路径mkdir /var/lib/awstats //创建图表存放目录/usr/local/awstats/wwwroot/cgi-bin/awstats.pl --update --config=www.xueluo.org //根据日志生成图表
3)生成html静态页面
mkdir /usr/local/nginx/html/awstats //创建静态页面存放目录./awstats_buildstaticpages.pl --update --config=www.xueluo.org --lang=cn --dir=/usr/local/nginx/html/awstats///根据配置文件生成中文的html静态文件到/usr/local/nginx/html/awstats/vim /usr/local/nginx/conf/nginx.conf 39 location ~ ^/awstats { 40 root /usr/local/nginx/html/awstats; 41 index index.html; 42 } 43 44 location ~ ^/icon|/css|/js|/classess { 45 root /usr/local/awstats/wwwroot/; 46 }crontab -e //新建计划任务,每隔5分钟生成图表并转换为html文件 */5 * * * * /usr/local/awstats/wwwroot/cgi-bin/awstats.pl --update --config=www.xueluo.org && /usr/local/awstats/tools/awstats_buildstaticpages.pl --update --config=www.xueluo.org --lang=cn --dir=/usr/local/nginx/html/awstats/
4)访问
http://IP/awstats.www.xueluo.org.html