Nginx

1.简介

nginx由俄罗斯的程序员开发BSD协议下发型,是一个轻量级的web服务器/反向代理服务器及电子邮件代理服务器

GPL开源协议,可修改必须开源

BSD开源协议,可商用

 

2.编译安装

安装准备:nginx依赖于prce库,要先安装

#yum install pcre pcre-devel

#cd /usr/local/src/

#wget http://nginx.org/download/nginx-1.4.2.tar.gz

#tar zxvf nginx-1.4.2.tar.gz

#cd nginx-1.4.2

#./configure --prefix=/usr/local/nginx

#make && install

删掉进程:pkill -9 nginx

查看进程:ps aux|grep nginx

启动nginx:nginx/sbin/nginx

 

3.控制命令

nginx -t 

-----测试配置是否正确

nginx -s reload

-----加载最新配置

nginx -s stop

-----作用立即停止

nginx -s quit

-----优雅停止

nginx -s reopen

-----重新打开日志

-----mv access.log access_bak.log

-----新建access.log 访问日志文件

-----./sbin/nginx -s reopen 才可以将日志写入新access.log

 

4.全局段配置

worker_processes 工作进程(设置原则:CPU数量*核数)

events 事件

http{server} (每一个server就是一个虚拟主机)

 

5.server段配置虚拟主机

5.1)nging.conf配置虚拟主机:

server{

  listen 80; #监听80端口

  server_name dddai.com; #监听域名,如有多个,空格隔开

  location /{

    root html/ddd; #根目录定位

    index index.php index.html; #默认索引页

  }

  location ~ \.php${

    root      html/ddd;

    fastcgi_pass  127.0.0.1:9000;

    fastcgi_index  index.php;

    fastcgi_param   SCRIPT_FILENAME  $DOCUMENT_ROOT$fastcgi_script_name;

    include       fastcgi_params;

  }

}

5.2)重启./nginx -s reload

5.3)本地访问:

添加hosts:192.168.2.251 ddd.com

浏览器访问:ddd.com

 

6.日志管理

6.1)自定义日志格式simple

log_format simpile '$remote_addr "$request"';

6.1)设置

server{

  access_log  logs/dddai.log  simple;

}

7.Nginx反向代理并在日志中获取用户IP

7.1)

cd /usr/local/nginx/html/

wget 图片地址

7.2)配置图片反向代理:

location ~ \.(jpep|jpg|png|gif)${   #~正则表达式

  proxy_pass http://192.168.2.42:80;

}

7.3)代理服务器通过设置头信息字段,把用户IP传到后台服务器去

location ~ \.(jpep|jpg|png|gif)${ 

  proxy_pass http://192.168.2.42:80;

  proxy_set_header X-Forwarded-For $remote_addr;  #$remote_add用户地址

  proxy_pass IP:port;

}

 

8.Nginx集群与负载均衡

反向代理+负载均衡

在nginx中做集群与负载均衡,步骤都是一样的Upstream{}模块,把多台服务器加入到一个组

然后memcached_pass,fastcgi_pass,proxy_pass ==> upstream 组

具体配置步骤:

8.1)配置upstream

upstream imageserver{  #声明服务器组名为imageserver

  server 192.168.1.204:8080 weight=1 max_fails=2 fail_timeout=30s;   #weight权重,max_fails联系30秒失败2次则不再访问

  server 192.168.1.204:8081 weight=1 max_fails=2 fail_timeout=30s;

}

8.2)下游调用

location ~ \.(jpg|jpeg|png|gif)$ {

  proxy_set_header X-Forwarded-For $remote_addr:

  proxy_pass http://imageserver;  #转交到imageserver

}

默认的负载均衡的算法:

设置计数器轮流请求N台服务器

可以安装第三方模式,来利用不同参数把请求均衡到不同服务器去

如基于cookie值区别用户做负载均衡(nginx sticky 模块)

或基于URI利用一致性哈希算法均衡(NginxHttpUpstreamConsistentHash模块)

或基于IP做负载均衡等

posted on 2018-04-21 23:09  CevinChen  阅读(241)  评论(0编辑  收藏  举报