nginx server block + docker,后台和前台如何通信
nginx server block + docker, how does back and front communicate
我的应用程序分为后端和前端 docker 容器,它们 运行 在数字海洋服务器中。我购买了一个域并将数字海洋提供的路由插入到我的 namecheap DNS 中。我正在使用 nginx 服务器块将我的前端路由到服务器,并希望它与我的后端 docker 容器通信。我目前正在观看来自法拉第的教程。
我的前端容器 运行ning 在 localhost:3000
上,我的后端容器 运行ning 在 localhost:5000
上;
当位置为 server_name/ 时,我已将端口设置为 运行 。我的 nginx 服务器块如何知道它是将前端还是后端加载到域,因为两者都应该在位置 运行 proxy_pass /?
我想在提供的 server_name 上显示前端,但仍然可以访问我的后端
server{
server_name newlife.life;
access_log /var/log/nginx/st-access.log
error_log /var/log/nginx/st-error.log debug
location / {
proxy_pass http://localhost:3000;
}
location / {
proxy_pass http://localhost:5000;
}
}
您的前端可以在不同的子路径上进行后端调用。这些请求将到达 nginx,然后 nginx 可以通过使用 http_rewrite
模块重写 URL 将它们代理到后端。
见https://nginx.org/en/docs/http/ngx_http_rewrite_module.html
示例:
location /backend {
proxy_pass localhost:5000;
rewrite ^/backend/(.*) / break;
}
我的应用程序分为后端和前端 docker 容器,它们 运行 在数字海洋服务器中。我购买了一个域并将数字海洋提供的路由插入到我的 namecheap DNS 中。我正在使用 nginx 服务器块将我的前端路由到服务器,并希望它与我的后端 docker 容器通信。我目前正在观看来自法拉第的教程。
我的前端容器 运行ning 在 localhost:3000
上,我的后端容器 运行ning 在 localhost:5000
上;
当位置为 server_name/ 时,我已将端口设置为 运行 。我的 nginx 服务器块如何知道它是将前端还是后端加载到域,因为两者都应该在位置 运行 proxy_pass /?
我想在提供的 server_name 上显示前端,但仍然可以访问我的后端
server{
server_name newlife.life;
access_log /var/log/nginx/st-access.log
error_log /var/log/nginx/st-error.log debug
location / {
proxy_pass http://localhost:3000;
}
location / {
proxy_pass http://localhost:5000;
}
}
您的前端可以在不同的子路径上进行后端调用。这些请求将到达 nginx,然后 nginx 可以通过使用 http_rewrite
模块重写 URL 将它们代理到后端。
见https://nginx.org/en/docs/http/ngx_http_rewrite_module.html
示例:
location /backend {
proxy_pass localhost:5000;
rewrite ^/backend/(.*) / break;
}