Nginx教程

Nginx

本文主要是介绍Nginx,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

一、web服务介绍

    Web服务(Web Service)是基于XML和HTTPS的一种服务,其通信协议主要基于SOAP,服务的描述通过WSDL,通过UDDI来发现和获得服务的元数据。
对这个问题,我们至少有两种答案。从表面上看,Web service 就是一个应用程序,它向外界暴露出一个能够通过Web进行调用的API。这就是说,你能够用编程的方法通过Web来调用这个应用程序。我们把调用这个Web service 的应用程序叫做客户。例如,你想创建一个Web service ,它的作用是返回当前的天气情况。那么你可已建立一个ASP页面,它接受邮政编码作为查询字符串,然后返回一个由逗号隔开的字符串,包含了当前的气温和天气。

 

 

 

二、web服务器常见软件

    静态web服务器:Nginx、Apache、Lighttpd,国内主要用nginx
    动态web服务器:PHP(php容器)、Tomcat(java容器)、Resin(java容器)、IIS(微软)

 

三、Nginx与Apache的对比

 

 

 

    网络模型

        Nginx使用epoll网络模型

        Apache使用seletc网络模型

      •   举例说明:宿舍管理员
        select模型版管理员 会一个一个房间查询人员
        epoll模型版管理员 会进行检索后,直接找到需要找的人
      •   举例说明:幼儿园阿姨
        select模型版阿姨 会一个一个小朋友进行询问,确认哪个小朋友需要上厕所
        epoll模型版阿姨 会告知想上厕所小朋友自觉站到响应位置

    特征

    Apache:

      •  2.2版本非常稳定强大,2.4版本性能更强
      •  Prefork模式取消了进程创建开销,性能很高
      •  处理动态业务数据时,效率不高(瓶颈不在apache上,是因为关联到后端的引擎和数据库)
      •  高并发时消耗系统资源相对多一些
      •  基于传统的select模型(同步),高并发能力有限
      •  支持扩展库,可通过DSO,apxs方式编译安装插件
      •  功能多,更稳定,更安全,插件也多
      •  市场份额逐年递减

    

     Nginx:

      • 基于异步网络I/O模型(epoll、kqueue)
      • 具备支持高性能,高并发的特性,并发连接可达数万
      • 对小文件(小于1M的静态文件)高并发支持很好,性能很高
      • 不支持类似apache的DSO模式,扩展库必须编译进主程序(缺点)
      • 进程占用系统资源比较低
      • 支持Web,反向proxy,cache三大重点功能,并且都很优秀
      • 市场份额在逐年快速增加

    总结

      Nginx既支持静态业务又支持动态业务,且性能表示都很好,还能做前端代理,为了避免业务用多种软件增加维护成本和学习成本,建议使用Nginx

 

 

 

    

四、Nginx部署

    方式1 :yum安装

[root@web01 ~]# yum install nginx -y

  

    方式2: 二进制安装

 

    方式3:编译安装(可以自定义增加需要的模块)

[root@web01 ~]# tar -xf nginx-1.20.2.tar.gz
[root@web01 ~]# cd nginx-1.20.2
[root@web01 nginx-1.20.2]#./configure  --with-http_ssl_module
[root@web01 nginx-1.20.2]#make 
[root@web01 nginx-1.20.2]#make install 

  

五、Nginx命令介绍

    格式 :nginx [参数]

    参数 

      -v (打印版本号)

      -V (打印版本号和配置项)

      -t  (检查配置文件)

      -T(测试配置文件并启动)

      -q (打印错误日志)

      -s (操作进程)

        stop(停止)

        quit(退出)

        reopen(重启)

        reload(重载配置)

      -p (指定nginx的工作目录)

      -e (指定错误日志路径)

      -c (指定配置文件的路径)

      -g (设置一个全局的Nginx的配置项)

 

六、Nginx配置文件

    配置文件位置 /etc/nginx/conf.d/default.conf

          /etc.nginx/nginx.conf

    配置解释

      全局配置

        user(使用ngxin的用户)

        worker_processes(定义nginx的worker进程数)

            auto==cpu数量

        error_log (错误日志存放的路径)

        pid (pid存放的路径)

      模块配置

        events模块

          worker_connections (每一个worker最多同时接入的请求数量)

        http模块(web服务的模块)

          include (加载指定路径的配置)

          default_type (如果识别不了文件的类型,则使用默认的文件类型)

          log_format (定义日志格式)

          sendfile (高效读取文件)

          keepalive_timeout(长连接保持连接的时间)

            HTTP1.0 (短链接)

            HTTP1.1(长链接)

 

 

 

        server模块(网站模块,每一个server生成一个网站)

          listen(监听的端口)

          server_name(定义域名)

          location (访问路径)

            root(指定网址的路径)

            index(指定网址的索引文件)

 

 

 

          

          

          

七、搭建小游戏

    ① 将小游戏上传到linux

    ② 编辑配置文件

      vim /etc/nginx/conf.d/game.conf

server {
    listen 80;
    server_name test.mario.com;

    location / {
        root /code/html5-mario;
        index index.html;
    }
}

    ③ 测试配置文件是否正常

      [root@web01 conf.d]# nginx -t

 

     ④ 重启 nginx

      [root@web01 ~]# systemctl restart nginx

      ⑥ 在Windows上进行域名解析

      C:\Windows\System32\drivers\etc\hosts

      在该文件里面输入ip地址与设置的域名

      172.16.1.7 game.test.com

 

这篇关于Nginx的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!