Nginx 实践(二):配置文件
Nginx的常用命令
1.查看Nginx版本号
nginx -V
2. 配置文件修改重装载命令
nginx -t
3. 配置文件修改重装载命令
nginx -s reload
4. 启动nginx
start nginx
5. 快速停止或关闭nginx
nginx -s stop
6. 正常停止或关闭(会等到worker处理完成请求后关闭)
nginx -s quit
Nginx 映射本地目录
通过反向代理来做一个简易的图片服务器
- 大致步骤:
- 取消注释开启日志,便于出现问题排查
error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
- 修改 nginx/conf/nginx.conf, 存放图片的目录被我放在了 /root/pics
server {
listen 80;
server_name 182.61.41.64;
#charset koi8-r;
#access_log logs/host.access.log main;
location ^~ /images/ {
alias /root/pics/;
index 1.txt;
}
过程当中踩到的坑:
访问资源出现403 forbidden,查看日志出现错误:
403 forbidden (13: Permission denied) Nginx 403 forbidden forbidden 403 Permission denied
原因是目录权限不够,解决办法: 修改web目录的读写权限,或者是把nginx的启动用户改成目录的所属用户,重启Nginx即可解决。
chmod -R 777 /data
chmod -R 777 /data/www/
root与alias主要区别——在于nginx如何解释location后面的uri,这会使两者分别以不同的方式将请求映射到服务器文件上。
root的处理结果是:root路径+location路径
alias的处理结果是:使用alias路径替换location路径
alias是一个目录别名的定义,root则是最上层目录的定义。
还有一个重要的区别是alias后面必须要用"/"结束,否则会找不到文件的,而root则可有可无。
//root实例:
location ^~ /t/ {
root /www/root/html/;
}
//如果一个请求的URI是/t/a.html时,web服务器将会返回服务器上的/www/root/html/t/a.html的文件。
//alias实例:
location ^~ /t/ {
alias /www/root/html/new_t/;
}
//如果一个请求的URI是/t/a.html时,web服务器将会返回服务器上的/www/root/html/new_t/a.html的文件。注意这里是new_t,因为alias会把location后面配置的路径丢弃掉,把当前匹配到的目录指向到指定的目录。
注意:
使用alias时,目录名后面一定要加"/"。
alias在使用正则匹配时,必须捕捉要匹配的内容并在指定的内容处使用。
alias只能位于location块中。(root可以不放在location中)