nginx的特点
高性能 轻量级的web服务软件
高性能 对http并发连接的处理能力很高,单台物理服务器可支持30000-50000个并发请求。(在实际的操作中,为了维持服务器的稳定,一般会设置在20000个左右,求稳)
轻量级:nginx软件很小,安装所需的空间也很小
小服务小软件,但是支持高并发,而且稳定性强
对系统的资源消耗较低
以上是nginx的特点
国内现在基本上用的都是nginx,httd比较少见了
nginx的主要功能
1、处理静态网页:html htm 图像
2、支持反向代理(负载均衡)
3、处理动态内容
4、虚拟主机:nginx可以配置多个虚拟主机,每一个主机都可以作为一个域名或者站点 (一个nginx可以配置多个网站 )
而且每个虚拟主机都可以拥有独立的配置和资源
5、可以实现URL重定向 可以对URL的请求进行修改和重新定向
6、nginx自带缓存机制,不仅可以缓存静态文件,动态内容也可以
7、自带日志记录 主要是它自身的服务日志,和报错日志。 但是控制日志还是在/var/log/messages中
8、代理服务器,通过代理可以访问其他的后端服务器
比如淘宝所使用的就是基于nginx二次开发的 叫tengine (天极)
nginx的安装
conf:保存nginx的所有配置文件 其中nginx.conf是nginx的主要配置文件
html:保存nginx的web文件,以.html结尾的文件,图片
50x:是nginx默认的报错提示页面
logs:保存日志的目录 路径也可以自己修改
access.log 记录的是访问日志记录
error.log 记录报错日志,403 404 500等都会记录在这里面
sbin:放置nginx二进制的启动文件
nginx - t 检测nginx配置文件以及配置文件语法是否正确
nginx -v 只查看版本
nginx -V 既查看版本也查看nginx支持的配置模块
nginx -s stop restart reload
给nginx的主程序发送信号,不能开启nginx服务
yum 安装需要epel源
yum -y install nginx
但是在工作中,重要的组件 还是以编译安装为主
nginx的配置文件内容
nginx.conf
user nobody; 这个指的就是运行用户,默认使用nginx
worker_processes 1; 工作进程数量 后面的数字是根据服务器的cpu数来的 如果访问量不大,一核足够 在工作中一般是4个
pid /usr/local/nginx/run/nginx.pid; PID文件的位置
events {
worker_conneections 1024; nginx服务端可以同时并发的连接数,最多只有1024个 如果要修改的话可以看下图
一般情况下,给15000就足够了,求稳 单台服务器打开太多也没有意义
}
【root@test~】#vim /etc/security/limits.conf
soft nproc 表示最大进程数的软限制
hard nproc 最大进程数的硬限制
soft nofile 最大打开文件的限制
在修改内核文件后保存 想要生效必须要重启
http块:配置代理缓存 日志 虚拟主机 第三方模块 这个是核心
sendfile on; 可以支持文件的下载功能
keepalive_timout 65; 这里就是连接保持的时间
#gzip on; 这个默认是注释掉的 开启页面的压缩功能
server块:用来配置虚拟主机的相关设置。在http的模块中可以有多个server。
listen 80; 表示虚拟主机的监听端口,要配置多个虚拟主机端口的话,端口不能重复
server_name localhost; 这个是站点的域名
charset koi8-r; 配置字符的默认编码,支持中文 下面哪个utf添加进去即可
charset utf-8;
location块:location块只能配置在server模块当中,他的作用就是匹配uri,
一个server模块当中可以有多个location 也就是可以匹配多个location
比如:www.baidu.com/test 这个test就是uri location就是匹配这个的
nginx的四大功能模块
1.proxy:代理功能,核心功能模块之一 ,配置反向代理的功能
语法:proxy_pass 指定
定义在location中 他是根据location来的
2.headers:处理请求和头部的响应信息。主要用于获取客户端的真实IP
3.upstream:支持七层反向代理模块,只能配置在http模块中,或者stream模块中
4.stream:四层反向代理模块,不能写在http模块中,只能写在全局配置当中
如上图所示
==root指定访问页面的根目录是拼接 ==
==假如你指定的是 /var/www/html/test index.html ==
==那么在你所指定的目录下,必须要有index.html格式的文件内容 否则 403 报错 ==
或者你也可以用 alias /var/www/html/test;
==值得注意下的是 root是相对路径 但是alias是绝对路径,一个不能少 负责403报错 ==
这就是root和alias之间的区别
Location匹配格式
location / {
匹配的是URI的路径,即是路径也是URI的名称 上面的/指的就是nginx配置的家目录
root html ;
匹配的是安装路径当中的默认位置的html静态页面 ----/usr/log/nginx/html
index index.html index.htm;
都是以index开头,而且以.html .htm 为结尾的都可以读取到