我有两个服务器实例在两个服务器上运行NGINX。
因此NGINX-A接收所有传入流量,将其重新路由到适当的服务器。 NGINX-B是在NGINX而不是Apache上运行的传统Wordpress主机。
我正在尝试 postname permalinks 工作,但未能这样做。
我目前的目录结构:
/appl/wordpress/myblog == symbolic link ==> /usr/share/nginx/html/subdir/myblog
这是我安装Wordpress的NGINX-B服务器上的当前配置。
location /subdir/myblog/ {
try_files $uri $uri/ /subdir/myblog/index.php?$args;
}
通过http://NGINX_B-ip_address/subdir/myblog访问它, postname永久链接和普通永久链接。我必须在下面更新wp-config。
define('WP_HOME', 'NGINX_B-ip_address')
define('WP_SITEURL','NGINX_B-ip_address');
现在,我有另一个nginx服务器作为反向代理,NGINX-A。
location /{
proxy_pass http://NGINX_B-internal_ip_address;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
#for wordpress
proxy_set_header X-Forwarded-Proto $scheme;
}
我还必须使用新的主机名
更新wp-config.phpdefine('WP_HOME', 'http://NGINX-A-hostname/myblog')
define('WP_SITEURL','http://NGINX-A-hostname/myblog');
使用普通永久链接,我可以毫无问题地访问wp-admin。我也可以改变固定链接策略。
如果我不使用普通固定链接,则整个过程会中断并继续出现404错误。
好像NGINX反向代理将请求转发为目录而不是参数。有什么建议吗?谢谢!
答案 0 :(得分:0)
好我通过将此问题应用于NGINX-B服务器设法解决了我的问题
location /myblog {
root /usr/share/nginx/html/subdir;
try_files $uri $uri/ /myblog/index.php?$args;
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_index index.php;
fastcgi_pass unix:/var/run/php5-fpm.sock;
include /etc/nginx/fastcgi_params;
fastcgi_param SCRIPT_FILENAME $request_filename;
}
}
我之前的配置是这样,但没有用。
location /subdir/myblog/ {
try_files $uri $uri/ /subdir/myblog/index.php?$args;
}
这也行不通。不要在根条目处。 myblog部分不应该存在,myblog应该包含在try_files中。
location /myblog {
root /usr/share/nginx/html/subdir/myblog;
try_files $uri $uri/ /index.php?$args;
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_index index.php;
fastcgi_pass unix:/var/run/php5-fpm.sock;
include /etc/nginx/fastcgi_params;
fastcgi_param SCRIPT_FILENAME $request_filename;
}
}