我正在安装nginx。以下是我遵循的步骤:
编辑/etc/nginx/nginx.conf。编辑后,它看起来像这样:
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log;
...
http {
...
server {
listen 80 default_server;
server_name my_domain_name.com;
root /root;
...
}
gpasswd -a nginx root
chmod g + x / root
(抱歉,无法正确格式化为代码)
服务nginx重启
我访问了my_domain_name.com并收到403错误。 /var/log/nginx/error.log内容:
"/root/index.html" is forbidden (13: Permission denied), client: 117.211.86.108, server: my_domain_name.com, request: "GET / HTTP/1.1", host: "my_domain_name.com"
答案 0 :(得分:15)
首先 - 真的是否需要提供/root
的文件?这实际上是root用户的主目录,并不意味着是Web根目录。这实际上是一个非常糟糕的主意。相反,请使用/var/www/html
或(我的偏好)/srv/www
。如果您执行使用/root
,请确保您没有公开ssh密钥或authorized_keys
文件,数据库密码或类似内容。这真的只是一个坏主意。
其次,您应该正确配置SELinux,而不是禁用selinux(在这种情况下,保护您不要做危险的事情)。在Fedora中,SELinux策略的设计使得nginx与其他Web服务器共享,因此,使用/srv/www/yoursite
作为根,
chcon -R -t httpd_sys_content_t /srv/www/yoursite
应该这样做。
答案 1 :(得分:4)
我在亚马逊linux实例上,不得不这样做
sudo chmod o+x /home/ec2-user/
sudo service nginx restart
不确定安全隐患是什么。