Nginx的配置文件使用说明
您好,我是码农飞哥,感谢您阅读本文!本文主要介绍Nginx的使用配置,Nginx是在实际开发中肯定会用到负载均衡的Web服务器。了解其配置对日常开发以及项目的部署有很大的用处。
纯静态-html支持
在配置Nginx的静态资源时有root和alias两种方式,比如现在在D:/test
目录下有个文件laydate.js。默认配置的主机名是localhost;通过这两种方式分别配置:
- 通过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静态文件缓存
- Nginx - 用日期命名日志文件并实现自动切割
- nginx内网代理为外网地址
- windows下的Nginx+Squid+Tomcat+Memcached集群
- Nginx 配置文件说明
- Nginx的配置文件详解(超详细)
- Nginx的nginx.conf配置文件中文注释说明
- Nginx中防盗链(下载防盗链和图片防盗链)及图片访问地址操作记录
- Linux 下 Nginx + JDK + Tomcat + MySQL 安装指南
- Nginx拆分配置文件的办法
- nginx.conf配置文件详解
- Nginx配置配置文件详解
- linux下如何查找nginx配置文件的位置
- Nginx 项目部署和配置
- 网站启用SSL后重启Nginx提示 Enter PEM Pass Phrase:需要输入密码
- nginx 端口映射多个应用
- nginx配置文件中的location中文详解
- nginx 服务器配置文件指令
- Nginx的配置文件
- Nginx配置文件详细说明
- Nginx基础篇(2)- Nginx基本配置文件和变量详解
- 【Nginx】核心配置文件结构
- Nginx Installation、Configuration、Rreverse Proxy、Load Balancing Learning
- shell读取nginx配置文件中nginx的端口
- Nginx的配置文件简介及在Nginx中配置基于不同ip的虚拟主机
- (总结)Nginx配置文件nginx.conf中文详解
- Windows下编译nginx-rtmp-module
- Nginx 配置指令的执行顺序(十)
- nginx/ajax跨子域请求的两种现代方法以及403解决
- Nginx安装部署(反向代理与负载均衡)
- Nginx配置文件详解
- 使用nginx搭建流媒体直播平台(该方式不适用与多人聊天)
- Linux上配置Nginx+PHP5(FastCGI)