Nginx Web服务器入门学习

Nginx Web服务器入门学习_第1张图片

Nginx简介

近年来,Nginx在国内取得了突飞猛进的发展,很多门户网站开始提供Nginx解决方案。Nginx是一款开源的高性能HTTP服务器和反向代理服务器,同时支持IMAP/POP3代理服务。由俄罗斯设计师在2002年开发,2004年发布第一个版本。Nginx以其高性能,高可用,丰富的功能模块,简单明了的配置文档以及占用较低系统资源而著称。其采用最新的网络I/O模型,支持高达50000个并发连接。

Nginx 是一个安装非常的简单、配置文件非常简洁、Bug非常少的服务器。Nginx 启动容易,并且几乎可以做到7*24不间断运行,即使运行数个月也不需要重新启动。在不间断服务的情况下还可以进行软件版本的升级。

Nginx 同时也是一个非常优秀的邮件代理服务器(最早开发这个产品的目的之一也是作为邮件代理服务器),Last.fm 描述了成功并且美妙的使用经验。

Nginx软件的安装及指令

Nginx软件包使用源码编译安装。需要提前将其依赖包进行安装。

  1. 安装依赖包

    [root@cc]# yum -y insstall gcc gcc-c++ make pcre pcre-devel openssl zlib
  2. 源码包编译安装Nginx,在官网下载http://nginx.org

    [root@cc]#
     tar -xf nginx-1.8.0.tar.gz -C /usr/local/ //解包[root@cc]# cd 
    /usr/local/nginx-1.8.0[root@cc]# ./configure --with-http_ssl_module 
    //配置[root@cc]# make //编译[root@cc]# make install //安装
  3. 将nginx程序做个软连接,方便执行

    [root@cc]# ln -s /usr/local/nginx/sbin/nginx /usr/sbin //连接

Nginx软件包采用的是模块化的设计,模块分为内置模块和第三方模块。

Nginx服务器安装好之后,程序的主目录在/usr/local/nginx下,该目录下分别为conf(主配置文件目录),html(网页根目录),logs(日志文件目录),sbin(主程序目录)。Nginx默认无执行脚本,需要手动输入命令来管理。常用的命令如下:

  1. 启动主程序

    [root@cc]# nginx
  2. 关闭主程序

    [root@cc]# nginx -s stop
  3. 重载nginx配置

    [root@cc]# nginx -s reload

配置文件解析

nginx主配置文件为/usr/local/nginx/conf/nginx.conf,配置文件包括全局,event,http,server设置。event主要用来定义Nginx工作模式,http提供Web功能,server用来设置虚拟主机,server必须位于http内部,一个配置文件可以由多个server,一个server表示一个虚拟主机。虚拟主机包括三种类型:基于域名的虚拟主机,基于IP的虚拟主机,基于端口的虚拟主机。

[root@cc]# vim /usr/local/nginx/conf/nginx.conf

Nginx基本应用

  1. 搭建Nginx服务器

  2. Nginx配置用户认证登陆网页

  3. Nginx配置加密网站

  4. Nginx虚拟站点

Nginx高级应用

1. Nginx反向代理实现集群负载均衡

Nginx除了可以作为HTTP后端服务器之外,还是一个高效的反向代理服务器。在负载均衡的架构中,Nginx可以为我们提供非常稳定且高效的基于七层的负载均衡解决方案。可以根据轮询,IP哈希,URL哈希的方式调度后端真实服务器,也支持对后端服务器的健康检查功能。

2. Nginx地址重写规则

地址重写rewrite的概念:

—获得一个来访的URL请求,然后改写成服务器可以处理的另一个URL过程

语法:

rewrite regex replacement [选项]

优势:

—缩短URL,隐藏实际路径提高安全性

—易于用户认证和键入

—易于被搜索引擎收录

用途:

—当网站文件移动或者文件目录名称发生改变时,出于SEO(搜索引擎优化)需要,你需要保持旧的URL。

—网站改版,或者网站导航和连接发生改变,为了持续持有源连接带来的流量,需要保持旧的URL。

Nginx基本应用实例

1. 搭建Nginx服务器

在IP地址为192.168.4.5的主机上安装部署Nginx服务。

方案:使用2台RHEL7虚拟机,其中一台作为Nginx服务器(192.168.4.5)、另外一台作为测试用的Linux客户机(192.168.4.100),如图1所示。

Nginx Web服务器入门学习_第2张图片

操作:配置文件无需更改,直接启动服务。

[root@cc]# nginx //启动服务 [root@cc]# nginx -s reload //重载配置

客户端访问:

[root@cc]# firefox http://192.168.4.5

访问结果如图2:

Nginx Web服务器入门学习_第3张图片

2. 配置网站用户认证访问

操作:在配置文件里添加用户认证模块,操作如下:

[root@cc]# vim /usr/local/nginx/conf/nginx.conf

客户端访问:

[root@cc]# firefox http://192.168.4.5

