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