码迷,mamicode.com
首页 > 其他好文 > 详细

Nginx

时间:2016-06-23 22:24:28      阅读:195      评论:0      收藏:0      [点我收藏+]

标签:naginx

        Nginx是一款轻量级的Web服务器/反向代理服务器,相比于传统的Web服务器Apache,Nginx占用的内存和资源更少,配置更简单,同时因为Nginx是异步非阻塞型的(多个连接(万级别)可以对应一个进程),在高并发下,它能保持低资源低消耗高性能,能支持高达50,000个并发连接数的响应。

        Nginx的一个强大特性是它提供负载均衡策略,Nginx的负载策略可以分为内置策略和扩展策略,内置策略就是默认编译到Nginx内核中如:加权轮询和ip hash ,weight;扩展策略就是需要在编译内核时添加的策略如:fair,通用hash,consistent hash等。

        Nginx作为负载均衡使用,因为是直接工作在网络的7层——应用层上,所以它的正则规则更为的强大和灵活,同时它对网络稳定性依赖性不像Lvs那么高,理论上只要能ping的通就能够进行负载功能。而且Nginx的安装和配置也比较简单,它基本上能把错误以日志的形式显示出来,这一点不像Lvs那样配置和检测都比较麻烦。

        Nginx可以通过端口检测到服务器内部的故障,比如根据服务器处理网页返回的状态码、超时等等,并且会把返回错误的请求重新提交到另一个节点,不过其中缺点就是不支持url来检测。比如用户正在上传一个文件,而处理该上传的节点刚好在上传过程中出现故障,Nginx会把上传切到另一台服务器重新处理。

        此外Nginx作为Web的反向代理缓存也越来越成熟了,速度比传统的Squid服务器更加快速,同时Nginx也可作为静态网页和图片服务器,这方面的性能也无对手。还有Nginx社区非常活跃,第三方模块也很多。

解压nginx源码包

tar zxf nginx-1.9.14.tar.gz 
cd nginx-1.9.14

解决依赖性:

yum install pcre-devel openssl-devel -y

编译:指定源码包和加入ssl加密模块和监控模块

./configure --prefix=/usr/local/lnmp/nginx --with-http_ssl_module --with-http_stub_status_module
make && make install

添加nginx用户

useradd -s /sbin/nologin  nginx
usermod -d /usr/local/lnmp/nginx/ nginx

修改.bash_profile 文件改变nginx的PATH变量的值

vim ~/.bash_profile 
    PATH=$PATH:$HOME/bin:/usr/local/lnmp/nginx/sbin
source ~/.bash_profile

更改nginx配置文件

vim /usr/local/lnmp/nginx/conf/nginx.conf
  user  nginx;   
  worker_processes  4; #要开启的工作进程数,
  events {
        use epoll;   #设定事件处理机制
    worker_connections  4096; #设定并发数,数值越大则并发数越高
  }
nginx -t  #监测配置文件正确与否

技术分享

配置正常就可以输入nginx命令来开启nginx了

开启nginx之后就可以用web访问了它的端口和Apache一样也是80

技术分享

添加ssl加密证书:

vim /usr/local/lnmp/nginx/conf/nginx.conf
    server {
        listen       443 ssl;
        server_name  server2.example.com;

        ssl_certificate      cert.pem;
        ssl_certificate_key  cert.pem;

        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;

        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;

        location / {
            root   html;
            index  index.html index.htm;
        }
     }

生成自己的证书:

cd /etc/pki/tls/certs
make cert.pem
cp cert.pem /usr/local/lnmp/nginx/conf/
nginx -t
nginx -s reload

制作证书的过程:

技术分享

可以登录网站测试一下了:

技术分享

技术分享

添加虚拟主机:

vim /usr/local/lnmp/nginx/conf/nginx.conf

在http{}之间添加

server {
         listen 80;
         server_name www.westos.com; #虚拟主机的域名访问时要有解析
         location / {
         root  /westos;    #虚拟主机的Web目录  
        index index.html;
}
}
server {
    listen 80;
    server_name www.linux.com;
    location / {
    root  /linux;         
    index index.html;
}
}

nginx  -t

nginx -s reload

可以通过访问虚拟主机的域名来浏览虚拟主机的网页了:


技术分享

技术分享


nginx的负载均衡:

vim /usr/local/lnmp/nginx/conf/nginx.conf

在http{}之间添加

 server {
    listen 80;
    server_name www.example.com;
    location / {
          proxy_pass http://example; #设置转发路径当访问www.example.com时将访问到后端另外两台服务器
     }

  }
        upstream  example {   #实现负载均衡默认为轮询 
         server 172.25.9.3:80; 
        server 172.25.9.4:80;
}

通过访问www.example.com可以访问到后端两台web服务器的网页了:

技术分享

技术分享


Nginx

标签:naginx

原文地址:http://bantiaomichong.blog.51cto.com/11702501/1792361

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!