server {
location / {
root /data/www;
}
location /images/ {
root /data;
}
}
http://localhost/images/example.png - > /data/images/example.png
http://localhost/some/example.html - > /data/www/some/example.html
所以我的nginx配置:
server {
listen 443;
server_name localhost;
ssl on;
ssl_certificate /home/attolee/sslkey/example.crt;
ssl_certificate_key /home/attolee/sslkey/example.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ALL:!ADH:!EXPORT56:-RC4+RSA:+HIGH:+MEDIUM:!EXP;
ssl_prefer_server_ciphers on;
location / {
root /home/attolee;
index index.html;
}
location /hi/ {
root /home/attolee;
index hi.html;
}
}
我想要
现在1个工作,2个失败,403被禁止。
错误日志告诉我13: Permission denied
。
所以我检查了自己和/ home / attolee和/ home / attolee / hi /以及hi.html的组。
drwxr-xr-x 6 attolee attolee 4096 Nov 2 17:08 attolee/
drw-rw-rw- 2 root root 4096 Nov 2 17:12 hi/
-rw-rw-rw- 1 root root 24 Nov 2 17:12 hi.html
然后使用htop检查nginx进程的USER属性是root。
如何解决这个问题?
答案 0 :(得分:0)
首先,在您的示例中,您应该这样做:
root /home/attolee;
index index.html hi.html
location / {
try_files $uri $uri/ =404;
}
其次,您不需要以root身份运行nginx。在nginx.conf中,您可以将其更改为www-data。你必须在/ home / attolee /中移动/ home / hi并使用正确的所有者设置/ home / attolee。
答案 1 :(得分:0)
我遇到了这个问题,对我来说,问题在于
中的nginx配置/etc/nginx/sites-available
我的错是,我已经定义了一些未命名的文件和文件夹位置。所以我编辑了位置,问题开始解决。