/etc/nginx/nginx.conf
我已经在本地机器上的 Ubuntu 12.04 上安装了 nginx 1.1.19,并且除了更改用户指令外,保留了默认设置。
/etc/nginx/nginx.conf
user nginx www-data;
worker_processes 4;
pid /var/run/nginx.pid;
...
我想让一个简单的静态站点与用户目录中的 Web 根目录一起工作(假设我的用户名是“ubuntu”)。这是我的测试站点的配置。
/etc/nginx/sites-available/测试站点
server {
#listen 80; ## listen for ipv4; this line is default and implied
#listen [::]:80 default ipv6only=on; ## listen for ipv6
root /home;
index index.html index.htm;
# Make site accessible from http://localhost/
server_name localhost;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to index.html
try_files $uri $uri/ /index.html;
# Uncomment to enable naxsi on this location
# include /etc/nginx/naxsi.rules
}
}
现在显然将所有文件都放在 Web 根目录中,因此我不会将其放在真实服务器上,但这说明了我的观点。如果我在 /home/index.html(不在我的 ubuntu 用户文件夹中)创建一个简单的网页,我可以在http://localhost/
这工作得很好。现在我想简单地将 Web 根目录放在用户文件夹内。因此,在 /etc/nginx/sites-available/test-site 中,我将根指令更改为 `root /home/ubuntu;。我重新创建指向 test-site 的符号链接,将 /home/index.html 移动到 /home/ubuntu/index.html,然后停止并启动 nginx 服务器。现在我收到 403 Forbidden 错误。
我首先怀疑这是一个权限问题。然而,当我运行它时,ls -al index.html
我看到
-rw-r--r-- 1 nginx www-data 183 Aug 12 13:13 index.html
对我来说这看起来是对的吗?即使运行 chmod 777 /home/ubuntu/index.html,权限也是
-rwxrwxrwx 1 nginx www-data 183 Aug 12 13:13 index.html
没有帮助。/etc/init.d/nginx configtest
也没有产生任何错误,而且我确信/etc/
我已经花了几个小时研究这个问题,现在我想知道我的用户目录有什么特别之处,以至于我无法在其中提供任何东西?Ubuntu 现在加密主目录了吗?这可能是问题所在吗?我在 EC2 Ubuntu 12.04 实例上也遇到了这个问题(不知道那里的用户目录是否加密)
答案1
默认用户主目录权限
因此,Ubuntu 12.04 中用户主目录的默认权限似乎为 700。Nginx 需要对要提供的文件具有读取权限,并且对从根目录到所提供文件的路径中的每个父目录具有执行权限。
您可以通过运行以下命令授予用户目录这些权限:
chmod 701 user_home
您也可以使用 755,这是许多系统上主目录的默认权限设置。
只要 nginx 运行的用户/组(如 nginx.conf 中所定义)对所有要提供的文件具有读取权限并对所有关 Web 根目录具有执行权限,则 Web 根目录中的目录/文件可以属于 www-data 用户或您的常规个人用户。
我刚刚将我的 Web 根目录中的所有目录设置为由我的用户帐户拥有并具有权限 755,并且我将从 Web 根目录中提供的所有文件设置为具有权限 664,因为这些是我的计算机上的默认设置。
将权限编号转换为字符串表示的注意事项。
Ex. drwxr-x--x becomes 751.
忽略第一个字符(d 表示目录,- 表示文件等)。其余 9 个字符构成一个二进制三元组,其中任何非破折号字符均为 1,破折号均为 0。
So drwxr-x--x becomes rwxr-x--x
becomes 111 101 001
which is converted to a decimal 751
当我处理权限时,我需要重新学习这一点。