nginx入门

主要功能

静态文件服务器、反向代理、负责均衡器

基本组成

一个master进程,多个worker进程
master进程主要负责读配置文件与维护worker进程
worker进程实际负责处理请求,数目可固定也可根据cpu核数动态调整

基本命令

nginx -t 查看nginx.conf配置语法是否正确
nginx -s reload 重新加载nginx配置文件(配置热加载,通过关闭旧worker,新建新worker完成)
nginx -s stop 快速关闭
nginx -s quit 优雅关闭(工作进程会处理完已到达的请求)
nginx -s reopen 重新打开日志文件

配置文件结构

1、配置文件由指令组成,指令又分为普通指令与块指令
2、普通指令由name、空格、parameter、分号组成
3、块指令由{}括起来的多条指令组成,块指令内部又可看作一个指令上下文
4、不在任何其它指令上下文的指令在main上下文中
5、#标识一行为注释
例如:events、http指令在main上下文中
server指令在http指令上下文中,location指令在server指令上下文中

作为静态内容服务器

一个基本的配置如下

#nginx启动用户
user  nginx;
#工作线程数
worker_processes  1;
events {
    #每个进程处理的连接数
    worker_connections  1024;
}
http {
    #多个server之间通过监听的端口区分,可监听多个端口
    server {
        #不写默认监听80
        listen 80;
        # 请求到达时,通过URI匹配location
        location / {
            #静态文件路径
            root /data/www;
        }
        location /image/ {
            root /data;
        }
    }
}

实际文件位置:/data/www/index.html /data/image/1.jpg
注意:访问http://host/image/时会匹配第二个location,但是会去/data目录下找image目录,而不是直接在/data目录下

作为代理服务器

一个基本的配置如下

user  nginx;
worker_processes  1;
events {
    worker_connections  1024;
}

http {
    # 与proxy_pass一致
    upstream test_proxy {
        server localhost:8888;
        server localhost:8887;
    }

    server {
        # 不写默认监听80
        listen 80;
        # 注意必须写http://
        location / {
            proxy_pass http://test_proxy;
        }
    }
}

通过upstream、proxy_pass两个指令完成反向代理+负载均衡
本质通过nginx转发请求到指定ip+port,默认策略为轮询
注意:若要完全HA,得解决nginx单点问题,可通过KeepAlived实现

其它

当访问失败时,可查看log/error.log查看nginx实际解析的路径

posted @ 2018-08-30 14:09  nlskyfree  阅读(118)  评论(0)    收藏  举报