Nginx 基础教程(一)建立一个网站
鉴于毕竟多数 Nginx 用户对基本配置项的理解几乎为 0,还是决定来写一些基础的东西。遂有了这个Nginx 基础教程系列。本文介绍用 Nginx 建立一个网站所需要的最基本的配置项。
Nginx 的配置文件构成
Nginx 的默认配置文件一般为 nginx.conf,这个文件内你需要写入 Nginx 的最基本的运行配置,这个文件也被称作 Nginx 的全局配置文件。这个文件内的配置对整个 Nginx 生效,且实际上 Nginx 只会读取这个文件内包括的配置,它是 Nginx 的唯一配置文件,其它的配置文件都需要使用 include 来引入。
与之对应的,有另外一个概念,叫做站点配置文件。这个文件一般可有可无。文件名可以随意,可以命名为例如website.conf。如果要使用额外的配置文件,需要在全局配置文件 nginx.conf 的 http 段配置中写入下面这行,来将这个配置导入到 Nginx:
http {
...
include website.conf;
}
全局配置
上文已提到,nginx.conf 是全局配置文件。这个文件需要至少包括下列配置项:
# 运行 Nginx 的用户组和用户名。一般不建议使用 root 账户,可以另外创建一个 www www 用户
user www www;
# 运行 Nginx 的进程数,可以设置为 CPU 核心数。我建议指定为 auto 自动
worker_processes auto;
# 错误日志的生成路径和记录等级
error_log /home/nginx/logs/error.log crit;
# 运行 Nginx 的 pid 生成路径
pid /home/nginx/sbin/nginx.pid;
# 最大访问文件数限制
worker_rlimit_nofile 2048;
events
{
# Nginx 使用的事件模型,有其它值例如 kqueue 等。一般保持这个值为 epoll 即可
use epoll;
#单个 worker process 进程的最大并发链接数。所以 Nginx 最大总连接数 = [worker_processes * worker_connections]
worker_connections 2048;
}
http
{
# Nginx 的默认指定文件类型名称的配置文件
include mime.types;
# Nginx 的默认文件类型
default_type application/octet-stream;
# 导入你的站点配置文件
include website.conf;
}
站点配置
那么接下来就要写站点配置了,这里面包括了你要建立的网站的配置项。本文按照 HTTP 和 HTTPS 列举出两种最基本的站点配置。
HTTP
server
{
# Nginx 的监听端口,其实可以随意。这里只是因为 HTTP 站点访问默认是 80 端口
listen 80;
# 你的网站的文件的所在根路径,使用绝对路径
root /home/site;
# 访问地址未指定要访问的文件名时,默认访问的文件名
# 例如访问某网站首页,这个 index.php 就是首页的文件
index index.php;
# 访问日志的生成路径
access_log /home/nginx/access-log;
# 你网站要使用的域名
server_name example.example.com;
}
HTTPS
server
{
# Nginx 的监听端口,其实可以随意。这里只是因为 HTTPS 站点访问默认是 443 端口
listen 443;
# 你的网站的文件的所在根路径,使用绝对路径
root /home/site;
# 访问地址未指定要访问的文件名时,默认访问的文件名
# 例如访问某网站首页,这个 index.php 就是首页的文件
index index.php;
# 访问日志的生成路径
access_log /home/nginx/access-log;
# 你网站要使用的域名
server_name example.example.com;
# 下面是指定 SSL 的相关配置,均是必填项目
# 开启 SSL
ssl on;
# 使用的 TLS 版本
ssl_protocols TLSv1.1 TLSv1.2;
# SSL 站点证书的所在路径,使用绝对路径
ssl_certificate /home/crt/example.cer;
# SSL 站点证书密钥的所在路径,使用绝对路径
ssl_certificate_key /home/crt/example.key;
}