gpt4 book ai didi

node.js - 如何创建我的 nginx.conf

转载 作者:太空宇宙 更新时间:2023-11-04 02:17:53 26 4
gpt4 key购买 nike

问题是 API 和前端没有链接。当我启动 nginx 容器时,我可以使用 --link 命令。但我仍然需要编辑我的 nginx.conf。

现在我有

worker_processes 4;

events { worker_connections 1024; }

http {

upstream node-app {
least_conn;
server nodejs:8888 weight=10 max_fails=3 fail_timeout=30s;

}

server {
listen 80;

location / {
proxy_pass http://node-app;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
}

我的 Nodejs 容器有 --name NodeJS 及其在端口 8888 上运行 (-p 8888:8888)它的 dockerfile 看起来像这样:

FROM node

# Create app directory
RUN mkdir -p /usr/src/www
WORKDIR /usr/src/www

# copy
COPY node_modules /usr/src/www/node_modules
COPY gulpfile.js /usr/src/www/gulpfile.js
COPY gulp.config.js /usr/src/www/gulp.config.js
COPY server.js /usr/src/www/server.js

EXPOSE 8080
CMD [ "node", "server.js" ]

我通过执行以下操作开始它:

docker run -d -p 8888:8888 --name nodejs localhost:5000/test/nodejs-image:1

我可以在 localhost:8888/api 上访问我的 api

这是 nginx 的 dockerfile(对于 Angular,dist 是在 npm install 等之后创建的)

FROM nginx
COPY dist /usr/share/nginx/html/dist

当我刚刚表演时:

docker run -d -p 80:80 --name nginx localhost:5000/test/nginx-image:1

我可以访问 localhost:80/dist/... 上的静态文件

但是我必须链接两个容器+更改 nginx.conf:

docker run -d -p 80:80 --name nginx --link nodejs:nodejs -v $(pwd)/nginx.conf:/etc/nginx/nginx.conf localhost:5000/test/nginx-image:1

我的 server.js 包含以下内容:

app.post('/api/login', requestProxy({
url: xxx + "/login"
}));

有人可以修复我的 nginx.conf 还是还有其他错误?

最佳答案

一处变化:在 nginx.conf 中,更改 proxy_pass http://node-appproxy_pass http://nodejs:8888

当您链接容器“--link nodejs:nodejs”时,docker会在/etc/hosts文件中创建并输入“conatiner_name container_ip”,这样您就可以使用其名称访问(ping)链接的容器。

关于node.js - 如何创建我的 nginx.conf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34886610/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com