我有一个位于 的 WordPress 站点mysite.com/blog,其文件位于/var/www/mysite/wordpress. 为什么,当我访问 时mysite.com/blog/test,如果我$args从 中删除,我的嵌套位置块只会被击中try_files?
server {
server_name mysite.com;
location /blog {
alias /var/www/mysite/wordpress;
try_files $uri $uri/ /blog/index.php$args;
location ~ \.php {
# This is only reached if I remove $args from try_files
return 401; # For testing purposes
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是日志中的相关错误:
"/usr/share/nginx/html/index.php" failed (2: No such file or directory)
所以我正在设置一个 nginx 服务器并安装了 wordpress 和 SSL。
该站点在 http 和 https 上都可以完美运行,但是当我尝试通过 nginx 的服务器块将 http 重定向到 https 时,http 和 https 都会导致无限的重定向循环。
这是我的服务器块
server {
listen 80;
return 301 $server_name$request_uri;
listen 443 ssl spdy;
root /var/www/wordpress;
index index.php index.html index.htm;
server_name www.example.com;
ssl_session_cache shared:SSL:20m;
ssl_session_timeout 10m;
spdy_headers_comp 6;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_certificate /etc/ssl/certs/www.example.com.certchain.crt;
ssl_certificate_key /etc/ssl/private/www.example.com.key;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains";
add_header Alternate-Protocol 443:npn-spdy/2;
proxy_set_header X-Forwarded-Proto https;
access_log /var/log/nginx/example.com.access.log;
error_log /var/log/nginx/example.com.error.log;
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html …Run Code Online (Sandbox Code Playgroud) 我在 Digital Ocean 上为最小的 Droplet 设置了一个 WordPress 几个月。
最近,我的博客疯传(1000+ facebook 分享),服务器需要 50 多秒才能响应。(Google Analytics 显示今天几乎一整天都有大约 40 人同时访问我的博客。)
我询问 Digital Ocean 支持团队,他们告诉我我的 512 MB RAM 太小了。
但我使用“free -m”并看到
total used free shared buffers cached
Mem: 490 465 24 64 94 136
-/+ buffers/cache: 234 256
Swap: 999 0 999
Run Code Online (Sandbox Code Playgroud)
所以我认为我有 256 MB 可用内存?
我告诉他们,他们说“虽然它可能显示 100MB 的可用内存,但这可能只是在它终止了一些服务以节省内存之后。”
但我使用“顶部”并看到
%Cpu(s): 0.3 us, 0.0 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
Run Code Online (Sandbox Code Playgroud)
我发现CPU保持在92~100% id,所以我认为我的CPU不忙。
那么如何才能找到瓶颈呢?
我想在支付更多升级费用之前知道瓶颈是什么。
我们有一个由 Elastic Beanstalk (AWS) 提供服务的网站,它运行良好。我们使用内置负载均衡器通过 HTTPS 等方式为我们的站点提供服务。我们的数据库通过 RDS 服务进行分离,而不是与我们的 Web 服务器位于同一 EC2 实例上。到目前为止,我们对设置很满意。
现在,我们想在我们网站域(不是单独的或子域,出于 SEO 原因)的“/blog”下建立一个 WordPress 博客。我们的站点是一个定制的 PHP 应用程序(使用 Laravel 框架),我宁愿不在同一个地方同时托管 WP 应用程序和我们的站点。
我相信我们可以使用 CloudFront(亚马逊的 CDN)只为我们网站的 /blog 部分提供服务,并将这些请求路由到不同 EC2 实例上的单独 WP 安装。我已经使用 CloudFront 来做常规的 CDN 类型的东西(静态资产),但我对如何设置这种特殊类型的配置有点迷茫。
首先,这是一个疯狂的想法,还是听起来不错?其次,如果它是合理的,我需要知道什么来设置它?
我正在尝试将我的 wordpress 博客从主机转移到我自己的服务器。我想使用 docker 来完成这项任务。
在我的服务器上运行 nginx,它承载了许多与这个问题无关的服务。我使用以下脚本来创建一个容器。
#!/bin/bash
docker create --name blog \
--net bridge \
-e WORDPRESS_DB_HOST=192.168.170.11 \
-e WORDPRESS_DB_USER=USER \
-e WORDPRESS_DB_PASSWORD=PASSWORD \
-e WORDPRESS_DB_NAME=wordpress \
-v /var/www/wordpress:/var/www/html \
-p 8000:80 \
wordpress
Run Code Online (Sandbox Code Playgroud)
数据库连接有效并且 apache2 正在运行。但是我无法访问wordpress。
当我尝试访问时localhost:8000,将我重定向到80nginx 正在侦听的端口。为什么?我想连接到容器内的端口 80 (apache2)。
当我从外部尝试此操作时也是如此(如果防火墙关闭)。
另一个问题是防火墙:端口 8000/tcp 对所有 IP 都是开放的,但我来自外部的请求仍然被阻止。我必须为这个 docker 容器打开什么?
运行Docker version 17.05.0-ce, build 89658be上Debian Stretch。
编辑:
root@server:~/docker# curl -v http://localhost:8000
* Rebuilt URL to: http://localhost:8000/
* Trying ::1...
* TCP_NODELAY set …Run Code Online (Sandbox Code Playgroud) 我在服务器上运行了多个 WordPress 实例,用于管理跨多个域的博客(也托管在同一台服务器上)。一些域甚至将多个 WordPress 实例用作子目录。
实现这些实例的最佳方法是什么,以便它们都可以轻松保持最新状态?现在,在 WP 发布大约一两周后,我登录并从新下载的 tar.gz 手动更新每个实例。
我在所有实例之间共享的唯一内容是内容项(主题等)。我通过象征性地链接到每个实例的安装路径中的“主”内容目录来处理这个问题。
有没有办法对 WordPress 的实际代码部分做类似的事情?我相信唯一特定于实例的配置是针对要连接的数据库。
我们有一个很棒的网站,它已经运行了大约 5 个月,然后在 5 月份它从 3-5 秒的页面加载速度时间变成了现在令人痛苦的 15+ 秒!!!
主机真的很有帮助,甚至将站点转移到更快的新服务器!
我想好像我们没有洞察力或您的专业知识,我们会询问 Serverfault 社区,看看这群专家会推荐什么?
感谢您的任何见解,谢谢。
网站在这里:integrati.com.au
我需要为高容量 WordPress 网站推荐可扩展的网络主机。就我而言,高流量可能是 100K-500K 访问者/小时。可能会将 1M/小时的突发速率视为“高水位线”。
我知道 WP 不是目前性能最高的平台(哈!),但它是不容商量的。我可以进行“通常的优化”(例如,将静态文件放入 CDN,运行并遵循 YSlow 等性能分析器的建议)。但它仍然是 WordPress,并且会涉及十几个插件。
那么,在哪里托管网站?大多数“最好的 WordPress 主机是什么?” 讨论似乎集中在最低成本上。我需要相反的。您使用过哪些大容量、可扩展或集群的 WordPress 主机?
只需阅读使 WordPress 在 EC2-Micro 上稳定
在“调整 Apache”部分,我不太明白他是如何为他的 prefork 配置得出他的数字的。
他解释了如何获得我得到的平均过程的数字。但是之后:
或者每个进程大约 53MB...在这种情况下,十个线程应该是安全的。这意味着如果我们同时收到十多个请求,其他请求将排队等待,直到有可用的工作线程。为了最大限度地提高性能,我们还将系统配置为始终具有此数量的可用线程。
从每个进程 53MB 到 613MB 的 RAM,他以某种方式获得了这个配置,而我没有得到:
<IfModule prefork.c>
StartServers 10
MinSpareServers 10
MaxSpareServers 10
MaxClients 10
MaxRequestsPerChild 4000
</IfModule>
Run Code Online (Sandbox Code Playgroud)
他究竟是如何从每个进程 53MB 得到这个的,限制为 613MB?
奖金问题
从下面,在一个小实例(1.7 GB 内存)上,什么是好的设置?
bitnami@ip-10-203-39-166:~$ ps xav |grep httpd
1411 ? Ss 0:00 2 0 114928 15436 0.8 /opt/bitnami/apache2/bin/httpd -f /opt/bitnami/apache2/conf/httpd.conf
1415 ? S 0:06 10 0 125860 55900 3.1 /opt/bitnami/apache2/bin/httpd -f /opt/bitnami/apache2/conf/httpd.conf
1426 ? S 0:08 19 0 127000 62996 3.5 /opt/bitnami/apache2/bin/httpd -f …Run Code Online (Sandbox Code Playgroud) 在我的 apache 配置中,我有以下设置
<Directory "/opt/website/new-website-old/httpdocs">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
<Location /server-status>
#AllowOverride None
SetHandler server-status
Order deny,allow
Deny from all
Allow from all
</Location>
Run Code Online (Sandbox Code Playgroud)
使用此服务器状态可以工作,但是如果我将allowoverride选项更改为所有选项,则不会。如果allowoverride选项设置为All,我如何让服务器状态正常工作
我已经遵循了这个,但仍然没有运气wordpress 服务器状态
在我当前的 ht 访问文件中,我有
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
RewriteCond %{HTTP_HOST} ^www.asb.com.au$ [NC]
RewriteRule ^(.*)$ http://www.domain.com/about/the-group/domain-asb$1 [R=301,L]
</IfModule>
# BEGIN WordPress
<IfModule mod_rewrite.c> …Run Code Online (Sandbox Code Playgroud) wordpress ×10
apache-2.2 ×2
linux ×2
nginx ×2
.htaccess ×1
amazon-ec2 ×1
centos ×1
database ×1
docker ×1
high-load ×1
memory-usage ×1
mpm-prefork ×1
mysql ×1
oom ×1
scalability ×1
ssl ×1
web-hosting ×1