nginx

Nginx(linux环境)
Nginx是一个高性能轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,占用内存少,并发能力好,能够支持高达 50,000 个并发连接数的响应。
在linux(centos6.5)下面的安装环境:
因为在多种Linux下的安装包格式不相同:我们使用源码(C语言)来自己编译安装:
源码下载:http://nginx.org/

  1. nginx的安装:
    注意先切换到root超级用户:
    su root
  2. 安装环境:
    nginx是C语言开发,建议在linux上运行,本教程使用Centos6.5作为安装环境。
    gcc
    安装nginx需要先将官网下载的源码进行编译,编译依赖gcc环境,如果没有gcc环境,需要安装gcc:yum install gcc-c++
    PCRE
    PCRE(Perl Compatible Regular Expressions)是一个Perl库,包括 perl 兼容的正则表达式库。nginx的http模块使用pcre来解析正则表达式,所以需要在linux上安装pcre库。
    yum install -y pcre pcre-devel
    注:pcre-devel是使用pcre开发的一个二次开发库。nginx也需要此库。
    zlib
    zlib库提供了很多种压缩和解压缩的方式,nginx使用zlib对http包的内容进行gzip,所以需要在linux上安装zlib库。
    yum install -y zlib zlib-devel
  3. 编译安装:
    将nginx-1.8.0.tar.gz拷贝至linux服务器。
    解压:
    tar -zxvf nginx-1.8.0.tar.gz
    cd nginx-1.8.0
    在nginx-1.8.0目录中没有makefile文件。执行1、 configure生成makefile
    ./configure
    –prefix=/usr/local/nginx
    –pid-path=/var/run/nginx/nginx.pid
    –lock-path=/var/lock/nginx.lock
    –error-log-path=/var/log/nginx/error.log
    –http-log-path=/var/log/nginx/access.log
    –with-http_gzip_static_module
    –http-client-body-temp-path=/var/temp/nginx/client
    –http-proxy-temp-path=/var/temp/nginx/proxy
    –http-fastcgi-temp-path=/var/temp/nginx/fastcgi
    –http-uwsgi-temp-path=/var/temp/nginx/uwsgi
    –http-scgi-temp-path=/var/temp/nginx/scgi
    这一步的命令创建了很多Nginx启动的需要的很多文件夹
    有一个临时文件的目录指定为:/var/temp/nginx 。需要我们自己创建
    mkdir /var/temp/nginx –p
    直接make编译安装:
  4. 启动nginx:
    cd /usr/local/nginx/sbin/
    在这个目录下有一个nginx的可执行文件,直接执行。
    ./nginx
    查看是否启动成功:
    ps aux|grep nginx
    看到:
    在这里插入图片描述
    就成功了。通过ip访问80端口出现(注意管理linux的防火墙和使用NAT模式共享ip):

关闭nginx:
在sbin目录下 : ./nginx –s stop或者 ./nginx –s qiut
./nginx –s reload 直接刷新配置文件。不用关闭nginx,
Nginx能够支持5万的并发(tomcat只有500)。
虚拟主机基本配置:
在这里插入图片描述

  1. 全局块
    a) 错误日志的存放路径
    b) Nginx进程PID的存放路径。。。。等
  2. events块: 主要影响Nginx服务器与用户的网络连接
    a) 最大连接数
    b) 是否允许多个连接
    c) 设置网络连接的序列化
  3. http块(重点);
    a) 配置server
    i. 配置网络监听
    ii. 虚拟主机配置
    iii. Localtion配置:
  4. location配置
  5. 请求根目录配置
  6. 更改location的URI
  7. 网站默认首页配置

通过配置不同的端口来配置不同的虚拟主机:
我们可以在http中添加多个server来监听端口:
修改listen的端口号。主机名不变
后面的localhost对应你的资源地址。
在这里插入图片描述

通过配置不同的域名来配置不同的虚拟主机;
都是80端口。但是传递过来的主机名不同,对应不同的server。
在这里插入图片描述

