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 相关文章推荐
详解Apache SkyWalking 告警配置指南
Apr 22 Servers
Nginx实现高可用集群构建(Keepalived+Haproxy+Nginx)
May 27 Servers
Nginx配置文件详解以及优化建议指南
Sep 15 Servers
Nginx源码编译安装过程记录
Nov 17 Servers
Nginx速查手册及常见问题
Apr 07 Servers
Windows Server 2019 安装DHCP服务及相关配置
Apr 28 Servers
Win10 Anaconda安装python-pcl
Apr 29 Servers
Vscode中SSH插件如何远程连接Linux
May 02 Servers
Nginx 匹配方式
May 15 Servers
win server2012 r2服务器共享文件夹如何设置
Jun 21 Servers
Linux中一对多配置日志服务器的详细步骤
Jul 23 Servers
CentOS7 minimal 最小化安装网络设置过程
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
针对初学PHP者的疑难问答(1)
2006/10/09 PHP
PHP数组对比函数,存在交集则返回真,否则返回假
2011/02/03 PHP
rephactor 优秀的PHP的重构工具
2011/06/09 PHP
从PHP $_SERVER相关参数判断是否支持Rewrite模块
2013/09/26 PHP
jQuery 对象中的类数组操作
2009/04/27 Javascript
JavaScript 事件记录使用说明
2009/10/20 Javascript
JS连连看源码完美注释版(推荐)
2013/12/09 Javascript
jquery分隔Url的param方法(推荐)
2016/05/25 Javascript
完美解决jQuery符号$与其他javascript 库、框架冲突的问题
2016/08/09 Javascript
微信小程序注册60s倒计时功能 使用JS实现注册60s倒计时功能
2017/08/16 Javascript
weui中的picker使用js进行动态绑定数据问题
2019/11/06 Javascript
js仿360开机效果
2019/12/26 Javascript
javascript设计模式之装饰者模式
2020/01/30 Javascript
微信小程序的引导页实现代码
2020/06/24 Javascript
nodeJs项目在阿里云的简单部署
2020/11/27 NodeJs
Vue Elenent实现表格相同数据列合并
2020/11/30 Vue.js
[28:07]完美世界DOTA2联赛PWL S3 Phoenix vs INK ICE 第二场 12.13
2020/12/17 DOTA
python小技巧之批量抓取美女图片
2014/06/06 Python
python音频处理用到的操作的示例代码
2017/10/27 Python
Python数据分析之双色球统计两个红和蓝球哪组合比例高的方法
2018/02/03 Python
将python运行结果保存至本地文件中的示例讲解
2019/07/11 Python
Series和DataFrame使用简单入门
2019/11/13 Python
python图形开发GUI库pyqt5的详细使用方法及各控件的属性与方法
2020/02/14 Python
python+opencv3生成一个自定义纯色图教程
2020/02/19 Python
Python爬取股票信息,并可视化数据的示例
2020/09/26 Python
拥有超过850家商店的美国在线派对商店:Party City
2018/10/21 全球购物
介绍一下sql server的安全性
2014/08/10 面试题
早读迟到检讨书
2014/01/24 职场文书
个人自我评价范文
2014/02/05 职场文书
个人工作表现评语
2014/04/30 职场文书
2015年双拥工作总结
2015/04/08 职场文书
技能培训通讯稿
2015/07/18 职场文书
2016三八妇女节校园广播稿
2015/12/17 职场文书
使用golang编写一个并发工作队列
2021/05/08 Golang
试用1103暨1103、1101同门大比武 [ DAIWEI ]
2022/04/05 无线电
《金肉人》米特&《航海王》阿鹤声优松岛实因胰脏癌去世 享寿81岁
2022/04/13 日漫