手记

【学习打卡】第2天 Nginx学习

课程名称:Java架构师-技术专家

课程章节: 第6周 集群架构:LVS+Nginx高可用集群

主讲老师:慕课讲师团:Geely、风间影月、阿神……

课程内容:

今天继续学习Nginx,学习内容如下:

1、nginx.conf 核心配置文件

  1. 设置worker进程的用户,是指linux中的用户,会涉及到nginx操作目录或文件的一些权限,默认为 nobody
    user root;
    
  2. worker 进程的数量设置,一般来说CPU有几个,就设置几个worker进程,或者设置为 N-1。
    worker_processes  1;
    
  3. nginx 日志级别 debug|info|notice|warn|error|crit,错误级别从左到右越来越大。
    #error_log  logs/error.log;
    #error_log  logs/error.log  notice;
    #error_log  logs/error.log  info;
    
  4. 设置nginx进程pid
    pid    logs/nginx.pid
    
  5. 设置工作模式
    events {
    	# 默认使用 epoll
    	use epoll;
    	# 每个worker允许连接的客户端最大连接数,配置太高会起到反作用。
    	worker_connection 1024;
    }
    
  6. http 是指令块,针对 http 网络传输的一些指令配置
    http {
    }
    
  7. include 引入外部配置,提高可读性,避免单个配置文件过大
    include mime.types; # 请求传输的内容类型
    
  8. 设置日志格式,main 为定义的格式名称,如此 access_log 就可以直接使用这个变量了。
    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';
    
    #access_log  logs/access.log  main;
    
参数名 参数意义
$remote_addr 客户端 ip
$remote_user 远程客户端用户名,一般为: ‘_’
$time_local 时间和时区
$request 请求的url以及method
$status 响应状态码
$body_bytes_send 响应客户端内容字节数
$http_referer 记录用户从那个链接跳转过来的
$http_user_agent 用户所使用的代理,一般来时都是浏览器
$http_x_forward_for 通过代理服务器来记录客户端ip
  1. sendfile 使用高效文件传输,提高传输性能。启用后才能使用 tcp_nopush,s是指当数据表累积到一定大小后才发送,提高了效率。

    sendfile   on;
    tcp_nopush   on;
    
  2. keepalive_timeout 设置客户端与服务器请求的超时时间,保证客户端多次请求的时候不会重复建立新的连接,节约资源损耗。

    keepalive_timeout 65;
    
  3. gzip 启用压缩, http/js/css压缩后传输更快

    gzio   on; # 提高传输效率、节约带宽
    gzuo_min_length  1; #限制最小压缩,小于1字节不会压缩
    gzip_comp_level 3; # 定义压缩的级别,文件越大,压缩越多,但是cpu使用会越多
    gzip_types text/plain; #定义压缩文件的类型
    
  4. server 可以在 http 指令块中设置多个虚拟主机

    server {
    	listen	80; # 监听端口
    	server_name	localhost; # ip或域名
    	localtion / { # 请求路由映射,匹配拦截
    		root html; # 请求位置
    		index index.html; # 首页设置
    	}
    }
    

    2、 root 与 alias

    假设服务器路径为:/home/imooc/files/img/face.png

    2.1、root 路径完全匹配访问

    配置为:

    location /imooc {
    	root /home
    }
    

用户访问的时候请求为:url:port/imooc/files/img/face.png

2.2、alias 可以为你的路径做一个别名,对用户透明

配置的时候为:

```conf
location /hello {
	alias /home/imooc
}
```

用户访问的时候请求为: url:port/hello/files/img/face.png,如此相当于为目录 imooc做了一个自定义的别名。

课程收获:

通过今天的学习学会了:

  1. nginx 的核心配置文件 nginx.conf 的常见配置的含义及用法。

  2. 学会了使用nginx搭建静态文件资源服务器。
    学习时长60分钟,第二天完毕,再接再厉!

1人推荐
随时随地看视频
慕课网APP