我必须设置一个有NodeJS后端和一个React webapp前端的服务器。 Nginx和Node应用程序在单独的docker容器中运行,我想这样做:
/api
请求都将重新路由到NodeJS应用程序 /
(即前端应用程序) 最后一条规则是需要的,因为这些路由在ReactJS内部处理,但是如果有人重新加载页面,它将得到一个404,因为nginx会尝试加载profile
文件。
这是我目前的configuration
server { listen 80; root /var/www/myapp; error_page 404 /404.html; location /api { proxy_redirect off; 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; proxy_set_header Host $http_host; proxy_set_header X-NginX-Proxy true; proxy_set_header Connection ""; proxy_http_version 1.1; proxy_pass http://app:61337; } location ~* \.(js|css|gif|jpg|jpeg|map|png|svg|ttf|eot|woff|woff2|json|ico)$ { root /var/www/myapp; } location / { // Something needs to be here I guess } }
我想使它有限的端口不同于80
,所以,例如http://localhost:8080/profile
将redirect到http://localhost:8080/