我最近已从Nginx迁移到AWS Application Load Balancer。
使用Nginx,给定网站https://example.com/
,Wordpress可以在http://55.555.55.555
上运行,并具有以下设置来服务https://example.com/blog
上的博客网站。
// For nginx conf
location /blog/ {
proxy_pass http://55.555.55.555/;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
}
// For wp-config.php
define('WP_SITEURL', 'https://example.com/blog');
define('WP_HOME', 'https://example.com/blog');
但是,尝试通过Application Load Balancer实现相同功能时,事情变得有些复杂。
在设置以下规则之后,使用nginx,https://example.com/blog/wp-admin/
可以很好地映射到http://55.555.55.555/wp-admin/
,并且使用Application Load Balancer:
If Path is /blog*, THEN Forward to <target group holding 55.555.55.555>
,
http://example.com/blog/wp-admin/
映射到http://55.555.55.555/blog/wp-admin/
,但未找到。
Wordpress使用来自ec2市场实例(由Intuz提供支持的Wordpress)中的内置Wordpress软件包之一在ec2上运行,该软件包在Apache中运行。所有wordpress内容都位于/var/www/html/
中。
我该如何完成我以前使用ELB与Nginx达成的合作?