Nginx的配置文件使用说明

本文涉及的产品
传统型负载均衡 CLB,每月750个小时 15LCU
网络型负载均衡 NLB,每月750个小时 15LCU
应用型负载均衡 ALB,每月750个小时 15LCU
简介: 您好,我是码农飞哥,感谢您阅读本文!本文主要介绍Nginx的使用配置,Nginx是在实际开发中肯定会用到负载均衡的Web服务器。了解其配置对日常开发以及项目的部署有很大的用处。

您好,我是码农飞哥,感谢您阅读本文!本文主要介绍Nginx的使用配置,Nginx是在实际开发中肯定会用到负载均衡的Web服务器。了解其配置对日常开发以及项目的部署有很大的用处。

纯静态-html支持

在配置Nginx的静态资源时有root和alias两种方式,比如现在在D:/test目录下有个文件laydate.js。默认配置的主机名是localhost;通过这两种方式分别配置:

1.通过root的方式

location /test {
    root D:/;
  }

当访问http://localhost/test/laydate.js 实际上访问的地址是D:/test,也就是说文件必须要在root配置的地址+匹配的/test地址下才能找到,否则,则找不到。

2. 通过alias的方式

location /demo {
    alias D:/test;
  }

当访问http://localhost/demo/laydate.js 实际访问的地址是D:/test,也就说文件只需要在alias配置的路径下即可。目录与demo无关。

有一个特殊点是,如果访问的文件在nginx的子目录下,比如html目录在nginx下:D:\develop\nginx-1.11.12\html,则只需要配置相对路径即可:

location /{
    root html;
  }

完整的配置参考如下

events {
    worker_connections  1024;
}
http {
    server{
  listen  80;
  #服务器的域名,可以改成你需要的任何域名
  server_name localhost
  # 日志记录
  access_log  logs/test-access.log;
  location /{
  index index.html;
  root html;
  }
  location /test {
  root D:/;
  }
  location /demo {
  alias D:/test;
  }
   }
 }

配置负载均衡

Nginx的一个重要功能就是用作负载均衡的Web服务器。在分布式场景下经常要将一个域名的请求均衡到本机不同的端口,或者均衡到不同的主机上。

http {
 upstream myproject {
 server 127.0.0.18000 weight=3;
 server 127.0.0.18001;
 server 127.0.0.18002;
 }
 server {
 listen 80;
 server_name www.domain.com;
 location / {
 #请求转向后端定义的均衡模块,这个配置就是upstream myproject,直接找到location/根目录下的proxy_pass,反向代理
 proxy_pass http//myproject;
 }
  location /exp-h5 {
 proxy_pass http//myproject/exp-h5/;
 }
 }
}

通过upstream属性主要的作用就是配置多个IP地址,均衡后端的实例,nginx的upstream支持五种算法分配方式:

算法分配方式 分配方式解释
轮询(默认) 每个请求按时间顺序逐一分配到后端不同的服务器,如果后端某台服务器down掉,自动剔除,待恢复后自动添加上
weight权重 指定轮询权重,权重越高处理的请求就越多,weight和访问比率成正比,用于后端服务器性能不均的情况,weight默认为1,weight越大,负载的权重就越大
ip hash 每个请求根据访问的IP的hash结果分配,这样每个访客固定访问同一个后端服务器,可以解决session的问题,一般用于登录会话
fair(第三方) 按后端服务器的响应时间来分配请求,响应时间短的优先分配
url hash(第三方) 按照访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。

举个栗子:

weight权重配置
upstream testproxys{
        server  172.20.22.36:50001 weight=1 max_fails=2 fail_timeout=30s;   
        server  172.20.21.41:50001 weight=1 max_fails=2 fail_timeout=30s;
   }

upstream的fail_timeout和max_fails参数是用来判断负载均衡upstream中某个server是否失效。

在30s与该服务连接尝试失败了两次,则认为该服务已经失效,在接下来30s内,nginx不会将请求分发给失效的服务。失效时间与响应时间无关,不会影响响应时间。

ip hash
 upstream bakend {
         ip_hash;
         server 192.168.0.14:88;
         server 192.168.0.15:80;
    }

fair(第三方)

upstream backend {
    server server1;
    server server2;
    fair;
}

url_hash(第三方)

upstream backend {
    server squid1:3128;
    server squid2:3128;
    hash   $request_uri;
    hash_method crc32;
}

防盗链

防盗链是为了防止网站被非法的访问。

location ~* \.(gif|jpg|png|swf|flv)${
    valid_referers none blocked *.csdn.net server_names ~\.google\. ~\.baidu\.;
    if ($invalid_referer) {
     rewrite ^/ http://www.csdn.net/403.jpg;
        return 403;
    }
}

如果页面的来源不是*.csdn.net(自己的网站)就会返回true,并跳转到403页面,特殊的如果server_names(服务器)是google或者baidu,则返回false。


总结

本文简单介绍了Nginx的一些基本配置。

参考

Nginx配置静态资源的root和alias配置

Nginx中文文档

nginx常用配置参数介绍-upstream

相关实践学习
部署高可用架构
本场景主要介绍如何使用云服务器ECS、负载均衡SLB、云数据库RDS和数据传输服务产品来部署多可用区高可用架构。
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
相关文章
|
1月前
|
应用服务中间件 nginx
Nginx 配置文件详解
Nginx 配置文件详解
74 0
|
9月前
|
应用服务中间件 Linux nginx
Mac Nginx 配置文件使用(nginx.conf,包含M1)
Mac Nginx 配置文件使用(nginx.conf,包含M1)
318 0
|
1月前
|
存储 Ubuntu 应用服务中间件
【Nginx】centos和Ubuntu操作系统下载Nginx配置文件并启动Nginx服务详解
【Nginx】centos和Ubuntu操作系统下载Nginx配置文件并启动Nginx服务详解
41 1
|
1月前
|
负载均衡 应用服务中间件 API
Nginx配置文件详解Nginx负载均衡Nginx静态配置Nginx反向代理
Nginx配置文件详解Nginx负载均衡Nginx静态配置Nginx反向代理
66 4
|
8天前
|
缓存 负载均衡 应用服务中间件
深入解析Nginx配置文件
Nginx是一个高性能HTTP服务器和反向代理,其配置文件`nginx.conf`包含全局、事件、HTTP、Server和Location块。全局块设置如用户和工作进程数,事件块设定连接数,HTTP块涉及MIME类型、日志和包含其他配置。Server块定义虚拟主机,Location块处理URI匹配。Nginx常用于反向代理和负载均衡,如`proxy_pass`指令转发请求至后端服务器组。理解这些配置有助于服务器优化和测试。
14 0
|
2天前
|
前端开发 应用服务中间件 nginx
nginx前后端分离、多前端部署配置文件
nginx前后端分离、多前端部署配置文件
10 2
|
2天前
|
应用服务中间件 nginx
nginx更改配置文件后重启
nginx更改配置文件后重启
11 1
|
28天前
|
网络协议 应用服务中间件 Linux
nginx 配置文件详细介绍
nginx 配置文件详细介绍
|
28天前
|
Ubuntu 应用服务中间件 Linux
蓝易云 - Linux学习之Ubuntu20中OpenResty的nginx目录里内容和配置文件
你可以根据你的需要修改这个配置文件,例如增加新的服务器块,位置块,修改监听的端口等。修改完配置文件后,你需要重载Nginx配置,可以使用 `/usr/local/openresty/nginx/sbin/nginx -s reload`命令来实现。
27 0
|
1月前
|
Java 应用服务中间件 PHP
Nginx配置文件解释
Nginx配置文件解释
22 1