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

2018-08-16  本文已影响0人  candy252324

一、http请求

先补充一点 http 知识


http请求.png

二、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日志格式。

(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请求变量

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

上一篇 下一篇

猜你喜欢

热点阅读