综合架构的第二个重要的服务。
掌握
- 1.nginx的安装方法
- 2.nginx的配置文件的说明
企业常用网站服务
处理静态资源: nginx apache Lighttpd
处理动态资源: tomcat(java) php(php) python(python)
nginx网站服务软件
- nginx服务程序能力强大: 支持更高并发访问(静态资源小文件),占用资源少(内存) //测试小文件3-5万没问题
- nginx服务程序功能强大: web服务器 负载均衡服务器 缓存服务器(用户访问图片---web服务器(图片资源缓存)---nfs)
nginx服务和apache服务的比较
网络模型不相同-------------->参考文章
apache-select(高并发能力较弱) vs nginx-epoll(高并发能力较强)
使用的网络模型: select epoll
宿管阿姨:
select宿管: 一个一个房间找人 遍历过程 开发复杂性低
epoll 宿管: 人员登记表 快速索引调取数据 开发复杂性高
幼儿园阿姨:
select阿姨: 一个一个询问 遍历过程
epoll阿姨: 画个圈,检查圈里是否有人 回调机制
表格对比
epoll和select对比nginx服务如何部署
-
yum安装部署
a. 官方源安装: 最新稳定版本 目录结构信息
第一个历程: 修改yum源
vim /etc/yum.repos.d/nginx.repo
-
yum安装部署
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
yum clean all //如果安装不成功的话
第二个历程: 安装软件
yum install -y nginx
- b. 非官方源安装: 历史稳定版本 web02
yum install -y nginx
注:两个版本的的目录结构不限同。
- c. 编译安装部署 灵活安装软件 web03
第一个历程: 下载nginx源码包
cd /server/tools
wget http://nginx.org/download/nginx-1.16.0.tar.gz
第二个历程: 解决软件依赖
pcre-devel: perl语言兼容正则表达式
openssl-devel: 实现HTTPS访问
yum install -y pcre-devel openssl-devel
第三个历程: 编译安装
解压软件程序
tar xf nginx-1.16.0.tar.gz
useradd -M -s /sbin/nologin www
cd nginx-1.16.0
编译配置:
>./configure --prefix=(软件安装目录) --user=worker进程管理用户 --group=worker进程管理用户组
--with-http_stub_status_module(状态监控模块) --with-http_ssl_module(实现HTTPs访问功能)
./configure --prefix=/application/nginx-1.16 --user=www --group=www
--with-http_stub_status_module --with-http_ssl_module
--without-xxxx : 编译配置关闭什么指定功能
--wiht-xxx : 编译设置开启什么指定功能
编译过程: 翻译---机器识别信息
make: 开发人员代码(c python)
编译安装:
make install
nginx配置文件的说明
图片.png1.日志切割文件
2.nginx配置文件,配置目录
3.程序与程序的接口 比如访问动态资源nginx需要和其他程序进行交互。
4.判断哪种文件类型可以处理。
5.系统启动服务
6.模块不要改动
7.管理服务的运行 和检查配置语法
8.帮助手册相关 不重要
9.站点目录---->见下图 将资源进行归类
10.缓存信息 这是nginx的另一个功能配置的,默认即可。
11.日志目录
站点目录
nginx程序配置文件说明
nginx主配置文件
cat /etc/nginx/nginx.conf
user nginx; #--- 指定worker进程管理用户,一般用虚拟用户管理
#master进程: 管理服务是否运行
#worker进程: 处理用户访问请求
#相当于一个工人,如果一个工人走了,再请了一个工人
#一个进程杀掉了,再启动一个进程
worker_processes 1; # 指定worker进程数量 进程数量<= 服务器总核心数 进程数量<= 服务器总核心数的2倍。
error_log /var/log/nginx/error.log warn; #指定错误日志存放路径
pid /var/run/nginx.pid;#指定程序pid文件存放路径 记录进程号
#判断文件是否存在 避免反复杀进程
events {
worker_connections 1024;#一个worker进程最大并发处理能力 4*1024=4096
#1024的数值跟系统socket文件打开数有关 ulimit -a 默认为1024
#如果数值变更小会导致服务首先
#也可以更改大
echo '* - nofile 65535 ' >>/etc/security /limits.conf
}
http {
include /etc/nginx/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;
keepalive_timeout 65;# --- 设置nginx为长连接 65秒连接超时
include /etc/nginx/conf.d/*.conf;#--- 加载扩展配置文件
}
nginx配置文件分为不同区域:
{}以上主配置区域: 服务运行参数信息
事件区域: 服务程序性能参数
http区域: 配置网站访问参数 如: www.oldboy.com bbs.oldboy.com
server区域: 针对每个网站进行配置 如: www.oldboy.com www.51cto.com
location区域: 匹配信息区域
if区域: 判断信息区域
网友评论