Hardog's blog

trace forever

Group: 572218159
Email: 1273203953@qq.com
Location: hangzhou·zhejiang
GitHub: https://github.com/hardog

Nginx Home

root指令最好采用绝对路径

除非父级Context 已经定义了root指令, 否则在location指令中最好才用绝对路径, 因为默认的路径是相对Nginx的
安装路径, 例:

1
server {
    root     /data/www;

    location / {
        index ./index2.html;
    }
}

如上, location中的index路径是相对server中的root即/data/www的.

Nginx配置文件指令集合

(配置文件指令集合](http://nginx.org/en/docs/dirindex.html)

Logging rsyslog

经试验Centos7系统可以配置syslog, 使用的是rsyslog服务, rsyslog配置文件可以通过$whereis rsyslog可查看, Nginx开启syslog服务需要进行以下设置:

修改后保存并重启rsyslog服务($systemctl restart rsyslog), 最后, 具体的日志文件路径, 根据设置项facility决定, 默认是local7对应文件/var/log/boot.log.

扩展

自定义facility, 首先配置nginx.conf, 例:

1
access_log syslog:facility=user,...;

保存后, 配置rsyslog.conf:

1
# user nginx log
user.*    /var/log/nginx_user.log # 日志文件路径, `*`表示记录日志的级别

保存后, 分别重启Nginx以及rsyslog进程即可!

知晓Nginx完整配置参数

Nginx配置文件有Context的概念, 其中main指全局上下文, 这些配置在Core Functionality可以看到, 例如如下pid配置:

1
Syntax:   pid file;
Default:  pid nginx.pid;
Context:  main

Syntax表明该条配置的语法即pid后面跟一个指定路径的文件, Default是示例, Context表示该条配置需要配置在*.conf文件的最外层全局上下文中.

虚拟机部署Nginx

测试时如果将Nginx安装在虚拟机里面, 然后Nginx处理的文件目录是与宿主机共享的文件夹,
此时需要考虑到在宿主机文件, Nginx并不能及时知道文件被更新过, 因此返回给客户端的文件
不是最新修改的.

location 指令

有如下配置片段:

1
server {
    location /images #@1 {
        root   /Users/Frand/work/personal-github/nginx; #@2
    }
}

当链接访问图片时@2处的物理路径无需包含@1的images目录, Nginx默认会加上匹配的路径!

自定义配置文件

使用自定义配置文件启动Nginx时, 注意修改配置文件中对应参数的顺序:

1
http {
    include       /usr/local/etc/nginx/mime.types;
    #xxxx
}

如上mime.types需要修改为相对当前配置文件的路径, 默认情况下如果mime.types与nginx.conf
配置文件在同一目录, 可直接配置为mime.types.