美文网首页
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