我有以下设置:
1个4核/ 8 HT(Intel Xeon E3-1231 v3)服务器,带32GB RAM和2TB HDD 我已经在上面安装了Proxmox。然后我创建了一些KVM:
Nginx反向代理 - 公共IP 192.168.0.10,内部IP 10.10.10.10
仅为静态内容网站提供服务的Nginx - 仅限内部IP 10.10.10.20
服务于WordPress的Nginx + PHP-FPM - 仅内部IP 10.10.10.30
MySQL - 仅内部IP 10.10.10.40
所有服务器都通过内部网络进行通信。 "滞后"是0.200ms - 0.350ms
我还有2个网站:
example.com - 通过A记录指向Nginx反向代理的公共IP 192.168.0.10
wp.example.com - 通过A记录指向Nginx反向代理的公共IP 192.168.0.10
Nginx反向代理配置为根据在浏览器中输入的网站对请求进行代理传递。
当您尝试加载example.com时NGINX反向代理将连接传递到内部IP 10.10.10.20,其中另一个nginx为html网站提供服务 - example.com
到目前为止一切顺利。一切都很好。
然而,当有人试图输入wp.example.com时,会出现问题,NGINX反向代理将连接传递给IP 10.10.10.30,其中另一个nginx + php-fpm提供php文件。
到目前为止一直很好,但我已经安装了WordPress并使用MySQL服务器,该服务器是在另一个IP 10.10.10.40的KVM上安装的。好。一切正常,但是与MySQL服务器之间的连接似乎很慢,因为整个wordpress网站加载速度太慢。如果只提供php文件(没有任何mysql查询),网站加载速度超快,但是当安装WordPress时,它会连接到另一台服务器上的数据库,并且事情开始变慢......
所有机器都没有高负荷。他们有很多免费的CPU,磁盘空间和RAM。但是由于某种原因MySQL(MariaDB 10.2.6)是这里的瓶颈......但我不知道为什么......
这是我的NGINX反向代理的conf文件:
server {
listen 80;
server_name example.com www.example.com;
location / {
proxy_pass http://10.10.10.20:80/;
}
}
server {
listen 80;
server_name wp.example.com www.wp.example.com;
location / {
proxy_pass http://10.10.10.30:80/;
}
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
}
这是来自我的KVM服务器的nginx conf文件,它为PHP网站提供服务 - WordPress:
server {
listen 10.10.10.30:80;
server_name wp.example.com www.wp.example.com;
root /var/www;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
我怎么能麻烦为什么WordPress加载太慢?服务器之间没有数据包丢失,我认为连接也很好......服务器之间只有0.200 - 0.350毫秒......
我认为发生缓慢是因为WordPress尝试连接外部地址,但作为wordpress"生活的服务器"没有公共互联网连接,这会减慢事情......我不确定这是不是因为......但可能是这样?
答案 0 :(得分:0)
我想到了一些事情:
对于mysql,我建议删除mariadb并安装Percona。 你也可以从那里生成一个新的my.cnf:https://tools.percona.com/
我最近也安装了MariaDB 10.2,并想知道为什么它比10.1慢得多......而且percona为我解决了这个问题。
答案 1 :(得分:-1)
以下是您的问题的答案:
我已经完成了一些测试,看起来只有WP的一些部分很慢: 从管理区域导航到插件菜单 从管理区域导航到主题菜单
当我登录管理区域时......它很慢......
我认为这与互联网连接的缺乏有关...只有私人网络......