从零开始nginx配置

在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中的配置。


参考:

nginx服务器安装及配置文件详解

Nginx配置参数中文说明

nginx的配置、虚拟主机、负载均衡和反向代理(1)