修改Nginx的网站根目录
修改Nginx的网站根目录
Nginx的默认网站文件保存在nginx
的html
目录下,由于我开发时都把项目放在自己的workspace
里,所以准备更改网站根目录,更改方法为修改nginx.conf
配置文件的root
指令,root
指令可以放在http
、server
、location
块中,我选择把root
指令放在server
块中,如下所示:
1 | http { |
配置完成后,执行sudo ./nginx -s reload
命令,Nginx支持动态更新配置信息。
访问一下网页测一下,发现返回状态码403,既请求被服务器拒绝了,查看Nginx的error.log
后,发现如下log,既Nginx没有打开该html文件的权限,所以得解决权限的问题。
1 | 2016/09/24 17:51:39 [error] 16397#0: *15 open() "/Users/zhongwu/Documents/workspace/web/lounge.html" failed (13: Permission denied), client: 127.0.0.1, server: localhost, request: "GET /lounge.html HTTP/1.1", host: "127.0.0.1" |
首先我们来了解Nginx的用户权限,Nginx的master
进程是root
权限,而worker
进程默认是nobody
用户,用户组同为nobody
,由于请求的处理是由worker
进程处理的,所以,需要修改worker
的用户,将其修改为我的workspace
目录的用户,方法为直接修改Nginx配置文件,在nginx.conf
配置文件中添加user zhongwu staff;//zhongwu是我的workspace用户,staff是用户组
。
再访问以下,成功。
解决127.0.0.1能访问,而localhost不能访问
项目出现127.0.0.1能访问,而localhost却访问不了的问题,定位,应该是dns
域名解析的问题,查看/etc/hosts
文件,发现有一条记录为:::1 localhost
,::1
是ipv6
的表示方法,将其改为ipv4
的,既将::1
替换为127.0.0.1
,因为Nginx默认并没有开启监听ipv6
地址。
再次访问,localhost就能访问了。