相关疑难解决方法(0)

Nginx 403错误:禁止[文件夹]的目录索引

我有3个域名,我正在尝试使用Nginx在一台服务器(数字海洋液滴)上托管所有3个站点.

mysite1.name mysite2.name mysite3.name

其中只有一个有效.另外两个导致403错误(以相同的方式).

在我的nginx错误日志中,我看到:[error] 13108#0: *1 directory index of "/usr/share/nginx/mysite2.name/live/" is forbidden.

我的网站启用配置是:

server {
        server_name www.mysite2.name;
        return 301 $scheme://mysite2.name$request_uri;
}
server {
        server_name     mysite2.name;

        root /usr/share/nginx/mysite2.name/live/;
        index index.html index.htm index.php;

        location / {
                try_files $uri $uri/ /index.html index.php;
        }

        location ~ \.php$ {
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                fastcgi_pass unix:/var/run/php5-fpm.sock;
                fastcgi_index index.php;
                include fastcgi_params;
        }
}
Run Code Online (Sandbox Code Playgroud)

所有3个站点都有几乎相同的配置文件.

每个站点的文件都在/usr/share/nginx/mysite1.name/someFolder等文件夹中,然后/usr/share/nginx/mysite1.name/live是一个符号链接.(与mysite2和mysite3相同.)

我看过禁止所有文件的Nginx 403,但这没有用.

关于可能出错的任何想法?

configuration nginx domain-name http-status-code-403

158
推荐指数
11
解决办法
39万
查看次数

Nginx提供静态文件并禁止403

只是想帮助别人.是的,你只想使用nginx提供静态文件,你在nginx.conf中得到了一切:

location /static {
       autoindex on;
       #root /root/downloads/boxes/;
       alias /root/downloads/boxes/;
      }
Run Code Online (Sandbox Code Playgroud)

但是,最后,你失败了.你从浏览器得到"403禁止"......

---------------------------------------- 下面的答案: ------ ----------------------------------

解决方案非常简单:


方法1:以用户身份运行nginx作为'/ root/downloads/boxes /'所有者

nginx.conf中:

?user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
Run Code Online (Sandbox Code Playgroud)

是的,在第一行" #user noboy; "中,只需删除" # ",并在Linux/OS X中将" nobody " 更改为您自己的用户名,即更改为" root "进行测试.重启nginx.

注意,你最好不要以root身份运行nginx!这里只是为了测试,对黑客来说是危险的.

有关更多参考,请参阅nginx(引擎X) - BUM中的痛苦![13:许可被拒绝]


方式2:将'/ root/downloads/boxes /'所有者更改为'www-data'或'nobody'

终端:

ps aux | grep nginx
Run Code Online (Sandbox Code Playgroud)

获取运行nginx的用户名.应该是'www-data''nobody'由nginx的版本决定.然后点击终端(例如使用'www-data'):

chown -R www-data:www-data /root/downloads/boxes/
Run Code Online (Sandbox Code Playgroud)

------------------------------ 一件更重要的事情是: …

nginx uwsgi

47
推荐指数
7
解决办法
6万
查看次数

为什么即使所有权限设置正确,Nginx也会返回403?

我有Nginx设置并正确显示测试页面.如果我尝试更改根路径,即使所有权限都相同,我也会收到403 Forbidden错误.此外,nginx用户存在.

nginx.conf:

user nginx;
worker_processes  1;

error_log  /var/log/nginx/error.log;

pid        /run/nginx.pid;

events {
    worker_connections  1024;
}

http {
    index   index.html index.htm;

    server {
        listen       80;
        server_name  localhost;
        root         /var/www/html; #changed from the default /usr/share/nginx/html
    }
}
Run Code Online (Sandbox Code Playgroud)

namei -om /usr/share/nginx/html/index.html

f: /usr/share/nginx/html/index.html
dr-xr-xr-x root root /
drwxr-xr-x root root usr
drwxr-xr-x root root share
drwxr-xr-x root root nginx
drwxr-xr-x root root html
-rw-r--r-- root root index.html
Run Code Online (Sandbox Code Playgroud)

namei -om /var/www/html/index.html

f: /var/www/html/index.html
dr-xr-xr-x root root /
drwxr-xr-x root root var
drwxr-xr-x root …
Run Code Online (Sandbox Code Playgroud)

installation nginx http-status-code-403

45
推荐指数
4
解决办法
5万
查看次数

标准错误中发送的 Nginx 错误 FastCGI:“对脚本 [文件夹] 的访问已被拒绝(请参阅 security.limit_extensions)”

我正在尝试使用 Nginx 和 php-fpm 配置我的网络服务器
,我之前在本地计算机和开发服务器中已成功配置,但现在在 AWS 中没有。
唯一的区别是我从生产服务器的源安装了 Nginx

它在我的 /var/log/nginx/error.log 中给出了这样的错误

2014/03/11 11:09:19 [error] 11138#0: *1 FastCGI sent in stderr: "Access to the script '/home/ambassador-portal/ambassador-api/web' has been denied (see security.limit_extensions)" while reading response header from upstream, client: 202.62.16.225, server: brandapi.whatiwear.com, request: "GET /app_dev.php HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "brandapi.whatiwear.com", referrer: "http://brandapi.whatiwear.com/"
Run Code Online (Sandbox Code Playgroud)

虽然 php-fpm 中的错误日志没有给出错误

这是我的 nginx.conf

user  root;
worker_processes  1;

events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;

    keepalive_timeout  65;

    gzip  on;

    server { …
Run Code Online (Sandbox Code Playgroud)

php linux webserver nginx amazon-web-services

6
推荐指数
2
解决办法
9729
查看次数