Nginx速查手册及常见问题


Posted in Servers onApril 07, 2022

Nginx是一款轻量级的HTTP服务器,采用事件驱动的异步非阻塞处理方式框架,这让其具有极好的IO性能,时常用于服务端的反向代理和负载均衡。

Nginx速查手册及常见问题

常用命令

使用自定义配置文件启动

nginx -c /opt/nginx/config/nginx.conf

柔和重启

nginx -s reload

优雅停止服务

nginx -s quit

强制停止服务

nginx -s stop

配置文件检查

nginx -t

常用配置

反向代理

server {  
  listen 80;                                                         
  server_name localhost;                                               
  client_max_body_size 1024M;

  location / {
    proxy_pass http://localhost:8080;
    proxy_set_header Host $host:$server_port;
  }
}

负载均衡

upstream test {
  server localhost:8080;
  server localhost:8081;
}
server {
  listen 81;                                                         
  server_name localhost;                                               
  client_max_body_size 1024M;

  location / {
    proxy_pass http://test;
    proxy_set_header Host $host:$server_port;
  }
}

http服务器

server {
  listen 80;                                                         
  server_name localhost;                                               
  client_max_body_size 1024M;

  location / {
    root e:\wwwroot;
    index index.html;
  }
}

动静分离

upstream test{  
  server localhost:8080;  
  server localhost:8081;  
}   

server {  
  listen 80;  
  server_name localhost;  

  location / {  
    root d:\wwwroot;  
    index index.html;  
  }  

  --所有静态请求都由nginx处理,存放目录为html  
  location ~ \.(gif|jpg|jpeg|png|bmp|swf|css|js)$ {  
    root d:\wwwroot;  
  }  

  --所有动态请求都转发给tomcat处理  
  location ~ \.(jsp|do)$ {  
    proxy_pass http://test;  
  }  

  error_page 500 502 503 504 /50x.html;  
  location = /50x.html {  
    root d:\wwwroot;  
  }  
}

正向代理

resolver 114.114.114.114 8.8.8.8;
  server {
    resolver_timeout 5s;
    listen 81;
    access_log d:\wwwroot\proxy.access.log;
    error_log d:\wwwroot\proxy.error.log;
    location / {
      proxy_pass http://$host$request_uri;
    }
  }
