nginx操做

1、配置yum源:php

1.、打开centos的yum文件夹
  cd /etc/yum.repos.d/
二、用wget下载repo文件
  wget http://mirrors.aliyun.com/repo/Centos-7.repocss

或者(wget http://mirrors.163.com/.help/CentOS6-Base-163.repo)
若是wget命令不生效,说明尚未安装wget工具,输入yum -y install wget 回车进行安装。(yum search wget)html

三、备份系统原来的repo文件
  mv CentOs-Base.repo CentOs-Base.repo.bak
  便是重命名 CentOs-Base.repo -> CentOs-Base.repo.bak
四、替换系统原理的repo文件
  mv Centos-7.repo CentOs-Base.repo
  便是重命名 Centos-7.repo -> CentOs-Base.reponginx

2、nginx yum安装web

  1.rpm -qa | grep nginx(检查设备是否已安装nginx服务)正则表达式

  2.yum search nginx(搜索yum源)算法

 

 若是不存在,执行第三步后端

3.配置nginx源centos

sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm 
或者
(sudo rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm)

在/etc/yum.repos.d目录下生成nginx.pro文件,内容以下:浏览器

 

4.安装nginx:

yum install nginx

5.验证:

nginx -v

nginx -t

curl 127.0.0.1

 

 3、源码安装:

 4、配置文件解析:

  三个核心功能是静态服务器、反向代理和负载均衡。

  配置文件:nginx.conf,以下所示。

  main # 全局配置

  #nginx进程数,建议设置为等于CPU总核心数。

  worker_processes 8;

  (查看cpu参数  lscpu)(系统分页大小 getconf PAGESIZE

  #全局错误日志定义类型,[ debug | info | notice | warn | error | crit ] error_log   

  /usr/local/nginx/logs/error.log info;

  events { # 工做模式配置

    #参考事件模型,use [ kqueue | rtsig | epoll | /dev/poll | select | poll ];

    use epoll;

  }

  http { # http设置

    #文件扩展名与文件类型映射表

    include mime.types;

    #默认文件类型

    default_type application/octet-stream;

    server { # 服务器主机配置(虚拟主机、反向代理等)

      #log_format,用来设置日志格式;

      #access_log,用来指定日志文件的存放路径、格式和缓存大小

      #日志格式设定

      #$remote_addr与$http_x_forwarded_for用以记录客户端的ip地址;

      #$remote_user:用来记录客户端用户名称;

      #$time_local: 用来记录访问时间与时区;

      #$request: 用来记录请求的url与http协议;

       #$status: 用来记录请求状态;成功是200,

      #$body_bytes_sent :记录发送给客户端文件主体内容大小;

      #$http_referer:用来记录从那个页面连接访问过来的;

      #$http_user_agent:记录客户浏览器的相关信息;

      #一般web服务器放在反向代理的后面,这样就不能获取到客户的IP地址了,经过$remote_addr拿到的IP地址是反向代理服务器的iP地址。

      反向代理服务器在转发请求的http头信息中,能够增长x_forwarded_for信息,用以记录原有客户端的IP地址和原来客户端的请求的服务器地址。

      例如:

      log_format  access   '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" $http_x_forwarded_for';

      #定义本虚拟主机的访问日志

       access_log   /usr/local/nginx/logs/host.access.log  main;

       access_log   /usr/local/nginx/logs/host.access.404.log  log404;

       access_log   /usr/local/nginx/logs/host.access.my.log  access;

       location语法:

       location [ = | ~ | ~* | ^~ ] uri { ... }

      例如:

      location ~* .*\.(jpg|gif|png|js|css)$ {
           root  /data/av/;
      }    

      [=|~|~*|^~|@] 被称做 location modifier 

   $不匹配具体的字符,而是匹配字符串的结尾位置,就是说必须在字符串的结尾匹配到$前面的部分才行,好比:x.gif 能匹配成功而 x.gifa 就不行

  与之相似,^ 匹配字符串开始的位置

nginx 常见正则匹配符号表示

  一、  ^  :   匹配字符串的开始位置;

  二、   $  :  匹配字符串的结束位置;

  三、  .*:    :  匹配任意字符,*匹配数量0到正无穷;

  四、  \.   :  斜杠用来转义,\.匹配 . ;

  五、  (值1|值2|值3|值4)  :  或匹配模式,例:(jpg|gif|png|bmp)匹配jpg或gif或png或bmp

  六、  i     :  不区分大小写
一.正则表达式匹配,其中:

   ~     区分大小写匹配
   ~*      不区分大小写匹配
   !~    区分大小写不匹配及

  !~*     不区分大小写不匹配    

  =    精确匹配 

  ^~     以某个字符串开头 
  /       通用匹配,任何请求都会匹配到 

1.(基本配置)
   location { # 路由配置(虚拟目录等)

   root    /nginx/www;
     index    index.php index.html index.htm;

   }

2..(反向代理配置)

  location path {

    proxy_pass   http://localhost:8888;

    proxy_set_header   X-real-ip $remote_addr;

     proxy_set_header   Host $http_host;

  }

3.(uwsgi配置

  location otherpath {

    include uwsgi_params;

     uwsgi_pass localhost:8888;

  }
 }

server {

  location {
      ....
  }

  location / {

    deny  192.168.1.1;
    allow 192.168.1.0/24;
    allow 10.1.1.0/16;
    allow 2001:0db8::/32;
    deny  all;
    }
  }

upstream name { # 负载均衡配置

 ip_hash;
  server 192.168.1.100:8000 weight=9;
  server 192.168.1.100:8001 down;
  server 192.168.1.100:8002 max_fails=3;
  server 192.168.1.100:8003 fail_timeout=20s;
  server 192.168.1.100:8004 max_fails=3 fail_timeout=20s;

#upstream的负载均衡,weight是权重,能够根据机器配置定义权重。weigth参数表示权值,权值越高被分配到的概率越大。

  server 192.168.80.121:80 weight=3;

  server 192.168.80.122:80 weight=2;

  server 192.168.80.123:80 weight=3;

#nginx的upstream目前支持4种方式的分配

#一、轮询(默认) #每一个请求按时间顺序逐一分配到不一样的后端服务器,若是后端服务器down掉,能自动剔除。

#二、weight #指定轮询概率,weight和访问比率成正比,用于后端服务器性能不均的状况。

 #例如:

  upstream bakend {

    server 192.168.0.14 weight=10;

     server 192.168.0.15 weight=10;

  }

#3、ip_hash #每一个请求按访问ip的hash结果分配,这样每一个访客固定访问一个后端服务器,能够解决session的问题。

#例如:

  upstream bakend{

    ip_hash;

    server 192.168.0.14:88;

    server 192.168.0.15:80;

  }

#4、fair(第三方)

#按后端服务器的响应时间来分配请求,响应时间短的优先分配。

   upstream backend { 

     server server1;

     server server2;

     air;

  }

#5、url_hash(第三方)

#按访问url的hash结果来分配请求,使每一个url定向到同一个后端服务器,后端服务器为缓存时比较有效。

#例:在upstream中加入hash语句,server语句中不能写入weight等其余的参数,hash_method是使用的hash算法

   upstream backend {

    server squid1:3128;

    server squid2:3128;

    hash $request_uri;

    hash_method crc32;

   }

#tips:

  #upstream bakend{

   #定义负载均衡设备的Ip及设备状态

   }

   {

    # ip_hash;

    # server 127.0.0.1:9090 down;

    # server 127.0.0.1:8080 weight=2;

    # server 127.0.0.1:6060;

    # server 127.0.0.1:7070 backup;

    #}

  #在须要使用负载均衡的server中增长 proxy_pass http://bakend/;

  #每一个设备的状态设置为:

  #1.down表示单前的server暂时不参与负载

  #2.weight为weight越大,负载的权重就越大。

  #3.max_fails:容许请求失败的次数默认为1.当超过最大次数时,返回proxy_next_upstream模块定义的错误

  #4.fail_timeout:max_fails次失败后,暂停的时间。

  #5.backup: 其它全部的非backup机器down或者忙的时候,请求backup机器。因此这台机器压力会最轻。

  #nginx支持同时设置多组的负载均衡,用来给不用的server来使用。   }}

相关文章
相关标签/搜索