访问结果如图3:

Nginx Web服务器入门学习_第4张图片

3.Nginx虚拟主机

要求:配置基于域名的Nginx虚拟主机

操作:操作如下:

1.搭建一个DNS服务器

[root@cc]# yum -y install bind bind-chroot //安装软件包[root@cc]# vim /etc/named.conf //修改主配置文件options {

客户端配置DNS服务器:

[root@cc]# vim /etc/resolv.confnameserver 192.168.4.5 //指定192.168.4.5为本机的DNS域名解析服务器

客户端测试DNS解析:

[root@cc]# host www.bb.comwww.bb.com has address 192.168.4.5[root@cc]# host www.cc.comwww.cc.com has address 192.168.4.5

2.修改Nginx配置文件,添加第二个虚拟主机,操作如下:

[root@cc]# vim /usr/local/nginx/conf/nginx.confserver { listen 80;

客户端测试:

[root@cc]# curl http://www.bb.comwww.bb.com

4.Nginx加密网站部署

要求:配置Nginx加密网站

操作:操作如下:

[root@cc]# vim /usr/local/nginx/conf/nginx.conf

客户端去访问:

[root@cc]# firefox https://www.bb.com //访问时输入https

访问结果如下:

Nginx Web服务器入门学习_第5张图片

点击我已充分了解可能的风险

最终结果如下:

www.bb.com

Nginx高级应用实例

1.Nginx反向代理实现负载均衡

要求:配置Nginx反向代理实现服务器负载均衡。

—后端Web服务器两台,可以使用httpd实现

—Nginx采用轮询的方式调用后端Web服务器

—两台Web服务器的权重要求设置为不同的值

—最大失败次数为1,失败超时时间为30秒

方案:反向代理负载均衡拓扑结构如图4:

Nginx Web服务器入门学习_第6张图片

操作:操作如下:

  1. 准备两个后端的Apache服务器,提供http服务。web1的ip地址为192.168.2.100,web2的ip地址为192.168.2.200。配置web1的http服务操作如下:

    [root@cc]#
     yum -y install httpd //装包[root@cc]# echo "web1" > 
    /var/www/html/index.html //配置主页 [root@cc]# systemctl restart httpd 
    //启服务[root@cc]# netstat -antup | grep 80 //检查监听端口
  2. web2的配置如下:

    [root@cc]#
     yum -y install httpd //装包[root@cc]# echo "web2" > 
    /var/www/html/index.html //配置主页 [root@cc]# systemctl restart httpd 
    //启服务[root@cc]# netstat -antup | grep 80 //检查监听端口
  3. 在代理服务器上配置Nginx反向代理服务器,操作如下:

    [root@cc]# vim /usr/local/nginx/conf/nginx.conf...

    客户端测试反向代理负载均衡,效果如图5:

Nginx Web服务器入门学习_第7张图片



2.Nginx地址重写规则案例

  1. a.html---->b.html

    操作如下:

    [root@cc]# vim /usr/local/nginx/conf/nginx.confrewrite a.html /b.html; //加在server里

    客户端访问:

    [root@cc]# firefox http://192.168.4.5/a.html

    结果如下:

Nginx Web服务器入门学习

  1. 2.访问192.168.4.5.跳转到www.qq.com

    操作如下:

  1. [root@cc]# vim /usr/local/nginx/conf/nginx.confrewrite ^/ http://www.qq.com ; //加在server里

    客户端访问:

    [root@cc]# firefox http://192.168.4.5/

    结果如下:

Nginx Web服务器入门学习_第8张图片



3.根据用户不同的浏览器,访问相同页面,返回不同的结果

firefox http://192.168.4.5 返回firefox

curl http://192.168.4.5 返回curl

操作如下:

[root@cc]# vim /usr/local/nginx/conf/nginx.confif($http_user_agent ~ firefox){

客户端访问:

[root@cc]# firefox http://192.168.4.5/firefox

4.如果文件不存在,则调转到首页

操作如下:

[root@cc]# vim /usr/local/nginx/conf/nginx.confif(!-e $request_filename){

客户端访问:

客户端访问:

[root@cc]# firefox http://192.168.4.5/dsad //随便输入文件名

结果如下:

Nginx Web服务器入门学习_第9张图片

rewrite语法选项详解:

rewrite regex replacement [选项]

选项:break , last, redirect, permanent

—break:停止执行其他的重写规则,完成本次请求

—last:停止执行其他重写规则,根据URL继续搜索其他location,地址栏不改变

—redirect :302临时重定向,地址栏改变,爬虫不更新URL

—permanent:301永久重定向,地址栏改变,爬虫更新URL

Nginx总结

Nginx是一个轻量级的web服务器,同样起web 服务,比apache 占用更少的内存及资源,功能很强大,应用也很广泛。高度模块化的设计,编写模块相对简单。目前越来越受到人们的喜爱。

你可能感兴趣的:(Nginx Web服务器入门学习)