• Nginx概念及基础安装--详细讲解


    1.主要内容:  

     Nginx的基础
               特性
               配置部署
               优化(了解)

    2.Nginx 是什么? 

       Nginx是一个开源的,支持高性能,高并发的www服务和代理服务软件---web服务软件。
        它是由俄罗斯人Igor Sysoev 开发的,
        优点:

            性能:占用的系统资源更少,3万并发开启10个线程小号内存200MB
                支持更多的并发连接,几万并发小事情
                达到更高的访问效率
                支持异步网络I/O事件模型epoll(linux 2.6+)
    
            功能:优秀的web服务软件,支持反向代理负载均衡及缓存服务
                                     代理软件有:lvs, Haproxy等软件,为什么选择呢?
                                                 nginx部署更简单,方便啊
                                     缓存:他又类似缓存服务软件(很少用)
                                             利用自身的proxy_cache 模块实现类Squid等专业缓存功能
    
            安装配置:更方便,简单,灵活
                    支持的操作系统:
                        UNIX,BSD,Mac OS X,  Solaris,linux,   Microsoft等操作系统
                    常用的组合环境:LNMP 或LEMP(E 取自nginx的engine x)
    

         2015年web服务软件排名:
        1.apache  32.40%
        2.Nginx   14.29%
        3.microsoft  [laɪt] [spiːd] 31.65% iis
        4.google servers 2.07%
        5.tomcat 0.4%

    3.Nginx的基本特性  

        a)可针对静态资源高速高并发访问及缓存
        b)可使用反向代理加速,并且可进行数据缓存。
        c)据有简单负载均衡、节点监控检测和容错功能
        d)支持FastCGI服务的缓存加速
            CGI全称是“公共网关接口”(Common Gateway Interface),
            HTTP服务器与你的或其它机器上的程序进行“交谈”的一种工具,
            其程序一般运行在网络服务器上。
            CGI可以用任何一种语言编写,只要这种语言具有标准输入、输出和环境变量。
            如php,perl,tcl等。
            相对于CGI来说FastCGI有两点是和其不同的。
            第一点是FastCGI的进程是永久性的,也就是说用于处理请求的进程随着请求的结束并不会退出,而是继续运行等待有新的请求来处理。
            这样就解决了CGI由于频繁的创建和关闭进程所带来的性能问题;
            第二点是FastCGI和web服务器之间的通信方式是和CGI不同的。
            并且通信时全双工的模式
        f)支持FastCGI, Uwsgi, SCGI, Memcached servers的加速和缓存
        g)具有模块化的架构
    

    4.nginx所具有其他的www服务特性:

        a)支持基于名字,端口及ip的多虚拟主机站点:基于端口, ip, 域名
    
        c)可进行简单,方便,灵活的配置和管理
        d)支持修改nginx配置,并且在代码上线时,可平滑重启
            平滑重启:    
                nginx 运行新的工作进程并从容关闭旧的工作进程,通知工作进程关闭监听套接字,
                但是继续为当前连接的客户提供服务
                所有的客户端的服务完成后,旧的工作进程被关闭
        e)可自定义访问日志格式,临时缓冲写日志操作,快速日志轮询及通过rsyslog处理日志
        f)可利用信号控制Nginx进程 kill -l
        g)支持rewrite模块,支持URI重写及正则表达式匹配
        h)支持FLV流和MP4流技术产品应用
        I)支持HTTP响应速率限制
        J)支持同一ip地址的并发连接或请求数限制
        K)支持邮件服务代理
    

    编译安装Nginx环境:

    1.准备工作:

        1.查看当前系统版本:cat /etc/redhat-release  --centos6.7
        yum -y install lrzsz
        yum -y install open gcc
        uname -a
    

        2.安装Nginx所需的pcre库及一些包    --用途(为了使Nginx具有URI重写功能rewrite)   

            通常采用yum的方式:
            配置yum源(采用网络源)
    
            yum -y install openssl openssl-devel gcc gcc-c++
            yum -y install pcre pcre-devel  
    
    
            查看版本:rpm -qa pcre
    

        3.选择版本:

            稳定版,开发版,历史稳定版
            首先稳定版(最新版晚6-10个月为佳)
    

        4.为神马安装openssl-devel,因为HTTPS服务需要这个模块
           什么是HTTPS呢?

                   a)http叫超文本传输协议,使用TCP端口80,默认情况下数据是明文传送的,
                   数据可以通过抓包工具捕获到,因此在internet上,
                   有些比较重要的站点的http服务器需要使用PKI(公钥基础结构)技术来对数据加密!
                   这也就是https了;
    
                b)https叫安全的超文本传输协议,使用TCP端口443,
                他的数据会用PKI中的公钥进行加密,
                这样抓包工具捕获到的数据包也没有办法看包中的内容,安全性大大提高,
                要解密数据的话就要用到PKI中的私钥。
                所以一些安全性比较高的网站如:网上银行,电子商务网站都需要用https访问! 
    View Code

        5.mkdir /app

          cd /app  --用于存在各种软件
    
          wget -q http://nginx.org/download/nginx-1.6.3.tar.gz  --下载软件包
    
          ls --查看当前目录下的文件,查看nginx是否下载完成
    
          useradd nginx -s /sbin/nologin -M  创建nginx用户并禁止此用户登录系统  -M 不建立使用者目录 -s使用者登入后使用的shell名称,实际这里是不允许登陆系统
          tail -1 /etc/passwd  查看用户是否存在
          
          tar xf nginx-1.6.3.tar.gz  -解压
    
          cd nginx-1.6.3   --进入解压目录
    
          ./configure   配置
               --user=nginx   进程用户权限
               --group=nginx  进程用户组权限
               --prefix=/usr/local/nginx1.4.5  设置安装路径
               --with-http_stub_status_module  激活状态信息
               --with-http_ssl_module 激活ssl功能
    
          make  编译
    
          make install 安装
    安装命令

        6.此时不算安装完,需要启动前检查配置文件语法

            /usr/local/nginx1.6.3/sbin/nginx -t
            在启动服务钱检测语法非常重要,可以防止因配置错误导致网站重启或者重新加载配置
            等对用户的影响
    

        7.启动Nginx服务

            /usr/local/nginx1.6.3/sbin/nginx
    

        8.查看服务是否启动成功,方法:查看端口

            lsof -i :80
            netstat -lnt | grep 80
    

        9.访问127.0.0.1  | curl 127.0.0.1

        10.总结:安装容易出现的错误:

            1.nginx: [emerg] getpwnam("nginx") failed
            2.访问不了页面:
                1.关闭selinux setenforce 0 --临时关闭selinux的方法getenforce(查看)
                2.关闭防火墙 /etc/init.d/iptables stop  --暂时关闭防火墙
                3.查看日志:cat /usr/local/nginx1.6.3/logs/error.log
                4.ping ip 和查看端口
    

        11. server {
            listen       80;
            server_name  localhost;
            location / {
                root   html;   ----------/home/www  ---更改网站根目录
                index  index.html index.htm;
            }

        12.重启服务

            方法1:杀进程重启

            a)
            杀进程
            lsof -i :80
            kill -9 pid
            重启
            /usr/local/nginx1.6.3/sbin/nginx
            b)
            ps -ef | grep nginx |awk '{print $2}'|  xargs kill -9
            /usr/local/nginx1.6.3/sbin/nginx
    

            方法2:配置文件重启

            a)    检查语法
    /usr         /local/nginx/sbin/nginx -t
            /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
    
            -c制定配置文件的路径,不加-c nginx会自动加载默认路径的配置文件。
    
            b)
            /usr/local/nginx/sbin/nginx -t 检查语法
            /usr/local/nginx/sbin/nginx -h  --查看帮助
            #-s signal : send signal to a master process: stop, quit, reopen, reload
            /usr/local/nginx/sbin/nginx -s  reload (reload如果语法错误不会成功,有时候不输出错误)
            c)
            把nginx的启动文件放在/etc/init.d里面
            server nginx restart
            chkconfig --add nginx ---意义是开机自启动
    
  • 相关阅读:
    JavaScript中的this相关
    Git进阶操作_1
    Git基本操作_5
    Git基本操作_4
    Git基本操作_3
    Git基本操作_2
    利用Python发送SMTP邮件
    Python JWT使用
    Python中的Asyncio 异步编程
    Python中的抽象类和接口类
  • 原文地址:https://www.cnblogs.com/renfanzi/p/5686540.html
Copyright © 2020-2023  润新知