小编Jur*_*man的帖子

每个位置块的 Nginx client_max_body_size(使用 php 前端控制器模式)

我正在寻找解决此问题的方法。我理解该问题中的设置不起作用的原因,但我尝试找到一个可以使其正常工作的解决方案。

这个想法是只允许在某些 url 上上传大文件。我可以location为此使用一个块,但问题是:我有一个 php 前端控制器模式:

location ~ \.php {
    # ...
    fastcgi_pass unix:/tmp/php5-fpm.sock;
}
Run Code Online (Sandbox Code Playgroud)

我的总配置如下:

# ...

http {
    # ...

    client_max_body_size 512K;

    server {
        server_name example.com;
        root        /var/www/example.com/public;

        location / { 
            try_files $uri /index.php?$query_string;
        }

        location /admin/upload {
            client_max_body_size 256M;
        }

        location ~ \.php {
            # ...

            fastcgi_pass unix:/tmp/php5-fpm.sock;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

据我了解,只会应用一个位置块。因此,如果我的默认请求大小为 512K,则永远不会应用 256M,因为所有请求都通过 frontcontroller 模式匹配~ \.php

在这种情况下我是否正确,如果是这样,可以配置什么使访问者无法上传任何内容,除非他们上传到admin/upload

nginx upload

12
推荐指数
2
解决办法
8276
查看次数

维护 setgid 位(在 bower 安装或 gulp 构建之后)

我们运行网络服务器,我们有以下情况:

  1. www-data 用户运行 Web 服务器并且必须具有对文件的读写访问权限
  2. deploy 用户部署所有代码
  3. bob 和 alice 用户可能通过 ssh 登录并在本地更改配置

所有用户都必须对 /var/www/mysite 具有读+写访问权限。我们目前通过拥有 /var/www/site 到 www-data 的组来实现这一点。然后我们在组上设置 write + setgid 位以确保所有子目录都具有相同的权限。

现在,这一切运行良好,但我们在以下场景中遇到了问题:

  1. 我们使用 bower 安装带有bower install. bower install第一次运行的用户拥有该public/bower_components目录并且没有设置 setgid 位
  2. 我们使用 gulp 将 javascripts 从public/scripts/srctopublic/scripts/dist和第一个运行的用户缩小到gulp build拥有这些文件

在这两种情况下,afind path/to/dir -type d -exec chmod g+ws {} \;确实可以缓解问题,但是否有可能首先解决此问题?我们已经在/var/www/mysite目录上设置了 setgid 位,那么为什么不bower install遵循这个权限集呢?

如果没有,有没有更好的方法来解决这个问题?我们曾想过在部署自动化过程中设置这些位,但如果用户忘记了 setgid 位,我们认为自动化部署也会卡住。

linux filesystems permissions chmod chown

3
推荐指数
1
解决办法
522
查看次数

HSTS 标头会导致 CNAME 记录出现问题吗?

几年来,我在我的个人域上使用了 SSL:https : //juriansluiman.nl。现在我使用子域来访问我的 Google Apps:邮件、日历等。所有这些子域都是使用Google 推荐的 CNAME 方法配置。这在我开始使用 HTTPS 之前和之后都有效。

几个月前,我开始在我的域中添加 HSTS 标头。在那段时间里,我也开始注意到我无法再使用子域访问我的 Google 页面。

示例:http : //mail.juriansluiman.nlhttps://mail.juriansluiman.nl

我所有的浏览器都给我一个连接错误。像 web-sniffer.net 这样的工具向我返回消息“获取 URL 时出错”。有谁知道具体的问题可能是什么?

ssl https cname-record g-suite

2
推荐指数
1
解决办法
1275
查看次数

让我们加密:使用内部域的主题备用名称

我的 Synology NAS 能够通过 HTTPS 运行 Web 界面。mynas默认情况下,您可以通过名称(例如)、sohttp(s)://myname:5001或访问 NAS http(s)://myname.local。它默认为synology.com.

您可以使用 Let's Encrypt 创建新的证书;您将所需的端口从路由器转发到 NAS,我从我拥有的域创建了一个子域,并更新了 DNS 以指向我的家庭 IP。(例如home.my-domain-i-own.com

我希望我可以输入myname;myname.local主题备用名称,这样我就可以在没有警告的情况下通过 HTTPS 在内部浏览我的 NAS。但是,显然,Let's Encrypt 不接受它无法验证的域名。

我的问题:如何解决我可以在我的域中使用 Let's Encrypt 证书而mynas.local没有任何警告的问题?

internal-dns ssl-certificate synology lets-encrypt subject-alternative-names

2
推荐指数
1
解决办法
5640
查看次数