• Nginx服务器之基础学习


    一、Nginx介绍

    nginx:Nginx是一种软件服务器(轻量级),故它最主要的功能就是可以与服务器硬件结合,我们的应用程序可以放在nginx服务器上进行发布,已达到让网民浏览的效果。除此自外,Nginx是一种高性能的Http和反向代理服务器,同时也是一个代理邮件服务器。也就是说nginx可以发布网站,也可以实现负载均衡的功能,还可以作为邮件服务器实现收发邮件的功能。Nginx支持处理百万级的TCP连接,10以上的并发连接,具有跨平台性。

    负载均衡(Load Balance):负载均衡建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据 处理能力、提高网络的灵活性和可用性。负载均衡有两方面的含义:首先,大量的并发访问或数据流量分担到多台节点设备上分别处理,减少用户等待响应的时间;其次,单个重负载的运算分担到多台节 点设备上做并行处理,每个节点设备处理结束后,将结果汇总,返回给用户,系统处理能力得到大幅度提高。

    Nginx在 Linux中的效率较window高。

    缺点:rewrite功能不够强大,没有Apache模块多。

    Rewrite是一种服务器的重写技术,它可以使得服务器可以支持 URL 重写,是一种最新流行的服务器技术。它还可以实现限制特定IP访问网站的功能。

    二、Nginx在Centos下的安装

    1、下载nginx-1.8.1.tar.gz
    2、解压 tar -zxvf nginx-1.8.1.tar.gz 
    3、进入nginx-1.8.1 目录下 然后./configure 会出现错误 ./configure: error: C compiler cc is not found
       这是因为缺少一个 关于 gc++库
    4、安装这个库文件  
        (a)、进入root权限 
        (b)、安装gc++库  yum -y install gcc gcc-c++ autoconf automake
        (c)、出现Complete!表示安装成功 
    5、再次进入  nginx-1.8.1目录下执行 ./configure    提示 ./configure: error: the HTTP rewrite module requires the PCRE library.  (缺少PCRE library这个库文件)
    6、安装PCRE library库  进入root权限  执行 yum -y install pcre pcre-devel  出现Complete!表示安装成功
    7、再次进入  nginx-1.8.1目录下执行 ./configure   提示 ./configure: error: the HTTP gzip module requires the zlib library.(缺少zlib library库)
    8、安装zlib library库  进入root权限 执行 yum -y install zlib zlib-devel   出现Complete!表示安装成功
    9、再次进入  nginx-1.8.1目录下执行 ./configure   出现下图所示表示安装成功


    10、执行命令 make   出现 make[1]: Leaving directory `/webserver/nginx-1.8.1' 表示make完成了
    11、执行命令 make install 出现  make[1]: Leaving directory `/webserver/nginx-1.8.1' 表示nginx安装完成
    12、查看是否搭建成功 进入 usr/local 目录下查看是否有nginx目录 存在就表示安装成功。

    二、nginx下各个目录的作用

    conf: nginx 的配置信息
    html: 网页程序
    logs:日志
    sbin:nginx的应用程序,比如 启动程序就在这里面

    三、nginx的基本操作

    1、nginx的启动:可执行文件路径+ -c +配置文件全路径(nginx.conf) 

    [root@iZ28b4kreuaZ sbin]# /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

    可能会碰到的问题

    nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
    使用命令关闭占用80端口的程序
    sudo fuser -k 80/tcp
    或者是改端口号 conf 里面listener

    2、nginx的停止
    (a)、从容停止给与停止缓冲时间
         通过杀死进程停止   kill -QUIT + 主进程号
         查看进程:ps -ef|grep nginx 
         从容停止:kill -QUIT 2072
    (b)、强制停止 不管nginx能否停止就强行停止它
            pkill -9 nginx
    (c)、快速停止 
      kill -TERM +主进程号  kill -TERM 2132
    3、重启

      1、验证nginx配置文件是否正确

     方法一、(a)、验证配置文件是否正确

     方式一、进入可执行文件目录(sbin)下 执行 ./nginx -t

     方式二、/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf 

     2、重启Nginx服务

    (b)、方法一 进入可执行文件目录(sbin)下 ./nginx -s reload

     方法二:查找当前nginx进程号,然后输入命令:kill -HUP 进程号 实现重启nginx服务

     方法二、kill -HUP +主进程号  例:kill -HUP 2255  
    4、关闭工作进程
       如何关闭 worker process 进程
       kill -WINCH +工作进程号
    5、Nginx的平滑升级
       (1)升级就是升级nginx版本
             平滑升级:在升级时不会停掉在运行着的进程,这些进程会继续处理已接收的请求,但不会再接受新的请求,等这些老进程在处理完还在处理的请求后,就停止。此平滑升级的过程中,新开的进程会被处理。
             强制升级:停止服务器,进行升级,这样在运行中的进程就被影响了。
        (2) 如果平滑升级
             (a)、查看当前版本  sbin目录下 执行 ./nginx -V
             (b)、将要升级后的版本下载到本地 nginx-1.9.2.tar.gz  解压后 进入nginx-1.9.2目录下执行 ./configure  再执行 make (千万不要再执行再 make install)
             (c)、将nginx-1.9.2/objs/目录下的 可执行文件(nginx) 复制到 /usr/local/nginx/sbin/目录下(在复制前将老版本的ngin文件备份  例如:cp nginx nginx.old; nginx.old就是备份的文件)。
             (d)、在/nginx-1.9.2/ 目录下执行复制 cp -rfp objs/nginx /usr/local/nginx/sbin
             (e)、删除升级版本的文件 nginx-1.9.2 和 nginx-1.9.2.tar.gz
    6、观察进程变化
       在平滑升级中可以通过执行命令 ps -ef|grep nginx 观察进程变化。

    转自http://www.cnblogs.com/jalja/p/6104325.html 

       每天积累一点,随着时间推移你会发现量的质变。

  • 相关阅读:
    21.Merge Two Sorted Lists 、23. Merge k Sorted Lists
    34. Find First and Last Position of Element in Sorted Array
    leetcode 20. Valid Parentheses 、32. Longest Valid Parentheses 、301. Remove Invalid Parentheses
    31. Next Permutation
    17. Letter Combinations of a Phone Number
    android 常见分辨率(mdpi、hdpi 、xhdpi、xxhdpi )及屏幕适配注意事项
    oc 异常处理
    oc 类型判断
    oc Delegate
    oc 协议
  • 原文地址:https://www.cnblogs.com/shanheyongmu/p/6122628.html
Copyright © 2020-2023  润新知