新钛云服已为您服务1070天
一、文档说明
本文档主要介绍wordpress+nginx架构调整。
Wordpress默认的前端架构是httpd,为了便于管理和拓展需求,现替换为nginx作为前端代理,并使其实现前后端分离。
二、建设背景
一般情况我们架设wordpress 的结构是这样的:
客户端直接访问Wordpress服务器,这种形式,前后端并未分离。服务器地址直接暴露在外,导致地址无法过滤,策略以及流量转发规则无法得以实现,并伴随着很多安全隐患。
通过本次建设实施,实现前后端分离,前端Nginx接收客户端请求,根据策略负载至后端Wordpress服务器。下图所示架构:
三、建设实施
配置前端服务器
下载nginx
yum install -y nginx
配置nginx配置文件,为了便于管理。在默认的nginx配置文件中输入如下命令:# include conf.d/*.conf,即可新建一个.conf的文件。
vim tyun.cn
server {
listen 80;
return 301 https://www.tyun.cn; #强制跳转https
}
server {
listen 443 ssl;# 监听端口
server_name {server_name};# 域名
ssl_certificate /usr/local/nginx/cert/www.tyun.cn.crt;# 证书路径
ssl_certificate_key /usr/local/nginx/cert/www.tyun.cn.key;#key 路径
#官网首页配置
location / {
root /data/website/tyun/;
index index.html index.htm;
}
#反向代理配置
location /blog/ {
proxy_pass https://{后端服务器地址}/;
}
}
注:后端服务器地址后面一定要加上/,不然传递至后端会带上/blog。
配置后端服务器
由于Wordpress有很多的PHP文件和请求,需要后端配置fastcgi转译服务,还需要配置重写地址策略,后端配置如下所示。
vim tyun.cn
server {
listen 80;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
#伪静态后页面什么的确实可以访问了,结果却出现新的问题,后台不能访问了,仔细观察发现后台所有地址都缺少wp-admin目录,又在网上去寻找答案,就是简单地加一行斜杠重定向而已,方法如下:
rewrite /wp-admin$ $scheme://www.tyun.cn$uri/ permanent;
access_log /var/log/nginx/host.access.log main;
ssl_certificate 3585460_blog.tyun.cn.pem;
ssl_certificate_key 3585460_blog.tyun.cn.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
#Wordpress配置
#wordpress官方的伪静态是通过.htaccess实现的,但nginx并不支持.htaccess,网上找到wordpress伪静态的方法&#