我对 Postgresql 和服务器管理有点陌生,所以我不太确定这是否是正常行为。现在我正在尝试删除带有级联选项的表。
我使用的命令是
DROP TABLE library_genre CASCADE;
Run Code Online (Sandbox Code Playgroud)
已经过去半个小时了还是这样
NOTICE: drop cascades to constraint radio_logs_entry_genre_id_fkey on table logs_entry
Run Code Online (Sandbox Code Playgroud)
我不太确定如何检查数据库有多大,但我无法想象太大。您认为是否可能存在某种腐败导致需要这么长时间?
任何解决这个问题的建议将不胜感激。我应该使用什么样的命令来弄清楚发生了什么?
编辑:新信息
我在尝试删除表之前在 pg_dump 上运行了这个
du -k pg_dump_file
Run Code Online (Sandbox Code Playgroud)
它给了我 27712。但我不确定它返回的数据大小是多少。如果是千字节,则只有 27 兆字节,而且看起来不需要这么长时间的修改。
编辑#2。我跑了 top,看起来 postgres 并没有真正使用太多的 CPU 或内存。
我想根据单个客户端 IP 地址向我的服务器发出的请求数量设置限制。Nginx 有一个limit_req_zone指令。然而,该指令实际上会限制平均点击率。如果我将限制设置为rate=6r/m,则实际上每 10 秒只允许一次点击。
相反,我需要的是每分钟的实际限制。例如,客户端应该能够快速地相继发出 3 或 4 个请求,甚至同时发出,但每分钟不得超过 10 个。有没有办法做到这一点?
我应该强化我们公司开发的 Web 应用程序。为此,我决定为每个网站创建单独的应用程序池。我的问题是使用应用程序池身份是否更安全,还是为每个应用程序池使用单独的本地/域帐户?
假设我经营一家公司“Example Inc”,并有一个网站:
现在,因为出于安全意识,我正在使用 https,并希望设置 HSTS 标头以强制使用它。我还会包含子域名很长一段时间,比如说一年。
严格传输安全:max-age=31536000;包含子域
现在我也是一个优秀的网站所有者,因此我设置了以下 301 重定向到上述网站:
最后一个也有 HSTS 标头及其 https 站点。
据我了解,这是运行 https 网站的推荐设置(显然还有许多其他设置),并且相当常见。
到目前为止,一切都很好。
现在,在公司内部网上,我在互联网上不可用,有大量服务器并使用 example.com 域。所以我有:
现在假设其中一些机器运行 Web 服务器,但并非所有机器都是 https。
这是否意味着如果我的任何员工碰巧访问https://example.com那么他们的浏览器将设置 HSTS 标头并拒绝访问任何子域的 http,因此无法再访问其中一些内部 http-仅网络服务器?
这有什么办法吗?
我是否应该通过不使用 includeSubDomains 设置来危及外部网站的安全?至少不在https://example.com网站上?为了内部问题而牺牲外部安全似乎是错误的。
我是否应该强制所有内部应用程序也采用 https?说起来容易做起来难。
我应该在内部使用不同的域吗?例如 machine1.intraexample.com?似乎浪费了一个域,并且某些项目(例如电子邮件服务器)需要位于主域上,尽管如果它们甚至需要运行它们,它们可能仅限于仅 https 的 Web 服务器。
还有其他想法吗?
另外,认为这可能会给公司带来大问题,可能应该在规范和其他地方更多地强调。许多网站所有者没有针对非 www 版本的单独配置,因此可能会无意中在顶级域上设置 includeSubDomain 标志。只是在实施之前想到了这个场景,我才避免了这种情况。我最初会将到期时间设置得很低(一天),以解决这些问题,恕我直言,这也可以更有力地建议。这很容易被忽视,并给许多潜在用户带来奇怪的问题。
编辑 2015 年 6 月 这是一个网站在这个问题上犯错误的真实示例: https: //github.com/NuGet/NuGetGallery/issues/2535
编辑 2015 年 10 月 一篇文章建议您确实应该使用 TLD 的 includeSubDomains 来解决 cookie 中的缺陷: …
我最近发现了软件集合,并了解它们如何通过为每个集合引入命名空间来安装多个版本的软件。在企业 Linux 上,这很好,因为我将能够保持系统的常规稳定性,同时现在能够在更新某些版本的软件时轻松更新(不仅是安全更新,还有功能!)
我希望我系统的主网络服务器是 httpd 2.4。centos-sclo-rh软件合集目前可用的版本是2.4.12,而可用的版本base只有2.4.6。所以我从那个 SCL 安装了 httpd 并启用了它:
> scl enable httpd24-httpd bash
Run Code Online (Sandbox Code Playgroud)
然后使用 systemctl 启用并启动服务
> systemctl enable httpd24-httpd
> systemctl start http24-httpd
Run Code Online (Sandbox Code Playgroud)
所以我希望我的系统应该知道我现在安装了一个网络服务器。但是,当我尝试从 安装 phpmyadmin 时epel,它仍然希望安装标准httpd包base作为依赖项。
查看 rpms 的一些机制,我刚刚了解到包可以在他们的规范文件中包含一个 Provides 行,列出虚拟包,例如webserverhttpd 的 src rpm 确实有一个 Provides: webserver 行。我猜httpd24-httpd我从 SCL 获得的包没有那个描述符。
如何让我的系统识别httpd从 SCL 提供的已安装和启用的webserver虚拟包,以便它不想安装httpd包base来实现webserver虚拟依赖?
我继承了 3 个运行 CentOS 的旧共享服务器。我们不再从我们的服务器提供任何电子邮件订阅,并已将所有人迁移到云服务。这些服务器每个托管大约 60 个 WordPress 站点。
在 3 台服务器上,我仍在运行以下服务;
这些都是生产服务器。
我现在可以安全地永久删除这些服务吗?还有其他考虑吗?
我正在尝试将 Nginx 配置为在同一域的两个不同目录中托管多个基于 PHP 的应用程序。我想要达到的结果是:
http://webserver.local/ > 提供的应用程序/path/to/website
http://webserver.local/app > 提供的应用程序/path/to/php-app
这是我的配置。
File Not Found(但是,文件在/path/to/php-app/index.php)。/path/to/php-app/test.txt(不是 PHP),当我转到http://webserver.local/app/test.txt 时,我按预期获得了文本文件。有人可以解释一下我哪里出错了吗?谢谢 :)
server {
listen 80;
server_name webserver.local;
location / {
root /path/to/website;
index index.php;
location ~ \.php$ {
root /path/to/website;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
location ^~ /app {
alias /path/to/php-app;
index index.php;
location ~ \.php$ …Run Code Online (Sandbox Code Playgroud) 我不能调试这块nginx的配置:
我想一些头添加到了所有的请求.pdf文件,
然后我想删除一个令牌,我添加到我的教职员目录,以避免不必要的浏览器缓存:
location /static {
location ~* \.pdf$ {
add_header Access-Control-Allow-Origin *;
add_header Content-Disposition 'inline';
}
#Remove Anti cache token
rewrite "^/static[0-9]{10}/(.*)$" /static/$1 last;
...
}
Run Code Online (Sandbox Code Playgroud)
没有 nginx 语法错误,但请求.pdffor 显示 404 not found 错误意味着重写不适用于请求。
非常感谢任何帮助
谢谢
我有一个系统(“主机”),使用 LXC(即“来宾”)运行多个容器。我已经在来宾中安装了 Jenkins,它们似乎按预期工作,只是它们不响应请求。(我之前已经成功安装过几次 Jenkins,包括 LXC。)在这种情况下,观察到的问题是内置 Jenkins Web 服务器 (Jetty) 没有响应 HTTP 请求,即使这些请求是从 Jenkins 内部发出的。它运行的非常 LXC 来宾,即指向localhost.
我已经努力解决这个问题好几天了,但没有成功。
这是尝试从以下位置联系 Jenkins Web 服务器时得到的结果localhost:
root@base:~# curl -vI http://localhost:8080/jenkins/
* Trying 127.0.0.1...
* TCP_NODELAY set
* Connected to localhost (127.0.0.1) port 8080 (#0)
> HEAD /jenkins/ HTTP/1.1
> Host: localhost:8080
> User-Agent: curl/7.58.0
> Accept: */*
>
Run Code Online (Sandbox Code Playgroud)
在工作设置中,您应该收到 HTTP-403,因为您尚未经过身份验证,并且回复时间不会超过一两秒,但即使几个小时后,也没有响应。Jenkins 日志文件也没有报告任何错误。
我需要帮助来找出根本原因并解决此问题,以便 Jenkins 安装按预期工作并变得可访问。
有关于寻找什么/在哪里来找出并解决这个问题的任何指示?
以下是我已经研究过的一些事情:
/etc/default/jenkins与我的其他工作设置类似,并且进行了最小的更改(例如仅绑定到本地主机和前缀)。我正在构建一个 Web 服务器,所以我想知道为此目的最好的 linux 版本是什么。