Nginx概述
nginx是一个开源且高性能、可靠的Http Web 服务、代理服务。
为什么选择Nginx?
Nginx非常
轻量功能模块少
代码模块化(易读,便于二次开发,对于开发人员比较友好)
网络模型
Select模型
用户发起一次请求,select模型就会进行一次遍历扫描,从而导致性能低下。
Epool模型
当用户发起请求,epool模型会直接进行处理,效率高效,并无连接限制。
★ Nginx使用的网络模型
Nginx默认使用Epool 模型
Nginx的典型应用场景

Nginx的三种安装方式
源码编译安装
特点:版本随意 、安装复杂 、升级繁琐 、规范 、便于管理
epel安装
特点: 版本较低 、安装简单 、配置不易读
官方仓库
特点: 版本较新、安装简单、配置易读
★ Nginx的安装方式
安装Nginx的依赖
yum install -y gcc gcc-c++ autoconf pcre pcre-devel make automake wget httpd-tools vim tree配置官方的yum源
vim /etc/yum.repos.d/nginx.repo
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1安装Nginx服务
yum install -y nginx启动并设置开机自启
systemctl start nginx
systemctl enable nginxNginx的常用命令
#查看nginx的版本
nginx -v
#检查nginx的语法是否存在错误
nginx -t
#启动nginx的两种方式
1.systemctl start nginx
2./usr/sbin/nginx
#停止nginx的两种方式
1.systemctl stop nginx
2./usr/sbin/nginx -s stop
#重启nginx
systemctl restart nginx
#nginx重载的两种方式
1.systemctl rload nginx
2./usr/sbin/nginx -s reloadNginx的相关文件
1.Nginx的主配置文件
路径 | 类型 | 作用 |
|---|---|---|
/etc/nginx/nginx.conf | 配置文件 | nginx的主配置文件 |
/etc/nginx/conf.d/default.conf | 配置文件 | 默认网站配置文件 |
2.Nginx的代理相关参数文件
路径 | 类型 | 作用 |
|---|---|---|
/etc/nginx/fastcg_params | 配置文件 | Fastcgi代理配置文件 |
/etc/nginx/scgi_params | 配置文件 | scgi代理配置文件 |
/etc/nginx/uwsgi_params | 配置文件 | uwsgi代理配置文件 |
3.Ngin'x编码相关配置文件
路径 | 类型 | 作用 |
|---|---|---|
/etc/nginx/win-utf | 配置文件 | Nginx编码转换映射文件 |
/etc/nginx/koi-utf | 配置文件 | Nginx编码转换映射文件 |
/etc/nginx/koi-win | 配置文件 | Nginx编码转换映射文件 |
/etc/nginx/mime.types | 配置文件 | Content-Type与扩展名 |
4.Nginx管理相关命令
路径 | 类型 | 作用 |
|---|---|---|
/usr/sbin/nginx | 命令 | Nginx命令行管理终端工具 |
/usr/sbin/nginx-debug | 命令 | Nginx命令行与终端调试工具 |
5.Nginx日志相关目录与文件
路径 | 类型 | 作用 |
|---|---|---|
/var/log/nginx | 目录 | Nginx默认存放日志目录 |
/etc/logrotate.d/nginx | 配置文件 | Nginx默认的日志切割 |
Nginx主配置文件说明
文件头部
user www; #Nginx进程所使用的用户
worker_processes 1; #Nginx运行的work进程数量(建议与CPU数量一致或auto)
error_log /log/nginx/error.log #Nginx错误日志存放路径
pid /var/run/nginx.pid #Nginx服务运行后产生的pid进程号EventModule(事件驱动模块)
events {
worker_connections 25535; #每个worker进程支持的最大连接数
use epoll; #事件驱动模型, epoll默认
}http内核模块(HttpCoreModule)
#http层开始
http {
#包含资源类型文件
include /etc/nginx/mime.types;
#默认以下载方式传输给浏览器(前提是该资源在mime.types中无法找到)
default_type application/octet-stream;
#日志格式
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
#访问日志
access_log /var/log/nginx/access.log main;
#高效文件传输
sendfile on;
#搭配sendfile使用
#tcp_nopush on;
#长连接超时时间
keepalive_timeout 65;
#是否开启压缩
#gzip on;
#使用Server配置网站, 每个Server{}代表一个网站(简称虚拟主机)
'server' {
listen 80; #监听端口, 默认80
server_name oldboy.com; #提供的域名
access_log access.log; #该网站的访问日志
#控制网站访问路径
'location' / {
root /usr/share/nginx/html; #存放网站源代码的位置
index index.html index.htm; #默认返回网站的文件
}
}
...
#第二个虚拟主机配置
'server' {
...
}
include /etc/nginx/conf.d/*.conf; #包含/etc/nginx/conf.d/目录下所有以.conf结尾的文件
} #http结束层http server location扩展了解项
http{}层下允许有多个**Server{}层,一个Server{}层下又允许有多个**Location
http{} 标签主要用来解决用户的请求与响应。
server{} 标签主要用来响应具体的某一个网站。
location{} 标签主要用于匹配网站具体URL路径
评论区