在Ubuntu14中安装好nginx,版本为1.4.6。 要了解nginx的配置,我喜欢从默认的配置开始。默认安装好的nginx的配置位于/etc/nignx目录下。
从默认的nginx.conf开始
nginx.conf的默认配置(去掉注解掉的部分)如下:
user www-data;
worker_processes 4;
pid /run/nginx.pid;
events {
worker_connections 768;
}
http {
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
include /etc/nginx/mime.types;
default_type application/octet-stream;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
gzip on;
gzip_disable "msie6";
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
上面默认的配置文件中,最吸引人的就是3个include了:
include /etc/nginx/mime.types;
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
而include /etc/nginx/mime.types;
能猜到是配置mime的,不是我们要了解的重点。剩下的include /etc/nginx/conf.d/*.conf;
和include /etc/nginx/sites-enabled/*;
在sites-enabled 目录下的配置文件才能够真正被用户访问,可以将nginx配置放在此目录底下;而默认的只有一个default。conf.d中默认没有任何内容,如果你想要添加多个站点,也可以把配置放在该文件下。
以上的配置中包含了全局设置、events设置和http设置。除此之外,还会有server设置、location设置和upstream设置。
user
指定了Nginx Worker进程运行用户以及用户组。
worker_processes
设置nginx的进程数,最好和CPU的数量一致。
pid
用来指定进程id的存储文件位置。
events
设置了nginx的工作模式和工作模式及连接数上限。
http
负责HTTP服务器相关属性的配置。
该文件可以先了解到这里,让我们先看下最为耀眼的include的内容。
sites-enabled中的default配置
在sites-enabled中,现在暂时只有一个default文件。打开default,整理后如下代码:
server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
root /usr/share/nginx/html;
index index.html index.htm;
server_name localhost;
location / {
try_files $uri $uri/ =404;
}
}
这一段代码是配置一个虚拟主机的。一个大型的网站通常会有很多的站点,有各自的服务器提供相应的服务,在nginx中我们可以通过虚拟主机的概念来将这些不同的服务配置隔离,这就是上面配置中的server的含义。
listen
用于指定虚拟主机的服务端口。default_server
指的是如果有其他http请求的host在nginx中不存在设置的话那么就用这个server的配置来处理。比如我们去访问 127.0.0.1 那么也会落到这个server来处理。root
表示在这整个server虚拟主机内,web的根目录。server_name
用来指定IP地址或者域名,多个域名之间用空格分开。 这里的server_name是和客户端http请求中的host行进行匹配的。location
用来匹配请求的路径。location是支持正则表达式的,这里的/
匹配所有的请求,也就是说 /xxx和/yyy都会进行匹配到。try_files意思是nginx会按照接下来的顺序去访问文件,将第一个匹配的返回。
conf.d中的配置
在该目录下也是可以进行虚拟主机的配置的,配置的方法同default中的配置。
参考: