image.png

结构详解

  1. # 设置worker进程的用户,指的linux中的用户,会涉及到nginx操作目录或文件的一些权限,默认为nobody
  2. user root;
  3. # worker进程工作数设置,一般来说CPU有几个,就设置几个,或者设置为N-1也行
  4. worker_processes 1;
  5. # nginx 日志级别debug | info | notice | warn | error | crit | alert | emerg,错误级别从左到右越来越大
  6. # 设置 nginx 进程 pid
  7. pid logs/nginx.pid;
  8. # 设置工作模式
  9. events {
  10. # 默认使用epoll
  11. use epoll;
  12. # 每个worker允许连接的客户端最大连接数
  13. worker_connections 10240;
  14. }
  15. # http 是指令块,针对http网络传输的一些指令配置
  16. http {
  17. }
  18. # include 引入外部配置,提高可读性,避免单个配置文件过大
  19. include mime.types;
  20. # 设定日志格式,main为定义的格式名称,如此 access_log 就可以直接使用这个变量了
  21. log_format main 'remote_addr - $remote_user [$time_local] "$request" '
  22. '$status $body_bytes_sent "$http_referer" '
  23. '"$http_user_agent" "$http_x_forwarded_for"';
  24. 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_forwarded_for 通过代理服务器来记录客户端的 ip
  1. # sendfile使用高效文件传输,提升传输性能。启用后才能使用tcp_nopush,是指当数据表累积一定大小后才发送,提高了效率
  2. sendfile on;
  3. tcp_nopush on;
  4. # 设置客户端与服务端请求的超时时间,保证客户端多次请求的时候不会重复建立新的连接,节约资源
  5. keepalive_timeout 65;
  6. # gzip启用压缩,html/js/css压缩后传输会更快,但是会消耗服务器性能
  7. gzip on;
  8. # server 可以在 http 指令块中设置多个虚拟主机
  9. # - lsten 监听端口
  10. # - server_name localhost/ip/域名
  11. # - location 请求路由映射,匹配拦截
  12. # - root 请求位置
  13. # - index 首页位置
  14. server {
  15. listen 80;
  16. server_name localhost;
  17. location / {
  18. root html;
  19. index index.html index.htm;
  20. }
  21. }

root 与 alias

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

  • root 路径完全匹配访问
    配置的时候为:

    1. location /imooc {
    2. root /home
    3. }

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

  • alias 可以为你的路径做一个别名,对用户透明
    配置的时候为:

    1. location /hello {
    2. alias /home/imooc
    3. }
  • 用户访问的时候请求为:url:port/hello/files/img/face.png,如此相当于为目录imooc做一个自定义的别名。

gzip

  1. # 开启 gzip 压缩,目的:提高传输效率,节约带宽
  2. gzip on;
  3. # 限制最小压缩,小于1字节文件不会压缩
  4. gzip_min_length 1;
  5. # 定义压缩的级别(压缩比,值越大,压缩越多,但是 CPU 使用会越多)
  6. gzip_comp_level 3;