Nginx简述以及配置

Nginx


Nginx的产生

没有听过Nginx?那么一定听过它的"同行"Apache吧!Nginx同Apache一样都是一种WEB服务器。基于REST架构风格,以URI或者URL作为沟通依据,通过HTTP协议提供各种网络服务。然而,这些服务器在设计之初受到当时环境的局限,例如当时的用户规模,网络带宽,产品特点等局限并且各自的定位和发展都不尽相同。这也使得各个WEB服务器有着各自鲜明的特点。

Apache的发展时期很长,而且是毫无争议的世界第一大服务器。它有着很多优点:稳定、开源、跨平台等等。它出现的时间太长了,它兴起的年代,互联网产业远远比不上现在。所以它被设计为一个重量级的。它不支持高并发的服务器。在Apache上运行数以万计的并发访问,会导致服务器消耗大量内存。操作系统对其进行进程或线程间的切换也消耗了大量的CPU资源,导致HTTP请求的平均响应速度降低。

这些都决定了Apache不可能成为高性能WEB服务器,轻量级高并发服务器Nginx就应运而生了。

俄罗斯的工程师Igor Sysoev,他在为Rambler Media工作期间,使用C语言开发了Nginx。Nginx作为WEB服务器一直为Rambler Media提供出色而又稳定的服务。然后呢,Igor Sysoev将Nginx代码开源,并且赋予自由软件许可证。

由于:

  • Nginx使用基于事件驱动架构,使得其可以支持数以百万级别的TCP连接
  • 高度的模块化和自由软件许可证是的第三方模块层出不穷(这是个开源的时代啊~)
  • Nginx是一个跨平台服务器,可以运行在Linux,Windows,FreeBSD,Solaris, AIX,Mac OS等操作系统上
  • 这些优秀的设计带来的极大的稳定性

所以,Nginx火了!


什么是nginx

Nginx是一款自由的、开源的、高性能的HTTP服务器和反向代理服务器;同时也是一个IMAP、POP3、SMTP代理服务器;Nginx可以作为一个HTTP服务器进行网站的发布处理,另外Nginx可以作为反向代理进行负载均衡的实现。之前keepalived请求服务只能是本地服务器之间跳转(一个局域网里面),无法实现跨域访问,但是往往很多电商平台,他们的服务器不是集中在一个机房(局域网)里面的,有的在北京,有的在上海、杭州这些地方,要想让服务继续执行,这里就得用nginx进行反向代理模式,使之能够跨域访问在高连接并发的情况下,Nginx是Apache服务器不错的替代品。(你就把他想成能跨域访问的Apache服务器)

配置nginx

开机状态为四个虚拟机做快照,备份node01,02,03,04四个服务器,然后开始重新配置环境:
[root@node01 ~]# ifconfig eth0:2 down
[root@node01 ~]# ipvsadm -C
[root@node01 tengine-2.1.0]# service keepalived stop
[root@node04 ~]# service keepalived stop
在node01服务器上安装nginx。
[root@node01 soft]# tar zxvf tengine-2.1.0.tar.gz
先把这些服务器的yum源配置好。
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
yum clean all
yum makecache
[root@node01 tengine-2.1.0]# yum install gcc
[root@node01 tengine-2.1.0]# yum install pcre-devel.x86_64
yum install openssl-devel
[root@node01 tengine-2.1.0]# ./configure --prefix=/opt/neusoft/nginx
Make
Make install
进入目录:[root@node01 nginx]# cd /etc/init.d/
[root@node01 init.d]# chkconfig #此命令查看没有nginx的服务,如果需要就要在这里配置。
[root@node01 init.d]# vi nginx
将nginx附件里面的内容全部粘贴到该文件中。
在这里插入图片描述
脚本编译完成后需要授权:
[root@node01 init.d]# chmod +x nginx
[root@node01 init.d]# service nginx status #上面配置好后这里就可以有状态和启动停止了。
[root@node01 init.d]# chkconfig nginx on #设置开机启动
[root@node01 init.d]# service nginx start
http://node01/
在这里插入图片描述

nginx配置文件

反向代理:客户端访问要跟nginx握手,然后nginx在跟realserver服务器握手。Nginx也是为了解决高并发的问题。
[root@node01 init.d]# cd /opt/neusoft/nginx/conf/
[root@node01 conf]# cp nginx.conf nginx.conf.bak
[root@node01 conf]# vi nginx.conf
配置文件解析:
Server服务:

  1. listen:监听端口
  2. Location:监听路径,用户访问代理服务器的uri匹配地址。
  3. 代理服务

正常情况下,一个web容器运行在一台服务器上,尽管这个web容器,如:tomcat,下面可以部署多个web项目,但是这些web项目的顶级域名都是一个地址,也就是说用户访问的地址其实还是一个。只不过是二级或三级地址来区分项目名称。Nginx的特点就是也能模拟一个web容器下有不同的项目的模式,但是访问的地址可以跨域访问。

添加server配置插入以下信息

    server {
      listen 80;
      server_name www.qq.com;
      location / {
         return 888;
       }       
    }
    
    server {
      listen 80;
      server_name www.taobao.com;
      location / {
         return 666;
       }       
    }

[root@node01 conf]# service nginx reload

修改windows中的hosts文件并访问测试

192.168.43.170 node01 www.qq.com www.taobao.com
在谷歌浏览器中访问地址:
www.taobao.com/
在这里插入图片描述
www.qq.com
在这里插入图片描述
反向代理配置成功。
执行过程分析:用户在浏览器访问淘宝的时候,根据hosts的映射来匹配node01这个服务器,的默认80端口,这个时候被node01服务器的nginx所监听,处理,根据server_name来匹配淘宝还是qq,匹配对应的server_name后来做location响应,返回状态码:888或666。

修改nginx.conf配置文件,可以映射到具体文件夹:

在这里插入图片描述
在这里插入图片描述
配置好后存盘退出:
[root@node01 conf]# service nginx reload
http://www.qq.com/
在这里插入图片描述
这种模式可以通过url映射代理到服务器的某个目录下。

配置代理

[root@node01 conf]# cd /opt/neusoft/nginx/html/
[root@node01 html]# mkdir abc
[root@node01 html]# cd abc/
[root@node01 abc]# vi i1.html
在这里插入图片描述
在Windows系统上的hosts文件中配置:192.168.43.170 node01 www.qq.com www.taobao.com www.jd.com
[root@node01 conf]# service nginx reload
在浏览器中访问京东:http://www.jd.com/
在这里插入图片描述
再输入地址:http://www.jd.com/abc/i1.html,就映射到abc目录下的i1.html文件了。这就实现了跨域。
在这里插入图片描述


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值