我正在构建一个带有wordpress网站的React应用。它应该以这种方式工作:
example.com->带我进入我的应用程序example.com/blog->带我去我的wordpress博客。
我有一个使用nginx的EC2,使用反向代理将用户重定向到我的wordpress博客。我的配置是这样的:
listen 80;
listen 443 http2 ssl;
listen [::]:443 http2 ssl;
server_name example.com;
root /var/www/react-app/react-app/build;
index index.html;
access_log off;
error_log /var/log/nginx/react-app.error.log;
location ^~/blog {
proxy_pass https://54.175.178.245;
proxy_set_header Host $host;
#proxy_set_header X-Real-IP $remote_addr;
#proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
location / {
try_files $uri /index.html =404;
}
location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
expires 365d;
}
location = /favicon.ico {
alias /var/www/react-app/react-app/build/favicon.ico;
}
}
我遇到的问题是,当我使用服务器的IP时它可以正常工作,但是当我访问example.com时,它就无法工作
它不会将我重定向到我的wordpress应用。
值得一提的是,如果我在隐身模式下直接输入example.com/blog,它将可以正常工作。
我做错什么了吗?
编辑:
好的,因此实际上不需要这两行:
listen 443 http2 ssl;
listen [::]:443 http2 ssl;
我正在通过与我的EC2服务器连接的AWS上的ELB管理SSL证书。
现在,我的服务器配置似乎可以正常工作,因为如果使用cURL,它可以正常工作。如果我从cURL请求example.com/blog,它将正常运行。但是它不能在我的浏览器上正常工作。
如果要反向代理https,则不能在同一块上混合使用80和443
{
listen 443 http2 ssl;
listen [::]:443 http2 ssl;
server_name *.example.com;
root /var/www/react-app/react-app/build;
index index.html;
ssl_...
...
access_log off;
error_log /var/log/nginx/react-app.error.log;
location /blog/ { # the end trailing slash is important
proxy_pass https://54.175.178.245/blog;
proxy_set_header Host $host;
#proxy_set_header X-Real-IP $remote_addr;
#proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
location / {
try_files $uri /index.html =404;
}
location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
expires 365d;
}
location = /favicon.ico {
alias /var/www/react-app/react-app/build/favicon.ico;
}
}