目录
(2)/etc/nginx/conf.d/default.conf
一、Nginx基本概述
1.介绍
nginx是一个开源、高性能,可靠的HTTP WEB服务、代理服务
2.优点
高性能、高并发、搞扩展,高可靠、热部署、应用广泛、拥有高效网络模型
3.应用场景
(1)负载均衡
(2)代理缓存
(3)静态资源
(4)安全应用场景
4.Nginx的组成
(1)Nginx二进制可执行文件
是nginx本身的框架以及相关模块等构建的一个二进制文件,所有功能都由他提供
(2)Nginx.conf文件
功能是否开启,开之后用何种方式处理请求,就由它来决定
(3)access.log
会记录HTTP的请求信息,响应信息
(4)error.log
当出现一些不可预期的问题,这个文件可以将问题找到
二、Nginx的部署
1.安装方法
(1)源码编译
版本随意,安装复杂,升级繁琐
(2)epel仓库
版本低,安装简单,配置可读性不高
(3)官方仓库
常用方法,版本新,安装简单,配置可读性高
2.安装Nginx依赖
[root@oldxu ~] yum install -y gcc gcc-c++ autoconf pcre pcre-devel make automake httpd-tools
3.配置Nginx源
[root@oldxu ~] vim /etc/yum.repos.d/nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
4.安装Nginx服务
[root@oldxu ~] yum install nginx -y
[root@oldxu ~] systemctl enable nginx
[root@oldxu ~] systemctl start nginx
5.检查Nginx版本
#检查版本
nginx -v
# 检查编译参数
nginx -V
6.Nginx目录结构
rpm -ql nginx
三、Nginx目录结构
1.主配置文件
(1)/etc/nginx.conf
配置文件,nginx主配置文件
(2)/etc/nginx/conf.d/default.conf
配置文件,默认网站配置文件
2.代理配置文件
(1)/etc/nginx/fastcgi_params
配置文件,fastcgi代理配置文件
(2)/etc/nginx/scgi_params
配置文件,scgi代理配置文件
(3)/etc/nginx/uwsgi_params
配置文件,uwsgi代理配置文件
3.编码配置文件
(1)/etc/nginx/win-utf
配置文件、nginx编码转换映射文件
(2)/etc/nginx/koi-utf
配置文件、nginx编码转换映射文件
(3)/etc/nginx/koi_win
配置文件、nginx编码转换映射文件
(4)/etc/nginx/mime.types
content-Type与扩展名
4.Nginx管理命令文件
(1)/usr/sbin/nginx
命令,nginx命令行管理终端工具
(2)/usr/sbin/nginx-debug
命令,nginx命令行管理终端工具
5.Nginx日志相关文件
(1)/var/log/nginx
目录,nginx默认存在日志目录
(2)/etc/logrotate.d/nginx
配置文件,nginx默认的日志切割
四、Nginx基本配置
1.主配置文件配置
[root@oldxu ~]vim /etc/nginx/nginx.conf
#全局
user nginx; #nginx的运行身份为nginx用户;
worker_processes 2; #启动的worker进程数量;
error_log /var/log/nginx/error.log warn;# 错误日志的路径;从warning;
pid /var/run/nginx.pid;# 存储进程的pid Number
# 4c *16GB
events {
worker_connections 1024; # 一个worker最大连接数,worker_connections * worker_processes = 最大连接数
use epoll; # 默认是采用epoll网络IO模型;
}
# 主要负责接受与响应http请求
http {
include /etc/nginx/mime.types;
# 支持的类型:
default_type application/octet-stream;
#默认类型(下载的方式)
# 1.提供下载包zip
# 2.后端并没有将代码解析成功,所以直
接成了下载;
#定义日志的格式
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;
#tcp_nopush on;
keepalive_timeout 65;
#长连接超时时间;
#gzip on;
include_/etc/nginx/conf.d/*.conf;
#包含的子文件;
}
######
#一个server就是一个站点
server {
listen 80; # 监听的端口
server_name www.oldxu.net; #站点的域名
location / { #uri路径匹配的
root /usr/share/nginx/html; #root:定义网站的路径;
index
index.html index.htm; #index:定义默认返回的页面;
# root+index =
/usr/share/nginx/html/index.html;
}
}
# 一个server就是一个站点
server {
listen 80; # 监听端口80
server_name www.oldxu.net; #站点的域名
location / { #uri路径匹配的
root /usr/share/nginx/html; #root:定义网站的路径;
index index.html index.htm;
#index:定义默认返回的页面;
# root+index
/usr/share/nginx/html/index.html;
}
}
2.Global全局模块
user www; #Nginx进程所使用的用户
worker_processes 1; #Nginx运行的
work进程数量(建议与CPu数量一致或auto)
error_log /log/nginx/error.log #Nginx错误日志存放路径
pid /var/run/nginx.pid #Nginx服务运行后产生的pid进程号
3.Events事件模块
events {
worker_connections 25535;#每个worker进程支持的最大连接数
use epoll; #事件驱动模型,epol1默认
}
4.HTTP核心模块
http { #http层开始
#使用Server配置网站,每个server{}代表一个网
站(简称虚拟主机)
'server' {
listen 80; #监听端口,默认80
server_name bgx.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结尾的文件
#include作用是:简化主配置文件写太多造成臃肿,
这样会让整体的配置文件更加的清晰。
}
#http层结束
5.检查配置语法重启服务生效
[root@oldxu code] nginx -t
[root@oldxu code] systemctl restart nginx
6.核心模块的总结
http标签主要用来解决用户的请求与响应
server标签主要用于响应具体的某一个网站
location标签主要用于匹配网站具体URI路径
http{}下允许有多个server{},一个server{}下又允许又多个location{}