![nginx 只在虚拟主机上下载文件](https://linux22.com/image/618717/nginx%20%E5%8F%AA%E5%9C%A8%E8%99%9A%E6%8B%9F%E4%B8%BB%E6%9C%BA%E4%B8%8A%E4%B8%8B%E8%BD%BD%E6%96%87%E4%BB%B6.png)
我正在尝试将我的本地环境移植到 Mac 上以使用 nginx
从我首先得到的日志中[emerg] 9449#0: bind() to 0.0.0.0:80 failed (13: Permission denied)
,但运行sudo nginx
解决了这个问题
现在如果我输入地址http://njsphp.dev
,它只会下载一个文件?
在conf中我设置了一个虚拟主机,并且我把名字放在了主办方文件
server{
listen 80;
listen njsphp.dev;
server_name njsphp.dev;
root /Users/redres/Webdev/nodejsphp;
index index.phtml index.htm;
location / {
}
}
谢谢
答案1
仅允许 root 绑定 <1024 端口。检查您是以普通用户、www-data 用户还是 root 身份运行 nginx。Nginx 有放弃特权的机制来执行此操作。您以 root 身份运行它,nginx 绑定到 80,然后将特权放弃给配置中指向的用户。
更新:
当然,授予 root/admin 权限只是一种方法。您可以使用selinux
或CAP_NET_ADMIN
Linux 功能仅允许访问 1024 以下的绑定端口,而不允许访问其他端口。