我有两个 React 构建文件夹,我想像这样访问它们:
https://example.com/ -> /var/www/web_client/
https://example.com/videochat/ -> /var/www/videochat/
这是我的 nginx 配置文件:
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name example.com;
location / {
root /var/www/web_client;
try_files $uri /index.html;
}
location /videochat/ {
root /var/www/videochat;
try_files $uri /index.html;
}
listen [::]:443 ssl ipv6only=on;
listen 443 ssl;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
}
位置块 /
完美运行,但 /videochat/
将我重定向到 /var/www/web_client
的 404 页面,而不是 /var/www/videochat
.
如何修复此错误并让 nginx 在同一台服务器上为两个静态网站提供服务?
我试图像这样颠倒这两个以确保错误来自 nginx:
location / {
root /var/www/videochat;
try_files $uri /index.html;
}
location /web_client/ {
root /var/www/web_client;
try_files $uri /index.html;
}
现在情况正好相反,位置块 /
将我重定向到 /var/www/videochat
的 index.html,正如预期的那样,但是 /web_client/
将我重定向到 /var/www/videochat
而不是 /var/www/web_client
.