Nginx详解

作者: AKyS佐毅 | 来源:发表于2017-12-12 15:48 被阅读33次

    Nginx简介

    • Nginx是一款轻量级的Web服务器、也是一款反向代理服务器。

    Nginx功能

    • 1:可以直接支持Rails和PHP的程序。
    • 2:可作为HTTP反向代理服务器。
    • 3:作为负载均衡的服务器。
    • 4:作为邮件代理服务器。
    • 7:帮助实现前端静动分离。

    Nginx特点

    • 高稳定,高性能, 资源占用少,功能丰富, 模块化结构,支持热部署。

    Nginx项目配置及验证

    • Linux系统下的配置
    • Windows 系统下的配置

    Linux系统下的配置

    • 安装的系统环境: CentOS 6.8 64位
    • 版本1.10.2
    • 安装gcc(命令:yum install gcc-c++) 备注:可以输入gcc -v 查询版本信息,看系统是否自带安装。
    • 安装pcre(命令:yum install pure-devel)。
    • 安装zlib(命令:yum install lib lib-devel) 。
    • 安装openssl(命令:yum install openssl openssl-devel)。
      • 综合命令:yum -y install gcc lib zlib-devel pure-devel openssl openssl-devel
    • 下载源码包,稳定版本。(http://www.nginx.org/)
    • 解压文件:
      • $ tar -zxvf nginx-1.10.2.tar.gz
    • Nginx安装
      • 1:进入nginx目录之后执行 ./configure
        • 也可以指定安装路径,增加参数--prefix=/usr/nginx
        • 如果不指定路径,可以通过 whereis nginx进行查询。
        • 默认安装在/usr/local/nginx。
      • 继续执行 make 命令。
      • 继续执行 make install

    Windows 系统下的配置

    Nginx常用命令

    • 测试配置文件
      • 安装路径下的 /nginx/sbin/nginx -t
    • 启动命令
      • 安装路径下的 /nginx/sbin/nginx
    • 停止命令
      • 安装路径下的 /nginx/sbin/nginx -s stop
    • 重启命令
      • 安装路径下的 /nginx/sbin/nginx -s reload
    • 查看进程命令
      • 安装路径下的 ps -ef | grep nginx
    • 平滑重启命令
      • 安装路径下的 kill -HUP。[Nginx主进程号]。

    增加防火墙访问权限

    • 1:sudo vim /etc/sysconfig/iptables
    • 2:
      -A INPUT -p tcp -m state --state NEW -m tcp -- dport 80 -j ACCEPT 
    
    • 3:保存退出
    • 4: 重启防火墙 sudo service iptables restart

    Nginx虚拟域名配置及测试验证

    • 配置步骤:
      • 1、nginx.conf
        • 1: 编辑: sudo vim /usr/local/nginx/conf/nginx.conf
        • 2:增加: include vhost/*.conf
        • 3:保存退出。
      • 2、在 /usr/local/nginx/conf/ 目录新建vhost 文件夹。
      • 3、创建域名转发配置文件。
      • 4、 启动(重启)验证
        • 启动: ${nginx}/sbin/nginx
        • 重启: ${nginx}/sbin/nginx -s reload。 ${nginx}代表安装在系统中的路径。
      • 5: 访问验证:
        • 使用默认80端口访问验证:http://localhost:80 或者 http://127.0.0.1:80
        • : 指向端口


    Nginx本地搭建注意事项

    • 可以配置域名转发,但请一定要配置host,并且使host生效之后才可以,设置完成之后要重启浏览器。
    • 1: Linux:
      • 1: sudo vim /etc/hosts
      • 2: 添加好对应的域名及ip。
    • 2:Windows:
      • 1: 进入 C: \Windows\System32\drivers\etc
      • 2:用记事本打开 hosts文件。
      • 3:添加好对应的 域名及ip。

    Nginx conf文件配置

    • 修改本地的host
    • 将其中的参数拷贝到新创建的conf中去。


    nginx支持的负载均衡调度算法方式如下:

    • weight轮询(默认):接收到的请求按照顺序逐一分配到不同的后端服务器,即使在使用过程中,某一台后端服务器宕机,nginx会自动将该服务器剔除出队列,请求受理情况不会受到任何影响。 这种方式下,可以给不同的后端服务器设置一个权重值(weight),用于调整不同的服务器上请求的分配率;权重数据越大,被分配到请求的几率越大;该权重值,主要是针对实际工作环境中不同的后端服务器硬件配置进行调整的。

    • ip_hash:每个请求按照发起客户端的ip的hash结果进行匹配,这样的算法下一个固定ip地址的客户端总会访问到同一个后端服务器,这也在一定程度上解决了集群部署环境下session共享的问题。

    • fair:智能调整调度算法,动态的根据后端服务器的请求处理到响应的时间进行均衡分配,响应时间短处理效率高的服务器分配到请求的概率高,响应时间长处理效率低的服务器分配到的请求少;结合了前两者的优点的一种调度算法。但是需要注意的是nginx默认不支持fair算法,如果要使用这种调度算法,请安装upstream_fair模块

    • url_hash:按照访问的url的hash结果分配请求,每个请求的url会指向后端固定的某个服务器,可以在nginx作为静态服务器的情况下提高缓存效率。同样要注意nginx默认不支持这种调度算法,要使用的话需要安装nginx的hash软件包


    微信扫码关注java技术栈,获取Java面试题和架构师相关题目和视频。

    相关文章

      网友评论

        本文标题:Nginx详解

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