相关疑难解决方法(0)

Nginx - 静态文件与root和别名混淆

我需要通过我的应用服务器提供我的应用程序8080,以及来自目录的静态文件,而无需触及应用服务器.我拥有的nginx配置是这样的......

    # app server on port 8080
    # nginx listens on port 8123
    server {
            listen          8123;
            access_log      off;

            location /static/ {
                    # root /var/www/app/static/;
                    alias /var/www/app/static/;
                    autoindex off;
            }


            location / {
                    proxy_pass              http://127.0.0.1:8080;
                    proxy_set_header        Host             $host;
                    proxy_set_header        X-Real-IP        $remote_addr;
                    proxy_set_header        X-Forwarded-For  $proxy_add_x_forwarded_for;
            }
    }
Run Code Online (Sandbox Code Playgroud)

现在,使用此配置,一切正常.请注意,该root指令已被注释掉.

如果我激活root和停用alias- 它会停止工作.但是,当我/static/root它删除尾随它开始再次工作.

有人可以解释发生了什么.还请解释清楚和冗长之间有什么区别rootalias和它们的用途.

nginx

422
推荐指数
5
解决办法
22万
查看次数

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从同一服务器提供多个Angular应用程序

我正在为angular同一个server街区提供多个应用程序Nginx.因此,为了让用户直接浏览Angular我声明的某些自定义路线而不必通过主页(并避免404页面),我将这些路由从nginx转发到每个角度应用程序index.html,我添加了a try_files到每个location:

server {
    listen 80;
    server_name website.com;

    # project1
    location / {
        alias /home/hakim/project1/dist/;
        try_files $uri /index.html;
    }

    # project2
    location /project2/ {
        alias /home/hakim/project2/dist/;
        try_files $uri /index.html;
    }

    # project3
    location /project3/ {
        alias /home/hakim/project3/dist/;
        try_files $uri /index.html;
    }
}
Run Code Online (Sandbox Code Playgroud)

这个解决方案在转到Angular路由时避免了404错误,但问题是当我浏览/project2//project3/重定向到/project1/.这显然不是预期的,因为我希望每个位置都转发到/project-i/index.html适当的项目.

routes nginx angular

10
推荐指数
2
解决办法
5236
查看次数