cjcmay 发表于 2018-11-12 07:57:03

Nginx-bantiaomichong

  Nginx是一款轻量级的Web服务器/反向代理服务器,相比于传统的Web服务器Apache,Nginx占用的内存和资源更少,配置更简单,同时因为Nginx是异步非阻塞型的(多个连接(万级别)可以对应一个进程),在高并发下,它能保持低资源低消耗高性能,能支持高达50,000个并发连接数的响应。
  Nginx的一个强大特性是它提供负载均衡策略,Nginx的负载策略可以分为内置策略和扩展策略,内置策略就是默认编译到Nginx内核中如:加权轮询和ip hash ;扩展策略就是需要在编译内核时添加的策略如:fair,通用hash,consistent hash等。
  Nginx作为负载均衡使用,因为是直接工作在网络的7层——应用层上,所以它的正则规则更为的强大和灵活,同时它对网络稳定性依赖性不像Lvs那么高,理论上只要能ping的通就能够进行负载功能。而且Nginx的安装和配置也比较简单,它基本上能把错误以日志的形式显示出来,这一点不像Lvs那样配置和检测都比较麻烦。
  Nginx可以通过端口检测到服务器内部的故障,比如根据服务器处理网页返回的状态码、超时等等,并且会把返回错误的请求重新提交到另一个节点,不过其中缺点就是不支持url来检测。比如用户正在上传一个文件,而处理该上传的节点刚好在上传过程中出现故障,Nginx会把上传切到另一台服务器重新处理。
  此外Nginx作为Web的反向代理缓存也越来越成熟了,速度比传统的Squid服务器更加快速,同时Nginx也可作为静态网页和图片服务器,这方面的性能也无对手。还有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/nologinnginx  
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  
usernginx;
  
worker_processes4; #要开启的工作进程数,
  
events {
  
      use epoll;   #设定事件处理机制
  
    worker_connections4096; #设定并发数,数值越大则并发数越高
  
}
  
nginx -t#监测配置文件正确与否

  配置正常就可以输入nginx命令来开启nginx了
  开启nginx之后就可以用web访问了它的端口和Apache一样也是80

  添加ssl加密证书:
vim /usr/local/lnmp/nginx/conf/nginx.conf  
    server {
  
      listen       443 ssl;
  
      server_nameserver2.example.com;
  

  
      ssl_certificate      cert.pem;
  
      ssl_certificate_keycert.pem;
  

  
      ssl_session_cache    shared:SSL:1m;
  
      ssl_session_timeout5m;
  

  
      ssl_ciphersHIGH:!aNULL:!MD5;
  
      ssl_prefer_server_cipherson;
  

  
      location / {
  
            root   html;
  
            indexindex.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>  可以通过访问虚拟主机的域名来浏览虚拟主机的网页了:


  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时将访问到后端另外两台服务器
  
   }
  

  
}
  
      upstreamexample {   #实现负载均衡默认为轮询
  
         server 172.25.9.3:80;
  
      server 172.25.9.4:80;
  
}
  通过访问www.example.com可以访问到后端两台web服务器的网页了:




页: [1]
查看完整版本: Nginx-bantiaomichong