美文网首页
综合架构之网站服务-nginx

综合架构之网站服务-nginx

作者: 一只打不死的小强 | 来源:发表于2019-07-30 20:43 被阅读0次

    综合架构的第二个重要的服务。

    掌握

    • 1.nginx的安装方法
    • 2.nginx的配置文件的说明

    企业常用网站服务

    处理静态资源: nginx apache Lighttpd
    处理动态资源: tomcat(java) php(php) python(python)

    nginx网站服务软件

    1. nginx服务程序能力强大: 支持更高并发访问(静态资源小文件),占用资源少(内存) //测试小文件3-5万没问题
    2. nginx服务程序功能强大: web服务器 负载均衡服务器 缓存服务器(用户访问图片---web服务器(图片资源缓存)---nfs)

    nginx服务和apache服务的比较

    网络模型不相同-------------->参考文章

    apache-select(高并发能力较弱) vs nginx-epoll(高并发能力较强)
    使用的网络模型: select epoll
    宿管阿姨:
    select宿管: 一个一个房间找人 遍历过程 开发复杂性低
    epoll 宿管: 人员登记表 快速索引调取数据 开发复杂性高

    幼儿园阿姨:
    select阿姨: 一个一个询问 遍历过程
    epoll阿姨: 画个圈,检查圈里是否有人 回调机制

    表格对比
    epoll和select对比

    nginx服务如何部署

      1. yum安装部署
        a. 官方源安装: 最新稳定版本 目录结构信息
        第一个历程: 修改yum源
        vim /etc/yum.repos.d/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
    
    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配置文件的说明

    图片.png

    1.日志切割文件
    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区域: 判断信息区域


    相关文章

      网友评论

          本文标题:综合架构之网站服务-nginx

          本文链接:https://www.haomeiwen.com/subject/obtorctx.html