美文网首页
73.Nginx学习笔记2|Nginx配置结构+最小配置

73.Nginx学习笔记2|Nginx配置结构+最小配置

作者: 人生玩家Eli | 来源:发表于2022-10-25 21:54 被阅读0次
  • 写文用时:3小时5分

输出是最好的学习方式,写文或实践都是输出,一些计算机方面的技能更适合实践。

nginx配置结构

  • nginx中有很多的块,块里面有很多配置项。
  • events、http、server、location这些都是块。
  • server、location这些都和http有关,所以都在http的下面。
events{
  # 一个完整的nginx配置文件一定要有events块,不然会报错。
}

http{
  server{
    # 可以有多个server,用于对不同的网站做不同的配置
    # server块也被叫做“虚拟主机”部分
  }
  server{
    location{
      # 可以有多个location,用于匹配URL 
    }
    location{

    }
  }
}

最小配置

下面列出的配置就是nginx的最小配置了。

用到了三个块(events、http、server)和两个配置项(listen、root)。

events{
  # 一个完整的nginx配置文件一定要有events块,不然会报错。
}

http {
  server {
    listen 8081;  # 监听端口8081
    root html;  # root指令用来设置请求根目录,可以使用相对于项目目录的路径,这里使用项目目录下的html文件夹作为请求根目录。
  }
}

第一步--搭建目录

  • 新建一个目录作为项目的根目录。
  • 在这个目录新建文件夹"html"和"config"

第二步--写入文件

  • 在html文件夹下新建一个文本文件,就叫"test.html",在这个文件里随意打些字就好。
  • 在config文件夹下新建一个文本文件,就叫"nginx.conf",然后把上面的最小配置粘进去。

第三步--运行(错误示范)

  • 回到项目根目录,执行命令sudo nginx -c config/nginx.conf
  • 嗯???有报错?报错信息如下:open() "/etc/nginx/config/nginx.conf" failed (2: No such file or directory)

可以看到,nginx去"/etc/nginx"目录下查找配置了。

所以这个地方不能使用相对路径,应该使用绝对路径。

这个地方把我给坑惨了,我一开始是使用命令"sudo nginx -c nginx.conf"来运行的。

然而"/etc/config"目录下正好有个默认的配置文件叫"nginx.conf",

所以我运行了好几次都觉得配置文件没生效,但又找不到原因。

第四步--运行(正确示范)

  • 如果想使用相对路径,需要使用-p参数来指定项目的根目录,像这样:sudo nginx -p `pwd` -c config/nginx.conf
  • 不出意外的话,应该就成功运行起来了,在浏览器输入localhost:8081/test.html就能看到test.html文件里的内容了!

为什么我一开始没有想到使用-p参数呢,原因有二:

  1. 以前使用nginx或openresty时,都是从笔记里复制命令,所以没出过错,但也不明白命令的含义。
  2. 书上说-p参数用来指定"nginx的安装目录",我没太看明白,以为真的是指nginx的安装目录,就没去管。但后来看了看文档明白了,文档是这么说的:"set nginx path prefix, i.e. a directory that will keep server files (default value is /usr/local/nginx).",大概就是说-p用来指定一个目录,这个目录是用来存放服务器文件的,我的理解就是项目的根目录了。还是看文档准确性更高呀!
    也可能是因为项目目录通常就是nginx的安装路径?所以书上说-p指定的是nginx安装路径?我不清楚。

第五步--其它命令

  • 重载配置:sudo nginx -p `pwd` -c config/nginx.conf -s reload
  • 优雅退出:sudo nginx -p `pwd` -c config/nginx.conf -s quit

最后放上学习nginx的3个地方:

相关文章

网友评论

      本文标题:73.Nginx学习笔记2|Nginx配置结构+最小配置

      本文链接:https://www.haomeiwen.com/subject/jmszzrtx.html