1. Nginx入门教程

[success] 文档说明: 本文档只是Nginx的入门教程,后续待补充~

1.1. 简单介绍

Nginx是一个开源且高性能,可靠的HTTP中间件、代理服务。

Nginx优势所在:

  1. IO多路复用多路复用epollepoll (主动上报机制)
  2. 轻量级
  3. CPU亲和CPU亲和
  4. 静态文件处理采用sendfilesendfile

1.2. Nginx快速安装和简单目录结构说明

系统环境: Ubuntu 16.04

Nginx版本: 1.10.3

Ubuntu用户可以直接使用apt快速安装Nginx:

 sudo apt install -y nginx

查看Nginx安装了哪些依赖包:

 dpkg --list | grep nginx

查看包安装位置:

 dpkg -L nginx

默认情况下,Nginx的安装位置为: /etc/nginx

其下的默认目录为:

 conf.d        fastcgi_params  koi-win     nginx.conf    scgi_params      sites-enabled  uwsgi_params
 fastcgi.conf  koi-utf         mime.types  proxy_params  sites-available  snippets       win-utf

其中nginx.conf文件为Nginx的主配置文件,其内容如下所示:

user www-data;
worker_processes auto;
pid /run/nginx.pid;

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_disable "msie6";

    # 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/*;
 }

简单的参数讲解:

参数 作用
user 设置Nginx服务的系统使用用户
worker_processes 工作进程数
pid Nginx服务启动时的pid
模块 参数 作用
events worker_connections 每个进程允许最大连接数
http error_log 错误日志所在目录
http include 载入的配置文件所在位置

1.3. 简单使用

[info] 个性化配置导入说明
  个性化配置文件一般放在/etc/nginx/conf.d//etc/nginx/sites-enabled下,Nginx服务的个性化配置范例位置在/etc/nginx/sites-enabled/default。这两个文件夹下配置文件的区别是,在文件夹conf.d下配置文件以.conf结尾,在文件夹sites-enabled下配置文件无后缀。

接下来我将从最简单的配置开始并逐步充实配置内容,在此过程中详细讲解每一步配置的作用,该配置文件将位于/etc/nginx/conf.d/下并命名为example.conf
example.conf初始内容如下:

server {
        listen 80;
        listen [::]:80;

        server_name 192.168.200.206;  # 主机名或对外域名

        location / {  # 配置默认访问的路径访问的位置
            index index.html;  # 加载的首页
            root /home/workspace/www;  # 静态资源路径
        }
}

1.3.1. 指定错误界面

当发生50X错误时,将页面导入指定的静态错误页面,以下配置内容添加到上例server中: example.conf添加内容如下:

    error_page  500 502 503 504 /50x.html;  # 当发生500,502,503,504错误时,页面导入到静态页面50x.html
    localtion = /50x.html {
        root /home/workspace/www;  # 50x.html文件所在路径
    }
多路复用. 多个描述符的I/O操作都能在一个线程内并发交替地顺序完成,这就叫I/O多路复用,这里的“复用”指的是复用一个线程。
epoll. I/O多路复用的模型有select,poll,epoll。epoll是每当FD(文件描述符)准备就绪,采取系统的回调函数将其放入就绪列表,且单进程无监视数量限制。
CPU亲和. 是一种把CPU核心和Nginx工作进程绑定方式,把每个worker进程固定在一个CPU上执行,减少切换CPU的内存消耗。
sendfile. linux中的零拷贝技术。原始的文件操作:file->内核空间->用户空间->内核空间->socket,sendfile后文件操作:file->内核空间->socket。

results matching ""

    No results matching ""

    results matching ""

      No results matching ""