二、nginx.conf
配置文件使用
配置文件路径为:
/usr/local/etc/nginx/nginx.conf
本地 hosts 文件路径:
/etc/hosts
找到配置文件之后,通常我们需要先备份一下,
nginx.conf
文件拷贝一份改名为nginx.conf.bak
,以防万一,我们继续使用nginx.conf
文件进行配置调整:使用命令行去除注释内容
$ cd /usr/local/etc/nginx $ egrep -v '#|^$' nginx.conf
这是去除注释之后的内容,我们来分析分析大概意思,如果有需要可以看看 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/*; }
三、测试 mac 本机新增一个虚拟主机
nginx.conf
:# 新增一个 server server { listen 8080; server_name www.dzm.com; location / { root /usr/local/var/dzm; index index.html; } }
hosts
:# 多站点配置测试 127.0.0.1 www.dzm.com
配置好之后,需要运行
$ nginx -s reload
刷新配置文件,然后访http://www.dzm.com:8080
路径运行效果
四、多个虚拟主机使用
现在我的
server
虚拟主机都是放在当前nginx.conf
文件中,如果当有很多的虚拟主机的时候,我们可以将这些配置虚拟主机单独放在一个文件里面进行配置,然后include
到nginx.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; } }
hosts
:# 多站点配置测试 127.0.0.1 www.dzm.com 127.0.0.1 www.xyq.com
配置好之后,需要运行
$ 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; } }
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
配置好之后,需要运行
$ nginx -s reload
刷新配置文件,然后访http://www.xyq.com:8081
路径运行效果
六、日志配置跟使用,以及日志路径指定
可以看看 Nginx 配置文件(nginx.conf)属性详细总分析,有对
log_format
与access_log
的介绍跟使用,以及log_format
的日志格式配置。这里我就在
http{ ... }
里面在配置一个log_format
与access_log
http { ...... log_format mylog '$remote_addr - $request - $status - $http_user_agent'; access_log test.access.log mylog; server { ... } }
然后执行
$ nginx -s reload
,刷新一下当前服务器配置的网页,然后就拿到对应的日志了由于我这里是通过
HomeBrew
安装的Nginx
, 所以他的日志路径都是软链接,在Linux
里面就不会这样了,其实无论什么系统,只要区分好相对路径跟绝对路径就不会乱,日志路径:/usr/local/Cellar/nginx/1.17.3_1/test.access.log
在 nginx 服务器运行中,每天都会产生大量的日志,有时候我们需要每天都要同步一次日志,或者每天都要单独一份日志文件,我们就可以通过定时任务来完成日志文件的分割
定时任务完成日志分割链接 提取密码: 0vsf。
七、location
的作用,可以看看 Nginx 配置文件(nginx.conf)属性详细总分析 中的 location 使用实例