目录
一、Nginx 概述
Nginx 是一个网站架设软件,与 Apache 一样可以完成网站架设。由俄罗斯程序设计师 Igor Sysoev 开发。目前新浪、网易、腾讯、Plurk 等都在使用。
Nginx,发音为[engine x],专为性能优化而开发,其最知名的优点是它的稳定性和低系 统资源消耗,以及对 HTTP 并发连接的高处理能力,单台物理服务器可支持 30000~50000 个 并发请求。
正因如此,大量提供社交网络、新闻资讯、电子商务及虚拟主机等服务的企业纷纷选择 Nginx 来提供 Web 服务。
详见 Nginx 官方网站:http://nginx.org
二、Nginx 优点
- 轻量级,同样架设 Web 服务,比 Apache 占用更少的内存及资源
- 高并发,Nginx 处理请求是异步非阻塞的,而 Apache 则是阻塞性的,在高并发下 Nginx 能保存低资源消耗高性能
- 高度模块化的设计,编写模块相对简单
- 可作为负载均衡服务器,支持 7 层负载均衡
- 静态处理性能比 Apache 高 3 倍以上,但动态处理不足,需要通过后端服务器支持,如 Apache
三、Nginx 的安装与控制
1.源码包安装 Nginx
#安装依赖包
[root@nginx-server ~]# yum -y install pcre-devel zlib-devel gcc gcc-c++ make
#创建运行用户、组
[root@nginx-server ~]# useradd -M -s /sbin/nologin nginx
#下载nginx源码包
[root@nginx-server ~]# wget http://nginx.org/download/nginx-1.22.0.tar.gz
#解压
[root@nginx-server ~]# tar -xvf nginx-1.22.0.tar.gz -C /usr/src/
#进入源码目录
[root@nginx-server ~]# cd /usr/src/nginx-1.22.0/
#预编译以及安装
[root@nginx-server nginx-1.22.0]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module &&make &&make install
#解释:--with-http_stub_status_module:加载日志统计模块
#为主程序 nginx 创建链接文件
[root@nginx-server ~]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
2.Nginx 的运行控制方法
手动方法控制 Nginx:
nginx -t 检测配置文件语法
执行 nginx 主程序启动 Nginx
[root@nginx-server ~]# nginx -t //检查配置文件是否正确
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
#启动服务
[root@nginx-server ~]# nginx
[root@nginx-server nginx-1.22.0]# netstat -utpnl |grep nginx
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 14531/nginx: master
四、网页访问Nginx 配置文件分析
1.全局配置
HTTP 配置项说明:
- access_log 指定访问日志位置
- sendfile 是否支持文件发送(下载)
- keepalive_timeout 连接保持超时
- listen 80 监听地址及端口
- server_name 设置网址名称(FQDN)
- location 根目录配置
- root 网站根目录的位置
- index 默认首页(索引页)
- error_page 内部错误的反馈页面
[root@nginx-server ~]# cd /usr/local/nginx/conf/
[root@nginx-server conf]# cp nginx.conf nginx.conf.bak
[root@nginx-server conf]# vim nginx.conf
2.I/O 事件配置
用“events{ }”界定,指定 Nginx 进程的 I/O 响应模式、每个进程的连接数等。2.6 及以上版本的内核,建议使用 epoll 模型以提高性能;每个进程的连接数应根据实际需求来定, 一般在 10000 以下,默认 1024。
use epoll;:用来设定nginx的工作模式。nginx的工作模式有select、poll、kqueue、epoll、 rtsig和/dev/poll 其中select、poll是标准工作模式,kqueue、epoll是高效工作模式。不同是: epoll 用于 linux 内核,kqueue 用于 BSD 系统。对于 epoll 是 linux 的首选参数.
worker_connections 10240;:用于定义 nginx 每个进程的最大连接数,默认是 1024,最大的 客户端连接数:worker_processe(2)×worker_connection( 10240)= max_client(20480)。 进程的最大连接数受进程的最大打开文件数量限制。需执行 ulimit -n 65536
12 events {
13 use epoll;
14 worker_connections 10240;
15 }
3.HTTP 配置及虚拟主机设置
[root@nginx-server conf]# pwd
/usr/local/nginx/conf
[root@nginx-server conf]# mkdir ../html/mail
[root@nginx-server conf]]# echo "<h1>rz.com</h1>"> ../html/index.html
[root@nginx-server conf]# echo "<h1>mail.com</h1>"> ../html/mail/index.html
[root@nginx-server conf]]# /usr/local/nginx/sbin/nginx -s reload
五、验证: