Nginx基础二(配置语法,Nginx变量)

一、http请求

先补充一点 http 知识


http请求.png
  • yum install -y curl
    curl 可以理解成是一个浏览器,只是不能看到页面,看到的是http请求的信息。
  • curl http://www.baidu.com
    使用curl请求baidu地址,可以看到返回的html代码(即服务端返回的响应正文)
  • curl -v http://www.baidu.com >/dev/null
    (">/dev/null" 表示将返回的内容重定向到linux空设备上)
    执行上述命令,可以看到详细信息,> 标注的是request信息,包括请求行,请求头部,请求数据,< 标注的是response信息,包括状态行,信息报头,响应正文。

二、Nginx主配置etc/nginx/nginx.conf详解

执行vi etc/nginx/nginx.conf可以看到以下配置内容

user nginx ;     
worker_processes 4;             
error_log   /var/log/error.log  warn;    
pid        /var/run/nginx.pid;     

events {
  worker_connections 1024;
}

http {
  include   /etc/nginx/mime.types
  default_type  application/octet-stream;

  log_format main  '$remote_addr - $remote_user [$time_local] "$request" '
                   '$status $body_bytes_sent  "$http_referer" '
                   '"$http_user_agent"  "$http_x_forwarded_for" '

  access_log  /var/log/nginx/access.log main;
  sendfile      on;
   #tcp_nopush   on;

  keepalive_timeout 65;
  #gzip on;
  include /etc/nginx/conf.d/*.conf;
}

(1) user nginx 设置nginx 服务的系统使用用户, 默认即是nginx,可不设置
(2) worker_processes 4; 工作进程数, 一般设置为和cpu核数一样
(3) error_log /var/logs/error.log warn; 错误日志存放目录(主要用于Nginx处理http请求错误的状态,以及Nginx本身服务运行错误的状态 ), warn表示错误日志的级别
(4)pid /var/run/nginx.pid; 进程pid存放位置
(5) events 下的worker_connections : 每个进程允许的最大连接数量(最大设至65535),use: 工作进程数

http下的一些配置及其意义

(1) include /etc/nginx/mime.types; 文件扩展名与文件类型映射表
(2) default_type application/octet-stream; 默认文件类型
(3) log_format用来设置日志格式,只能配置在http模块下。其中$remote_addr$remote_addr$开头的都是Nginx中的变量,通过一些符号连接在一起,组成nginx的access_log日志格式。

  • $remote_addr 客户端地址
  • $remote_user 客户端请求Nginx认证的用户名,如果默认没有开启认证模块,将不会记录
  • $time_local Nginx时间
  • $request request头请求行
  • $status response返回的状态码
  • $body_bytes_sent 服务端响应给客户端的body信息的大小
  • $http_referer HTTP Referer是header的一部分,当浏览器向web服务器发送请求的时候,一般会带上Referer,告诉服务器我是从哪个页面链接过来的,服务器基此可以获得一些信息用于处理
  • $http_user_agent http头信息的一部分,
  • $http_x_forwarded_for 简称XFF头,它代表客户端,也就是HTTP的请求端真实的IP,只有在通过了HTTP 代理或者负载均衡服务器时才会添加该项。它不是RFC中定义的标准请求头信息

(4) access_log指定日志文件的存放路径、格式和缓存大小,主要依赖于log_format的配置,记录到每次http请求的访问状态,后面的main与log_format main中的main是对应的,表示将日志按log_format main中的main的格式要求记录到access_log里
(5) sendfile on; 开启高效文件传输模式,sendfile指令指定nginx是否调用sendfile函数来 输出文件,对于普通应用设为 on,如果用来进行下载等应用磁盘IO重负载应用,可设置 为off,以平衡磁盘与网络I/O处理速度,降低系统的负载。注意:如果图片显示不正常 把这个改成off。
(6)tcp_nopush on; 防止网络阻塞
(7) autoindex on; 开启目录列表访问,合适下载服务器,默认关闭。
(8)keepalive_timeout 65; 长连接超时时间,单位是秒
(9)gzip on; 开启gzip压缩输出
(10) include /etc/nginx/conf.d/*.conf; nginx读完etc/nginx/nginx.conf后,同时会读etc/nginx/conf.d/下所有的.conf文件(默认/etc/nginx/conf.d目录下只有一个default.conf文件)

三、配置文件 etc/nginx/conf.d/default.conf 详解

server{
  listen 80;
  server_name localhost;

  location / {
    root /usr/share/nginx/html;
    index index.html index.htm;
  }

  error_page 500 502 503 504 /50x.html;
  location = /50x.html {
    root /usr/share/nginx/html;
  }
}

(1) listen 该server 监听的端口
(2) server_name 服务名称(域名)
(3) location 一个server 可以有多个location,。
root当某一个server里面没有其他的路径可以访问时 ,会默认访问该配置目录下的文件。
index定义首页默认访问的是哪个文件, 如果index.html没有找到就会去找index.htm。
ls /usr/share/nginx/html可以看到里面有两个50x.html 和index.html两个文件,如下图所示:

50x.html & index.html.png

可以尝试修改index.html, 保存后用浏览器访问server 的 ip ( 执行ip a可以看到server的ip), 即可看到修改后的结果。
(4) error_page 定义当返回状态码是500,502,503,504时,返回错误页面50x.html,。50x.html 页面的位置在root /usr/share/nginx/html 中。
可以做如下尝试:
先访问一个不存在的路径,发现返回了404页面。
然后在error_page中加入状态码404,再重启服务(systemctl restart nginx.servicesystemctl reload nginx.service),重新访问这个不存在的路径,发现返回了50x.html页面。

四 、Nginx变量

(1) HTTP请求变量

  • arg_PARAMETERarg_+ http请求参数名作为一个变量
  • http_HEADER request请求的HEAD
  • sent_http_HEADER 服务端返回给客户端的response的HEAD

(2)内置变量
官网查看内置变量
(3)自定义变量

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,132评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,802评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,566评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,858评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,867评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,695评论 1 282
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,064评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,705评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,915评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,677评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,796评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,432评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,041评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,992评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,223评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,185评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,535评论 2 343

推荐阅读更多精彩内容