当前位置:   article > 正文

Mac Nginx 配置文件使用(nginx.conf,包含M系列)_macnginx

macnginx

一、Mac Nginx 安装


二、nginx.conf 配置文件使用

  • 配置文件路径为:

    /usr/local/etc/nginx/nginx.conf
    
    # M1 系统路径
    /opt/homebrew/etc/nginx/nginx.conf
    
    • 1
    • 2
    • 3
    • 4

    本地 hosts 文件路径:

    /etc/hosts
    
    • 1

    找到配置文件之后,通常我们需要先备份一下,nginx.conf 文件拷贝一份改名为 nginx.conf.bak ,以防万一,我们继续使用 nginx.conf 文件进行配置调整:

  • 使用命令行去除注释内容

    $ cd /usr/local/etc/nginx 
    $ egrep -v '#|^$' nginx.conf
    
    # M1 系统路径
    /opt/homebrew/etc/nginx
    
    • 1
    • 2
    • 3
    • 4
    • 5
  • 这是去除注释之后的内容,我们来分析分析大概意思,如果有需要可以看看 Nginx 配置文件(nginx.conf)属性详细总分析

    # Nginx worker 进程个数:其数量直接影响性能。
    # 推荐设置:cpu的个数 * 核心数(几核CPU)
    worker_processes  1;
    
    events {
        # 配置每个工作进程支持的最大连接数(一个进程的并发量)
        worker_connections  1024;
    }
    
    http {
        # 嵌入其他配置文件
        include       mime.types;
        
        # 响应文件类型
        default_type  application/octet-stream;
        
        # 日志格式
        # 语法:log_format 格式名称 格式样式(可以多个)
        # log_format 与 access_log 既可以配置在 http{ ... }里面,也可以配置在虚拟主机 server{ ... } 里面
        #log_format  main  '$remote_addr - $remote_user - $http_user_agent';
        
        # 日志文件的存放路径、格式、缓存大小
        # log_format 与 access_log 既可以配置在 http{ ... }里面,也可以配置在虚拟主机 server{ ... } 里面
        #access_log  logs/access.log  main;
        
        # 是否使用 sendfile 系统调用来传输文件
        sendfile        on;
        
        # 超时时间
        keepalive_timeout  65;
        
        # 每一个 server 就是一个虚拟主机,当需要多站点的时候多配置几个 server 即可
        server {
        
            # 监听的端口号
            listen       8080;
            
            # 主机名称,如果是本地电脑测试,记得在 hosts 文件中做好域名解析
            server_name  localhost;
            
            # 当浏览器输入地址访问服务器的时候,就会进入到这个里面来匹配,这个配置看文章底部
            location / {
            
                # 匹配的根目录,只写文件名默认在 /nginx 文件夹下
                # 也可以写成绝对路径 root /usr/local/var/dzm;
                root   html;
                
                # 设置默认首页,按先后顺序匹配首页
                index  index.html index.htm;
            }
            
            # 当报错 500 502 503 504 的时候走这个指定页面
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   html;
            }
        }
        
        # 嵌入其他配置文件
        # 语法:include /path/file 绝对路径,指定目录下的指定文件
        # 语法:include path/file 相对路径,指定目录下的指定文件
        # 语法:include path/* 指定目录下的所有文件
        # 语法:include file 当前 nginx.conf 同文件夹下的指定文件
        # 参数既可以是绝对路径也可以是相对路径(相对于 nginx 的配置目录,即 nginx.conf 所在的目录
        # 本文下面有使用示例 —— nginx.conf 多个虚拟主机使用
        include servers/*;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67

三、测试 mac 本机新增一个虚拟主机

  • nginx.conf

    # 新增一个 server
    server {
      listen 8080;
      server_name www.dzm.com;
      location / {
        root /usr/local/var/dzm;
        index index.html;
      }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

  • hosts:

    # 多站点配置测试
    127.0.0.1	www.dzm.com
    
    • 1
    • 2

    配置好之后,需要运行 $ nginx -s reload 刷新配置文件,然后访 http://www.dzm.com:8080 路径

  • 运行效果


四、多个虚拟主机使用

  • 现在我的 server 虚拟主机都是放在当前 nginx.conf 文件中,如果当有很多的虚拟主机的时候,我们可以将这些配置虚拟主机单独放在一个文件里面进行配置,然后 includenginx.conf 文件中即可,这样也就避免了 nginx.conf 内容庞大!

  • 这里我在 nginx.conf 当前文件夹内新建一个 servers/servers.conf 文件夹跟文件,servers.conf 文件里面就存放我们的虚拟站点,你也可以一个文件一个站点。

    在配置文件里面最尾部我们已经配置了 include servers/*;,也就相当于导入 servers 文件夹内的所有文件。

  • servers.conf 文件中,我重新配置了一个新的域名,并在 hosts中配置好

    • servers.conf:

      server {
        listen 8081;
        server_name www.xyq.com;
        location / {
          root /usr/local/var/xyq;
          index index.html;
        }
      }
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8

    • hosts:

      # 多站点配置测试
      127.0.0.1	www.dzm.com
      127.0.0.1	www.xyq.com
      
      • 1
      • 2
      • 3

      配置好之后,需要运行 $ nginx -s reload 刷新配置文件,然后访 http://www.xyq.com:8081 路径

  • 运行效果


五、虚拟主机别名设置

  • servers.conf:

    server {
      listen 8081;
      # 别名只需要在域名后面通过 空格分开之后直接写别名即可
      server_name www.xyq.com xyq.net xyq.cn;
      location / {
        root /usr/local/var/xyq;
        index index.html;
      }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
  • hosts:

    # 多站点配置测试
    127.0.0.1	www.dzm.com
    127.0.0.1	www.xyq.com
    127.0.0.1	xyq.net
    127.0.0.1	xyq.cn
    
    • 1
    • 2
    • 3
    • 4
    • 5

    配置好之后,需要运行 $ nginx -s reload 刷新配置文件,然后访 http://www.xyq.com:8081 路径

  • 运行效果


六、日志配置跟使用,以及日志路径指定

  • 可以看看 Nginx 配置文件(nginx.conf)属性详细总分析,有对 log_formataccess_log 的介绍跟使用,以及 log_format 的日志格式配置。

  • 这里我就在 http{ ... } 里面在配置一个 log_formataccess_log

    http {
      ......
    
      log_format mylog  '$remote_addr - $request - $status - $http_user_agent';
      access_log test.access.log mylog;
    
      server {
      ...
      }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
  • 然后执行 $ nginx -s reload,刷新一下当前服务器配置的网页,然后就拿到对应的日志了

    由于我这里是通过 HomeBrew 安装的 Nginx, 所以他的日志路径都是软链接,在 Linux 里面就不会这样了,其实无论什么系统,只要区分好相对路径跟绝对路径就不会乱,日志路径:

    /usr/local/Cellar/nginx/1.17.3_1/test.access.log
    
    • 1

  • 在 nginx 服务器运行中,每天都会产生大量的日志,有时候我们需要每天都要同步一次日志,或者每天都要单独一份日志文件,我们就可以通过定时任务来完成日志文件的分割

    定时任务完成日志分割链接 提取密码: 0vsf。


七、location 的作用,可以看看 Nginx 配置文件(nginx.conf)属性详细总分析 中的 location 使用实例

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/码创造者/article/detail/875867
推荐阅读
相关标签
  

闽ICP备14008679号