Nginx 作代理(调度器)实现访问Web的负载均衡,并且定时检查Web的健康;

  1. 前提先搭建2台web服务器(作web集群)
  2. 部署nginx调度器
    修改nginx配置文件,此软软件自带备份配置文件(以default结尾),把昨天的配置文件覆盖掉
   vim /usr/local/ngins/conf/nginx.conf
      http {
        upstream webs {     (web是我自己命名的集群名称,用于下面调用)
        ip_hash;(相同客户端访问,给相同web服务页面,根据实际情况是否写次条命令)
        server 192.168.2.100:80 (weight=2 max_fails=2 fail_timeout=10);
  括号里的内容为附加条件weight作用是负载量是正常的两倍;max_fails fail_timeout 定义失败后处理动作设置失败次数,超时时间,权重;
           server 192.168.2.200:80;
                }   (定义我们的web服务集群)
      server {
         listen 80;
         server_name localhost;
         location / {
         proxy_pass http://webs; (调用web集群,提供web服务)
                  }
              }

Nginx作为Web服务器实现 动静分离

  1. 部署LNMP环境;
    L:linux操作系统
    N:nginx网站服务软件
    M:MySQL Mariadb 数据库
    P:网站开发语言(PHP Perl Python)
    • 安装

yum -y install mariadb mariadb-server mariadb-devel php php-mysql

源码安装nginx 手动安装rpm -hiv php-fpm-5.4.16-36.el7_1.x86_64.rpm

  • 启服务
systemctl restart mariadb php-fpm
netstat -antpu | grep 80(nginx)  3306(mariadb) 9000(php)
  1. 修改nginx配置文件(有模版,取消注释适当修改即可)(清除上面实验做的配置)
 location / {
            root   html;
            index  index.html index.htm;
                 }

 location ~ \.php$ {      (这个配置需要我们作出修改)
  root  html;
  fastcgi_pass    127.0.0.1:9000;
  fastcgi_index   index.php;
  include         fastcgi.conf;
  }

通过上面配置实现当客户端访问一个静态页面时直接在根目录下提供页面;如果请求一个动态页面,nginx自动识别,将将请求的内容给到php,读取内容,然后将读取后的内容给到客户端;
php动态的页面还可以取关联读取mariadb数据库的内容(这个关联页面开发提供)

  1. 手动写一个php动态页面,用客户端验证

nginx 作为服务器实现地址重写

案例1.当客户访问192.168.4.5/a.html 时 服务端自动调转成b.html

vim /usr/local/nginx/conf/nginx.conf
    server {
      listen  80;
      server_name  localhost;

   location / {
      root  html;
      rewrite  /a.html   /b.html  redirect;地址重写
     (redirect可写可不写;写了起到的作用是客户输入a.html后会变成b.html)
      index index.html index.htm;
           }

案例2.客户访问你那个页面,你只提供跳转页面

rewrite ^/ http://www.jd.com;(直接调到tmooc首页上)

案例3.访问网页指定路径,跳转后依然可以提供到之前的指定目录;

rewrite ^/(.*) http://www.jd.com/$1;