我有一个站点https://example.com在AWS EC2的实例1上运行: nginx + wildfly应用服务器
一切正常。 Nginx代理传递给Wildfly。 Https已配置。
我想设置在不同EC2实例上运行的wordpress,以便可以通过https://example.com/blog
访问它我为WordPress设置了专用实例,并使用docker compose启动了wordpress,如下所述:https://docs.docker.com/compose/wordpress/ 我配置了作曲器,因此可以通过该实例上的80端口访问wordpress。
我将ngnix配置如下:
server {
listen 443 ssl http2 default_server;
listen [::]:443 ssl http2 default_server;
server_name <server_name>;
root /usr/share/nginx/html;
ssl_certificate "/etc/ssl/certs/<path_to_cert>/ssl-bundle.crt";
ssl_certificate_key "/etc/ssl/certs/<path_to_cert>/private.key";
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 10m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:SEED:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!RSAPSK:!aDH:!aECDH:!EDH-DSS-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA:!SRP;
ssl_prefer_server_ciphers on;
include /etc/nginx/default.d/*.conf;
# main site, deployed on same instance as nginx
location / {
proxy_pass http://127.0.0.1:8080;
}
# wordpress, deployed on other instance
location /blog/ {
proxy_pass http://<my_wordpress_instance_local_ip>/;
proxy_set_header X-Forwarded-Proto $scheme;
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
我安装了wordpress(使用直接访问它),并将WordPress地址(URL)和站点地址(URL)配置为“ https://example.com/blog”。
现在,我可以正常访问管理员和主页https://example.com/blog。但是,当我单击以查看测试“ Hello World”帖子(URL:https://example.com/blog/2018/09/28/hello-world/)时,出现500 Internal Server错误。
我查看了wordpress docker日志,发现以下错误: “ [[Fri Sep 28 18:17:25.721177 2018] [core:error] [pid 308] [client:47792] AH00124:由于可能的配置错误,请求超出了10个内部重定向的限制。请使用'LimitInternalRecursion'增加限制如有必要,请使用“ LogLevel调试”获取回溯。引荐来源:https://example.com/blog/ “
我该如何解决? 免责声明:我在nginx方面没有丰富的经验,在wordpress方面没有经验,所以对可能是愚蠢的问题感到抱歉。我尝试了在Internet上找到的其他选项,但是所有这些选项要么都不起作用,要么描述了手动wordpress设置(不是通过标准的docker image)。
更新:
我更新了nginx conf的描述:现在提供了整个配置;
我的Wordpress永久链接设置为“日期和名称”。我尝试了所有这些方法,发现如果我切换到“普通格式”,则一切正常。所有其他设置都会导致错误。显然,“简单”对我不起作用,我想继续做一些比这更好的事情。
答案 0 :(得分:0)