我尝试使用nginx作为反向代理,在Google AppEngine上托管Docusaurus v2。GooglAppEngine已启用HTTPS。Nginx监听端口8080。因此,默认情况下,所有请求都是通过HTTPS和Google AppEngine管理的连接。
但是,当用户执行以下操作时,我遇到了问题:
- 到达着陆页
- 转到文档(任何页面)。
- 刷新页面。
用户被定向到端口8080,而不是docusaurus的https站点。
无需刷新页面,用户就能够成功地导航站点。当用户点击刷新按钮时,他们会得到重定向。查看头信息,我看到响应将它们指向端口8080,但我不确定为什么会发生这种情况。
想知道是否有人成功地使用nginx设置了Docusaurus v2?
我的nginx配置如下:
events {
worker_connections 768;
}
http {
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
include /etc/nginx/mime.types;
default_type application/octet-stream;
# Logs will appear on the Google Developer's Console when logged to this
# directory.
access_log /var/log/app_engine/app.log;
error_log /var/log/app_engine/app.log;
gzip on;
gzip_disable "msie6";
server {
# Google App Engine expects the runtime to serve HTTP traffic from
# port 8080.
listen 8080;
root /usr/share/nginx/www;
index index.html index.htm;
location / {
if ($http_x_forwarded_proto = "http") {
return 301 https://$server_name$request_uri;
}
}
}
2条答案
按热度按时间lb3vh1jj1#
这可能是由于docusaurus网站链接到没有尾随斜杠
/
的目录,导致默认设置为包括端口的重定向。查看docusaurus构建目录,您将看到页面被定义为包含索引的文件夹。如果没有
/
,服务器需要重定向到{page}/index.html
。尝试调用带有
/
且没有端口的URL,应该会成功:因此,要解决此问题,您可以尝试更改重定向规则,使其不包含带有
port_in_redirect
参数的端口:有关详细信息,请参阅文档。
9gm1akwq2#
要解决“转到文档(任意页面)”和“刷新页面”问题,您可以用途: