目录
1、cat /etc/nginx/nginx.conf 主配置文件
2、cat /etc/nginx/conf.d/default.conf ---扩展配置文件
第四个部分:server区域信息(配置一个网站,即一个虚拟主机)
1、访问日志 access.log ---ngx_http_log_module 定义日志格式内容
2、错误日志 error.log ---Core functionality
1、利用rewrite模块实现跳转功能:http_rewrite_module
一、网站页面访问流程
00.客户端 浏览器输入网址信息点击回车ww.oldboyedu.com)
01.客户端 完成域名的解析过程(DNs)
02.客户端 直接访问相应网站服务器 建立TcP三次握手过程
03.客户端 访问网站服务器 发送HTTP请求报文多次
04.服务端 响应容户端请求 回复HTTP响应报文多次
05.客户端 浏览器看到网站页面
05.客户端 结束访问网站过程 完成TCP四次挥手过程
二、HTTP协议请求和响应
1、HTTP请求报文
1)请求行 ---请求什么信息、协议版本
请求方法: Get --读/看---获取/拿过来
Post --写/提交
请求信息: index.html(首页文件)
请求协议: HTTP:1.1
HTTP:1.0 TCP短连接 只要请求就建立三次和四次握手
HTTP:1.1 TCP长连接 在超时时间内,请求时不再建立三次和四次握手过程
HTTP:2.0 TCP长连接(优化) 提高用户并发(同时)访问效率
2)请求头 ---客户端有关信息介绍说明
请求主机信息 HOST:www.srjxx.com、blog.srjxx.com
请求设备信息 HTTP-User-Agent: firefox、IE、chrome
3)空行 ---隔离上下文、说明请求头部结束
4)请求主体 ---只有POST方法可以提交请求内容
2、HTTP响应报文
1)起始行 ---响应的状态码/状态信息等
状态码信息 访问请求是否成功
200、301(永久跳转)/302(临时跳转)、403、404、500、502
2)响应头部 ---响应的具体信息
响应的服务server:nginx
响应时间、响应类型、响应字符集。。。
3)空行 ---隔离上下文、说明响应头部结束
4)响应主体 ---响应返回的内容
三、HTTP协议资源信息
URL:统一资源定位符
URI:统一资源标识符
learning.xidian.edu.cn / portal/sdfaf/index.html
URL URI
网站页面静态资源:要什么给什么,不用做解析、速度快
index.html、aaa.jpg
网站页面动态资源:要什么需要查询数据库解析后发给客户端,可交互
aaa.asp、aaa.php
出现?、&等符号,不便搜索引擎收录
伪静态页面(实际为动态)---方便搜索引擎收录、也可实现网页、数据库交互
四、评测网站好坏的指标:
IP:根据用户IP数目进行统计 300~400百万/周
PV:页面访问量 700~800百万/周
UV:记录独立访客数量
cookie:标识用户身份信息,保存在客户端
session:记录用户的一些会话操作,如登录操作
网站并发:(压测技术)
A种理解:网站服务器每秒能够接收的最大用户请求数 √
B种理解:网站服务器每秒能够响应的最大用户请求数 √√
c种理解:网站服务器在单位时间内能够处理的最大连接数 √√√
参考网址:http://alexa.chinaz.com/alexa_more.apx
五、常用的网站服务软件
处理静态资源的服务:
apache软件:http://apache.org
nginx软件:http://nginx.org
处理动态资源的服务:
PHP: php.net 终端浏览器进行访问
Tomcat(java): 利用移动端查看网页 安卓-java
Python: 开发难度低
六、nginx软件服务特点
高并发(特别是静态资源)、占用资源少。
可作为网站服务功能(apache)、负载均衡(LVS)、缓存(Squid)软件,多系统可用、实现网络通讯时,进行的是异步网络IO模型epoll模型(apache---select模型)
epoll模型:
找人:查看人员登记信息
小朋友上厕所:上厕所的都站在某个位置
select模型:
找人:一个一个屋子去问 ---线性轮询
小朋友上厕所:一个一个去询问
七、nginx安装方式
01.yum安装
a 使用官方ym源进行安装
安装的是最新版本 软件目录结构比较标准(推荐)
1、更新官方源
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
module_hotfixes=true
2、yum安装nginx
yum install -y nginx
echo $?
3、启动nginx,检查是否安装正确
systemctl start nginx
systemctl enable nginx
4、测试是否启动
浏览器输入ip地址,看到nginx界面
b 使用非官方ym源进行安装 安装的不是最新版 目录结构会发生变化
02.编译安装软件
(1)解决依赖
下载安装软件包openssl-devel、pcre-devel
(2)下载好源码包
mkdir /server/tools
wget http://nginx.org/download/nginx-1.18.0.tar.gz
(3)解压软件、进入目录
tar -xzvf nginx-1.18.0.tar.gz
(4)编译安装
a 进行配置
./configure --prefix=... --user=... --group=...
--prefix=PATH 指定程序安装路径
--user 设置虚拟用户管理worker进程
--group 设置虚拟组管理worker进程
--with-http_..._module 开启...模块功能
--without-http_..._module 关闭...模块功能
b 进行软件编译
make 编译
高级语言变为二进制
c 编译安装
make install
八、nginx的目录结构
实现nginx日志文件定时切割
日志切割方法一:脚本
#!/bin/bash
mv /var/log/nginx/access.log /var/log/nginx/access_$(date +%F).log
systemctl restart nginx
日志切割方法二:利用专用文件切割程序--logrotate
vim /etc/logrotate.conf# see "man logrotate" for details
# rotate log files weekly ---默认切割日志的周期
weekly# keep 4 weeks worth of backlogs ---只保留几个切割后的文件
rotate 4