nginx.conf的文件结构
user www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;
events {
worker_connections 768;
# multi_accept on;
}
http {
##
# Basic Settings
##
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
# server_tokens off;
# server_names_hash_bucket_size 64;
# server_name_in_redirect off;
include /etc/nginx/mime.types;
default_type application/octet-stream;
##
# SSL Settings
##
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
ssl_prefer_server_ciphers on;
##
# Logging Settings
##
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
##
# Gzip Settings
##
gzip on;
# gzip_vary on;
# gzip_proxied any;
# gzip_comp_level 6;
# gzip_buffers 16 8k;
# gzip_http_version 1.1;
# gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
##
# Virtual Host Configs
##
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
不同的块有不同的作用域,此文件中有全局块,events块,http块等等,同一配置块中嵌套配置块没有次序关系。
同一指令出现在不同层级的块中,采用“就近原则”。
各个块的大致用途
-
全局块
设置一些影响Nginx服务器整体运行的配置指令。 -
events块
影响服务器与用户的网络连接。 -
http块
代理,缓存和日志文件等就大多数的功能和第三方模块的配置都放在这。 -
server块
主要和“虚拟主机”概念有关,每个server块相当于一个虚拟主机。
虚拟主机,或称 共享主机、虚拟服务器、主机空间,是一种技术,是一种在单一主机或主机群上,实现多网域服务的方法,可以运行多个网站或服务的技术。虚拟主机之间完全独立,并可由用户自行管理,虚拟并非指不存在,而是指空间是由实体的服务器延伸而来,其硬件系统可以是基于服务器群,或者单个服务器。其技术是互联网服务器采用的节省服务器硬件成本的技术,虚拟主机技术主要应用于HTTP,FTP,EMAIL等多项服务,将一台服务器的某项或者全部服务内容逻辑划分为多个服务单位,对外表现为多个服务器,从而充分利用服务器硬件资源。如果划分是系统级别的,则称为虚拟服务器。 -
location块
location块为server块的一个指令。
基于服务器接收到的请求字符串进行匹配,对特定的请求进行处理。地址定向,数据请求,应答控制等等还有第三方模块都是在这里实现。