nginx的使用

最近工作用到了Nginx,现对用到的一些东西做一下记录。

首先附一个nginx初始配置文件的结构:

...              #全局块

events {         #events块
   ...
}

http      #http块
{
    ...   #http全局块
    server        #server块
    { 
        ...       #server全局块
        location [PATTERN]   #location块
        {
            ...
        }
        location [PATTERN] 
        {
            ...
        }
    }
    server
    {
      ...
    }
    ...     #http全局块
}

1、upstream模块

upstream:上游服务器设置,主要为反向代理、负载均衡相关配置,upstream的指令用于设置一系列的后端服务器,设置反向代理及后端服务器的负载均衡;

upstream demo{
  server 127.0.0.1:8000 down;
  server 127.0.0.1:8001 weight=2;
  server 127.0.0.1:8002;
  server 127.0.0.1:8003 backup
 }
在需要使用负载均衡的server的location中增加
proxy_pass http://demo/;


每个设备的状态设置:
1、down表示当前的server暂时不参与负载
2、weight 默认为1.weight越大,负载的权重就越大,那么该服务器被访问到的几率就越大
3、max_fails :允许请求失败的次数默认为1.当超过最大次数时,返回proxy_next_upstream 模块定义的错误
4、fail_timeout:max_fails次失败后,暂停的时间。
5、backup: 其它所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻。

2、server块配置

配置虚拟主机的相关参数,一个http中可以有多个server。server部分的指令主要用于指定虚拟主机域名、IP和端口;

listen 声明服务器监听的端口号。

server_name server_name主要用来匹配url地址。

root 该设置定义的是一些静态文件的存放路径。

3、location块配置

配置请求的路由,以及各种页面的处理情况。Location接受两个参数,一个字符串或者正则和一段代码。字符串或者正则用于匹配某个特定目录。

index 设置默认页面。

expires 过期时间,例如“30d”,表示30天,如果静态文件不怎么更新,过期时间可以设大一点,如果频繁更新,则可以设置得小一点。

proxy_set_header 允许重新定义或添加字段传递给代理服务器的请求头。该值可以包含文本、变量和它们的组合。

proxy_redirect 修改被代理服务器返回的响应头中的location头域跟refresh头域数值。

alias和root的区别

location /request_path/image/ {
    root /local_path/image/;
    alias /local_path/image/;
}

  当我们使用root时,客户端向 /request_path/image/cat.png 发起请求后,Nginx把请求映射为/local_path/image/request_path/image/cat.png

  当我们使用alias时,客户端向 /request_path/image/cat.png 发起请求后,Nginx把请求映射为/local_path/image/cat.png 

原文地址:https://www.cnblogs.com/value-code/p/9714213.html