反向代理(对于服务端而言):只需要一个公网的ip供客户端访问,访问请求过来时:代理服务器不自己处理请求。而是把请求转发给后面挂载的应用服务器(例如:tomcat).nginx起到一个转发的作用。相当于一个网站的入口。
正向代理(对于客户端而言):就相当于局域网的电脑中访问网络时;局域网都将网络请求转发给一个代理服务器。代理服务器上网得到资源之后再返回给局域网中的电脑,
反向代理的基本配置:核心是proxy_pass指令。
在这里插入图片描述
以上就是一个服务器的基本配置开发中一般配置多个节点:
以上的访问流程是;当我们访问www.sohu.com时,会访问到当前节点。当前节点把请求再次转发到upstream中的地址。并不是自己处理请求。
负载均衡:
相当于在一个server节点上挂载多台的服务器。我们只需要在:
upstream sohu{
server 192.168.25.1:80
server 192.168.25.2:80 weight=2;//相当于现在就是1;2:1
server 192.168.25.3:80
}
配置多个server属性。就可以做到多个服务器。还可以根据服务器的情况调整权重,权重却高,请求越多。默认都是1.比例只是概率。
对于配置负载均衡;有多种策略。
除了上面的轮询和配置权重。还有;

  1. 最少连接:nginx会把请求转发给连接最少的那个
    upstream sohu{
    least_conn;//最少连接配置。
    server 192.168.25.1:80
    server 192.168.25.2:80 weight=2;//相当于现在就是1;2:1
    server 192.168.25.3:80
    }
  2. IP地址哈希; 同一客户端连续的Web请求可能会被分发到不同的后端服务器进行处理,因此如果涉及到会话Session,那么会话会比较复杂。常见的是基于数据库的会话持久化。要克服上面的难题,可以使用基于IP地址哈希的负载均衡方案。这样的话,同一客户端连续的Web请求都会被分发到同一服务器进行处理。
    upstream sohu{
    ip_hash;//配置IP哈希
    server 192.168.25.1:80
    server 192.168.25.2:80 weight=2;//相当于现在就是1;2:1
    server 192.168.25.3:80
    }
    还可以配置
    proxy_connect_timeout 1; #nginx服务器与被代理的服务器建立连接的超时时间,默认60秒
    proxy_read_timeout 1; #nginx服务器想被代理服务器组发出read请求后,等待响应的超时间,默认为60秒。
    proxy_send_timeout 1; #nginx服务器想被代理服务器组发出write请求后,等待响应的超时间,默认为60秒。
    proxy_http_version 1.0 ; #Nginx服务器提供代理服务的http协议版本1.0,1.1,默认设置为1.0版本。
    #proxy_method get; #支持客户端的请求方法。post/get;
    proxy_ignore_client_abort on; #客户端断网时,nginx服务器是否终端对被代理服务器的请求。默认为off。
    proxy_ignore_headers “Expires” “Set-Cookie”; #Nginx服务器不处理设置的http相应投中的头域,这里空格隔开可以设置多个。
    proxy_intercept_errors on; #如果被代理服务器返回的状态码为400或者大于400,设置的error_page配置起作用。默认为off。
    proxy_headers_hash_max_size 1024; #存放http报文头的哈希表容量上限,默认为512个字符。
    proxy_headers_hash_bucket_size 128; #nginx服务器申请存放http报文头的哈希表容量大小。默认为64个字符。
    proxy_next_upstream timeout; #反向代理upstream中设置的服务器组,出现故障时,被代理服务器返回的状态值。

高可用(备份):
计算机系统的可用性用 [1] 平均无故障时间(MTTF)来度量,即计算机系统平均能够正常运行多长时间,才发生一次故障。系统的可用性越高,平均无故障时间越长。
为了屏蔽负载均衡服务器的失效,需要建立一个备份机。主服务器和备份机上都运行High Availability监控程序(使用keepalived),通过传送诸如“I am alive”这样的信息来监控对方的运行状况。当备份机不能在一定的时间内收到这样的信息时,它就接管主服务器的服务IP并继续提供服务;当备份管理器又从主管理器收到“I am alive”这样的信息时,它就释放服务IP地址,这样的主管理器就开始再次进行集群管理的工作了。为在主服务器失效的情况下系统能正常工作,我们在主、备份机之间实现负载集群系统配置信息的同步与备份,保持二者系统的基本一致。

我们不仅使用Nginx搭建http服务器。还可以做反向代理和负载均衡。
后面搭建fastDFS的太复杂,使用的是别人搭建好的一台虚拟机。
imag-server图片服务器(fastDFS) username:root password: itcast 启动的时候一定点击我已移动该虚拟机。保障ip和网卡不变。Ip为:192.168.25.133

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值