#防盗链
location ~* \.(gif|jpg|png)$ {
    # 只允许 192.168.0.1 请求资源
    valid_referers none blocked 192.168.0.1;
    if ($invalid_referer) {
       rewrite ^/ http://$host/logo.png;
}

根据文件类型设置过期时间

location ~.*\.css$ {
    expires 1d;
    break;
}
location ~.*\.js$ {
    expires 1d;
    break;
}

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {
    access_log off;
    expires 15d; #保存15天
    break;
}

匹配规则

location = / {
  # 精确匹配 / ,主机名后面不能带任何字符串
  [ configuration A ]
}
location / {
  # 因为所有的地址都以 / 开头,所以这条规则将匹配到所有请求
  # 但是正则和最长字符串会优先匹配
  [ configuration B ]
location /documents/ {
  # 匹配任何以 /documents/ 开头的地址,匹配符合以后,还要继续往下搜索
  # 只有后面的正则表达式没有匹配到时,这一条才会采用这一条
  [ configuration C ]
location ~ /documents/Abc {
  # 匹配任何以 /documents/Abc 开头的地址,匹配符合以后,还要继续往下搜索
  [ configuration CC ]
location ^~ /images/ {
  # 匹配任何以 /images/ 开头的地址,匹配符合以后,停止往下搜索正则,采用这一条。
  [ configuration D ]
location ~* \.(gif|jpg|jpeg)$ {
  # 匹配所有以 gif,jpg或jpeg 结尾的请求
  # 然而,所有请求 /images/ 下的图片会被 config D 处理,因为 ^~ 到达不了这一条正则
  [ configuration E ]
location /images/ {
  # 字符匹配到 /images/,继续往下,会发现 ^~ 存在
  [ configuration F ]
location /images/abc {
  # 最长字符匹配到 /images/abc,继续往下,会发现 ^~ 存在
  # F与G的放置顺序是没有关系的
  [ configuration G ]
location ~ /images/abc/ {
  # 只有去掉 config D 才有效:先最长匹配 config G 开头的地址,继续往下搜索,匹配到这一条正则,采用
    [ configuration H ]

常见问题

# root 和 alias的区别?
**root**
location /i/ {
  root /data/wwwroot;
}
真实的路径是root指定的值加上location指定的值,即/data/wwwroot/i/...

**alias**
location /i/ {
  alias /data/wwwroot/;
}
在服务器查找的资源路径是: /data/wwwroot/...

到此这篇关于Nginx速查手册的文章就介绍到这了,更多相关Nginx速查手册内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Servers 相关文章推荐
Filebeat 采集 Nginx 日志的方法
Mar 31 Servers
Nginx工作原理和优化总结。
Apr 02 Servers
docker-compose部署Yapi的方法
Apr 08 Servers
在Docker容器中部署SQL Server
Apr 11 Servers
CentOS7安装GlusterFS集群以及相关配置
Apr 12 Servers
openstack云计算keystone组件工作介绍
Apr 20 Servers
openEuler 搭建java开发环境的详细过程
Jun 10 Servers
nginx之内存池的实现
Jun 28 Servers
zabbix 代理服务器的部署与 zabbix-snmp 监控问题
Jul 15 Servers
Windows Server 2012 R2服务器安装与配置的完整步骤
Jul 15 Servers
Shell中的单中括号和双中括号的用法详解
Dec 24 Servers
从零开始在Centos7上部署SpringBoot项目
CentOS7和8下安装Maven3.8.4
CentOS下安装Jenkins的完整步骤
基于Apache Hudi在Google云构建数据湖平台的思路详解
HDFS免重启挂载新磁盘
Apr 06 #Servers
OpenStack虚拟机快照和增量备份实现方法
Apr 04 #Servers
使用Docker容器部署rocketmq单机的全过程
Apr 03 #Servers
You might like
博士208HAF收音机实习报告
2021/03/02 无线电
php判断邮箱地址是否存在的方法
2016/02/13 PHP
php版微信开发Token验证失败或请求URL超时问题的解决方法
2016/09/23 PHP
php reset() 函数指针指向数组中的第一个元素并输出实例代码
2016/11/21 PHP
JavaScript 捕获窗口关闭事件
2009/07/26 Javascript
js获取窗口相对于屏幕左边和上边的位置坐标
2014/05/15 Javascript
JavaScript中的值类型转换介绍
2014/12/31 Javascript
js面向对象之公有、私有、静态属性和方法详解
2015/04/17 Javascript
JavaScript点击按钮后弹出透明浮动层的方法
2015/05/11 Javascript
一波JavaScript日期判断脚本分享
2016/03/06 Javascript
Bootstrap简单表单显示学习笔记
2016/11/15 Javascript
jQuery插件ajaxFileUpload使用详解
2017/01/10 Javascript
JS将unicode码转中文方法
2017/05/08 Javascript
VUE实现表单元素双向绑定(总结)
2017/08/08 Javascript
Material(包括Material Icon)在Angular2中的使用详解
2018/02/11 Javascript
vue 监听键盘回车事件详解 @keyup.enter || @keyup.enter.native
2018/08/25 Javascript
Vue中的methods、watch、computed的区别
2018/11/26 Javascript
JavaScript变量作用域及内存问题实例分析
2019/06/10 Javascript
Windows上配置Emacs来开发Python及用Python扩展Emacs
2015/11/20 Python
python3批量删除豆瓣分组下的好友的实现代码
2016/06/07 Python
python中的decorator的作用详解
2018/07/26 Python
Python装饰器模式定义与用法分析
2018/08/06 Python
python实现把两个二维array叠加成三维array示例
2019/11/29 Python
在Python中通过threshold创建mask方式
2020/02/19 Python
在CentOS7下安装Python3教程解析
2020/07/09 Python
Django URL参数Template反向解析
2020/11/24 Python
美国最大的香水连锁店官网:Perfumania
2016/08/15 全球购物
个人违纪检讨书
2014/09/15 职场文书
酒店管理失职检讨书
2014/09/16 职场文书
刑事和解协议书范本
2014/11/19 职场文书
介绍长城的导游词
2015/01/30 职场文书
2015年教师党员自我评价材料
2015/03/04 职场文书
小学生作文写作技巧100例,非常实用!
2019/07/08 职场文书
2019通用版新员工入职培训方案!
2019/07/11 职场文书
在 SQL 语句中处理 NULL 值的方法
2021/06/07 SQL Server
ConstraintValidator类如何实现自定义注解校验前端传参
2021/06/18 Java/Android