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

https://w3techs.com/technologies/overview/web_server/all 记录全球web服务使用比例

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服务,在网页上输入主机ip 显示界面如下,表示正常

启动服务
显示nginx界面
3.2 非官方源yum安装

稳定版 配置目录结构不一样

非官方源与官方源配置目录结构可能会不一样,非官方源没有conf.d目录(后边会讲到此目录相关知识)
yum install -y nginx 

非官方源yum安装成功后,启动nginx服务,在网页上输入主机ip 显示界面如下,表示正常

非官方yum源安装
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 的时候自动跳转到公益页面

  1. 首先将default.conf复制一份,命名为 www.conf

    创建虚拟主机配置文件

  2. vim www.conf

    未修改虚拟主机配置文件

  3. 修改配置

修改配置
  1. 创建站点目录,首页文件,并写入内容
配置站点目录,创建文件
  1. 设置本地解析,方便测试 (本机hosts文件)
修改hosts文件
  1. 重启服务,打开浏览器访问


    重启服务
浏览器测试访问
  1. 测试跳转,访问一个不存在的页面,跳转到公益页面


    跳转页面

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
测试成功

你可能感兴趣的:(week14-网站web服务)