week14-网站web服务
1. 网站web服务 Nginx
2. 网站web服务软件部署过程 3种方式(web01 02 03)
3. 网站web服务软件配置应用
4. 网站web服务企业配置实践
5. 网站web服务网页跳转功能
6. 网站web服务如何安全访问
1. 企业web服务有哪些 ?
1.1 静态网站服务软件
nginx www.nginx.org (官方网站)
apache
web服务使用比例https://w3techs.com/technologies/overview/web_server/all 记录全球web服务使用比例
1.2 动态网站web服务软件
php
tomcat ( java )
Python
2. Nginx网站web软件概述
2.1 特点:处理高并发能力比较强,占用资源比较少
2.2 功能:网站web服务,网站负载均衡(替代LVS,haproxy),网站缓存功能 将服务器中有瓶颈服务器压力,向前推
2.3 工作原理上的优势
Nginx与Apache 对比
模型上的对比
Nginx(epoll)
Apache (select)
原理:nginx(epoll) 和 apache(select) 进行对比
select(宿舍管理员/幼儿园阿姨)
找宿舍人员---宿舍管理员---一个一个访问查询相关(遍历过程)
看孩子 ---幼儿园阿姨---一个一个小朋友进行确认是否上厕所
epoll(宿舍管理)
找宿舍人员---宿舍管理员---名单册 检索名单册
看孩子 ---幼儿园阿姨---只要有想上厕所都站在指定位置
nginx apache模型对比
3. Nginx 软件安装
三种方式
3.1 官方源yum安装
最新的稳定版 配置目录结构 目前是1.16
第一步: 更新yum源
vim /etc/yum.repos.d/nginx.repo
第二步复制一下信息到nginx.repo
[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
复制的这段信息来源
1. 2. 3. 4.第三步:yum install -y nginx
yum官方源安装
启动服务 显示nginx界面安装成功后,启动nginx服务,在网页上输入主机ip 显示界面如下,表示正常
3.2 非官方源yum安装
稳定版 配置目录结构不一样
非官方源与官方源配置目录结构可能会不一样,非官方源没有conf.d目录(后边会讲到此目录相关知识)
yum install -y nginx
非官方yum源安装非官方源yum安装成功后,启动nginx服务,在网页上输入主机ip 显示界面如下,表示正常
3.3 官方yum源安装与非官方yum源安装对比
官方yum源:安装版本及安装目录结构配置文件的对比
非官方yum源:安装版本及安装目录结构 官方yum源:相关配置文件 非官方yum源:相关配置文件
官方yum源安装在etc目录下有 conf.d 这个目录,这是一个很重要的目录,而非官方yum源安装并没有,后
边会说到conf.d目录的作用
页面的不同
官方yum源
官方yum源显示nginx界面非官方yum源
非官方yum源nginx界面3.4 编译安装
官方网站 右键获取链接 wget 复制链接下载源码包第一步:下载源码包
移动源码包 解压源码包这里下载到了root家目录,下载完成之后,为了规范,移动到/server/tools/ 并解压
第二步:解决软件依赖问题
yum install -y pcre-devel openssl-devel
pcre-devel --- 兼容perl正则信息
openssl-devel --- 实现部署HTTPS网站
解决软件依赖问题
其中一些模块 其中一些模块进入到软件目录查看内置功能模块
其中一些模块--with 代表启用后边模块的功能
--help print this message
--prefix=PATH set installation prefix 指向安装目录。
--sbin-path=PATH set nginx binary pathname 指定执行程序文件存放位置。
--modules-path=PATH set modules path 指定第三方模块的存放路径。
--conf-path=PATH set nginx.conf pathname 指定配置文件存放位置
--error-log-path=PATH set error log pathname 指定错误日志存放位置。
--pid-path=PATH set nginx.pid pathname 指定pid文件存放位置。
--lock-path=PATH set nginx.lock pathname 指定lock文件存放位置
--user=USER set non-privileged user for 指定程序运行时的非特权用户。
worker processes
--group=GROUP set non-privileged group for 指定程序运行时的非特权用户组。
worker processes
--build=NAME set build name 指向编译目录。
--builddir=DIR set build directory
--with开头的,默认是禁用的(没启动的,想使用的话需要在编译的时候加上)
--without开头的,默认是启用的(不想启用此模块时,可以在编译的时候加上这个参数)
编译安装时报错第三步:进行编译安装
注:出现此报错,是因为缺少环境变量 C compiler (C语言解释器)解决方法:
image.png继续进行编译安装:
编译安装 出现配置汇总,代表这一步进行正常
第四步:让内核进行编译
make
让内核进行编译
第五步: 编译安装
make install
编译安装
检查安装是否成功第六步:进入刚刚指定的安装目录查看是否安装成功
编译安装完成
sbin/nginx 启动nginx服务
4. nginx 软件配置应用
4.1 nginx目录介绍
nginx目录结构重要配置文件
/etc/nginx/nginx.conf 主配置文件,服务启动,重启都会先加载这个文件
/etc/nginx/conf.d/default.conf 虚拟主机模板配置文件
/etc/nginx/mime.types 只有这个文件中定义的一些资源才能处理
接口参数配置文件
- fastcgi_params PHP程序接口参数文件
- uwsgi_params Python程序接口参数文件
- scgi_params
编码转换映射文件
- koi-utf
- koi-win
- win-utf
- mime.types nginx服务媒体资源类型配置文件
- modules nginx服务模块存放目录
4.2 nginx.conf 主配置文件
清除空行后的nginx.conf 文件配置文件详解:
user nginx; 指定worker 进程用户信息
nginx 两个服务进程:
master 控制服务可以正常运行
worker processes 工作进程,处理用户请求
worker_processes 1; 指定worker进程数量, 进程数量<服务器核心数量< (最多)服务器核心数量的两倍
增加worker 进程数量,
error_log /var/log/nginx/error.log warn;
错误日志保存路径,默认指定就没有问题 定义记录错误信息的级别
1. debug 调试级别 产生输出的信息最详细
2. info 信息级别 产生输出详细信息
3. notice 通知级别 产生输出详细信息
4. warn 警告级别 产生提示可能有问题信息 (推荐)
5. error 错误级别 产生服务错误信息 (推荐)
6. crit 严重级别 产生服务错误信息
7. alert 极其严重
8,emerg 灾难级别 记录日志信息最少
pid /var/run/nginx.pid; 记录日志的pid数值信息
events {
worker_connections 1024; worker进程可以同时处理几个连接
总的最大并发连接数=worker_processes * worker_connections<系统打开文件数
}
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;
#tcp_nopush on;
keepalive_timeout 65; 设置TCP 通讯方式为长链接 0 代表短链接
#gzip on;
include /etc/nginx/conf.d/*.conf; 加载conf.d 所有以.conf 结尾的文件配置
网站主机配置文件
第一步 第二步
- error.log warn ; 类似此处错误日志以分号结尾的都叫做 nginx配置文件的指令信息
- 这些指令信息如何查询使用?
- 官方指令查询链接
第三步:可以进行搜索 查看详情
补充:nginx配置文件是由多个区块做成
1. 主区块
2. 事件区块 events {}
3. HTTP区块 HTTP {} --- 指定网站服务进行加载文件信息 访问日志信息 服务优化配置
4. server区块 server {} --- 定义网站信息 www.oldboy.com
5. location区块 location {} --- 匹配区块 匹配uri信息 ???
6. if区块 if {} --- 做判断处理
补充:
worker_connections
lsof -i:端口号/服务名
查看服务启动要打开多少文件
worker_connctionos 最大设置 65535
ulimit 设置最大打开文件数,不能太多,会对I/O磁盘写入造成压力
4.3 虚拟主机配置文件
server {
listen 80; 网站监听端口
server_name localhost; 域名信息
location / {
root /usr/share/nginx/html; 站点目录
index index.html index.htm; 定义首页文件
}
error_page 500 502 503 504 /50x.html; 错误页面显示配置
location = /50x.html { 匹配uri
root /usr/share/nginx/html;
}
}
** uri说明 ** www.baidu.com /index.html
url uri
修改配置实例操作
创建一个域名为 www.oldboy.com 网页内容为 oldboy12345 的页面 要求提示错误404 的时候自动跳转到公益页面
- 创建站点目录,首页文件,并写入内容
- 设置本地解析,方便测试 (本机hosts文件)
-
重启服务,打开浏览器访问
重启服务
-
测试跳转,访问一个不存在的页面,跳转到公益页面
跳转页面
4.4 虚拟主机打开方式
4.5 网页显示目录结构
第一步:修改配置文件
注释掉首页文件 index index.html index.htm; 不要有索引信息
在下边加上 autoindex on;
第二步: 删除首页文件
403 状态码 出现原因:
1. 对访问用户地址进行限制
2. 首页文件不存在
第三步:创建目录信息
注释掉媒体配置文件如果出现文件不能下载,注释掉nginx.conf 中媒体配置文件
媒体配置文件路径/etc/nginx/mime.types
4.6 Nginx 网页安全配置方法
配置文件示例需要使用到新的模块 ** Module ngx_http_auth_basic_module **
基础认证模块介绍官方地址
安装生成密码工具 修改配置文件 生成密码文件第一步:修改配置文件
注意:密码文件要与配置文件中指定的相同,配置文件中指定的是相对路径,也就是/etc/nginx/conf/htpasswd
访问bbs.sinopec.com 测试成功测试