Nginx 基本入门1

2017-09-22  本文已影响0人  DayDayUpppppp

nginx对于使用者来说,最重要的是熟悉它的配置文件。下面是一个nginx的一个标准配置文件nginx.conf, 我的想法是把配置文件里面的每一行的作用分析一下,这样可以了解nginx 的基本功能。然后,配置一个nginx静态服务器,作为练手。

image.png
#line 8 ~line14
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    #tcp_nopush     on;
    keepalive_timeout  65;
    #gzip  on;
    ...
    ...

include 表示嵌入将其他的配置文件嵌入到当前的配置文件里面。

关于mime.types ,我的理解是:
HTTP request里面有一个头叫 Accept,列出浏览器可以接受的mime type,HTTP response 的Content-Type 的值 在Accept 里面。我的理解是Nginx 会根据请求的文件的扩展名来决定返回什么 Content-Type。

如果Web程序没设置,Nginx也没找到对应文件的扩展名的话,就使用默认的Type,这个在Nginx 里用 default_type定义,比如 default_type application/octet-stream; 。

关于sendfile on
这是nginx 的文件操作的优化配置之一,这个是启用linux上的sendfile系统调用来发送文件,这样就减少了内核态和用户态的切换,减少了两次内存的复制。文件从磁盘里面读取之后直接在内核态里面写入网卡设备,提高了发送文件的效率。

关于nginx文件操作的优化,还有aio,directio,还有文件缓存机制open_file_cache_max等

keepalive_timeout 65;
http请求里面的keepalive 功能是为了让多个请求复用一个http长连接,这个功能可以提高服务器的性能。 keepalive_timeout 表示了一个长连接闲置超过65秒的时候,服务器就会关闭这个链接。

gzip on;
表示启用压缩

#line 17 ~31
server {
    listen       80;
    server_name  localhost;
    location / {
        root   html;
        index  index.html index.htm;
    }
    #error_page  404              /404.html;
    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   html;
    }
}

每一个server块表示的是一个虚拟主机
listen 80 表示的是在监听的端口是80,server_name 表示的是虚拟主机的名字

line19 ~ line22
location /test {
      root  html;   #这个root也可以不写,因为默认的root就是html
}

假设nginx 的服务器的路径是:


image.png

location的作用是,会尝试根据用户的请求中的URI来匹配上面的/URI的表达式,如果可以匹配,就选择location的规则来处理用户的请求。所以,location的作用就是,选择location里面的配置来处理用户的请求。

对于这样的一个location ,对于请求是 127.0.0.1/test/my.html , nginx收到这个请求之后,处理的流程是:

  1. location 找到test
  2. 在root的路径对应的html文件夹下面找到test 文件里里面的my.html文件

小结

小结一下,nginx配置文件的结构图,应该是如下:

untitled.png

这篇文章写的是nginx配置文件的分析,这一篇文章写的是关于nginx的基本使用和一些常用的配置。
https://www.jianshu.com/p/b2817017ddaf

上一篇下一篇

猜你喜欢

热点阅读