• Nginx详解


    1.1nginx的特点
    Nginx与Apache相比有很多改进之处。比如:
    在性能上,Nginx占用的系统资源更少,能支持更多的并发连接(特别是静态小文件场景下),达到更高的访问效率;
    在功能上,Nginx不但是一个优秀的Web服务软件,还可以作为反向代理负载均衡及缓存服务使用;
    在安装配置上,Nginx更为方便,简单,灵活,可以说,Nginx是一个极具发展潜力的Web服务软件。
    1.2Nginx是什么
    nginx是一个开源的,支持高性能,高并发的www服务和代理服务软件。
    nginx因具有高并发(特别是静态资源),占用系统资源少等特性,且功能丰富而逐渐流行起来。
    nginx不但是一个优秀Web服务软件,还具有反向代理负载均衡功能和缓存服务功能,与lvs负载均衡及Haproxy等专业代理软件相比,Nginx部署起来更为简单,方便;在缓存功能方面,它又类似于Squid等专业的缓存服务软件。
    1.3
    Nginx的重要面试知识
    Nginx的重要特性
    支持高并发:能支持几万并发连接(特别是静态小文件业务环境)
    资源消耗少:在3万并发连接下,开启10个Nginx线程消耗的内存不到200MB,一个进程里最多可以有65536根线程。,进程开辟出                  来的空间,线程是共享的。
    可以做HTTP反向代理及加速缓存,即负载均衡功能,内置对RS节点服务器健康检查功能,这相当于专业的Haproxy软件或LVS的功能
    具备Squid等专业缓存软件等的缓存功能。
    支持异步网络I/O事件模型epoll(linux2.6+)。
    1.4Nginx、Lighttpd、Apache性能对比
    处理静态小文件时(小于1M的文件),Nginx、Lighttpd比Apache更有优势。Nginx处理小文件的能力很明显,Lighttpd综合能力最强。
    处理动态数据时三者差距不大(大文件指的是1-10M的文件),但是Apache更具有优势。
    实际上Apache和nginx不处理动态文件,都是交给php处理的。所以,Apache交给php处理的速度快于nginx。
    ----------------Nginx和Apache对比
    Apache是用进程来接待用户的,对资源的占用多。同步阻塞i/o模型。
    nginx是用多线程接待用户的。对资源的占用少。
    -------------什么是静态数据?不人工参与就无法改变的数据(图片视频xxx.html)。动态数据:需要从MySQL里取的。

    同步I/O模型(select)和异步I/O模型(epoll)对比:

    (注释:灰色部分代表的是I/O阻塞,红、黄、蓝代表的是进程;epoll单线程可以同时干多件事,不会有i/o阻塞,一件事缓存的时候会切换到另一件事,缓存好了又会切换回来。)

    1.5Nginx的编译安装部署

    将源码包扔到shell里面

    挂载光盘

    安装支持包:yum -y install pcre-devel openssl-devel

    解包:tar xf nginx-1.10.2.tar.gz -C /usr/src

    到包里面:cd /usr/src/nginx-1.10.2/

    创建程序用户:useradd -s /sbin/nologin -M www

    开始编译:./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module   (之前要安装gcc   gcc-c++  make  outmake)(和Apache不同的是,这个编译的时候可以加模块名--with后面的就是模块名)

    编译和安装:make && make install(完了以后echo $?查看)

    ------------------------------------------------------安装完成------------------------------------------------------------------

    cd /usr/local/nginx/     ----ls以后有4个目录,conf配置目录,logs日志,sbin命令,html网页目录

    cd conf        ----->pwd查看路径,ls查看内容有很多

    开始配置nginx:egrep -v "#|^$" nginx.conf.default > nginx.conf  (cat nginx.conf | wc -l 后22行)

     修改配置文件:vim nginx.conf       ---附备注图

     工作中服务器是几核的就配几;线程数是20倍(例:1024--20480);域名可以修改(例:server_ name www.yunjisuan.com)

     ------------------------------------配置文件配置好了-------------------------------

    绝对路径启动进程:/usr/local/nginx/sbin/nginx   (ss -antup | grep 80查看是否启动)

    (注释:重启是/usr/local/nginx/sbin/nginx -s reload;测试是否成功/usr/local/nginx/sbin/nginx -t)

    系统防火墙要关:(service iptables stop)

     返回上级目录:nginx目录,ls查看以后多了很多临时文件。

    开始做网页:cd html目录里,有两个文件,删除这两个文件。

    echo "`hostname -I` www.yunjisuan.com" > index.html    

    做一个映射文件:echo "`hostname -I` www.yunjisuan.com" >> /etc/hosts

    模拟浏览器访问:curl www.yunjisuan.com      ---出ip和域名代表成功

    以Windows方式访问:打开我的电脑--c盘--Windows--system32--drivers--etc--hosts--记事本打开修改;在末尾输入ip和域名。(或者复制到桌面修改--再扔回去,替换)???--用浏览器打开输入www.yunjisuan.com就可以了。

    ------------------------------------------现在网站就搭好了-----------------------------------------------------

     补充:tomcat主要运行java的web容器,

        Apache和nginx主要是处理静态数据的web容器。

        resin大企业用的。

        weblogic主要是政府用。

     nginx有三大功能特性:

        作为web服务器   作为反代理任务    作为缓存服务器

     虚拟多网站的构建方式有三种:

        1.基于不同端口的虚拟多网站

        2.基于不同域名的虚拟网站

        3.基于不同ip的虚拟网站

  • 相关阅读:
    什么是Spring的IOC和DI
    2021年ACP考试复习笔记-云服务器ECS知识点及练习
    个人站点搭建完成啦,欢迎前来参观~
    准备一台标准服务器(模版机)!
    正则表达式几个常用的特殊字符!
    Shell的几个重点工具
    Shell入门,关于语法的一些简单玩意儿
    Mysql for Linux的安装以及远程访问
    在学到MySQL索引时,涉及到了B树和B+树.聊一聊
    Linux的一些问题的处理(重要目录,/配置静态IP/主机名/hosts映射)
  • 原文地址:https://www.cnblogs.com/Jerry0070/p/9943022.html
Copyright © 2020-2023  润新知