node.js – 如何将我的NodeJS与我的Angular连接(在Nginx中)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了node.js – 如何将我的NodeJS与我的Angular连接(在Nginx中),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2364字,纯文字阅读大概需要4分钟。
内容图文
![node.js – 如何将我的NodeJS与我的Angular连接(在Nginx中)](/upload/InfoBanner/zyjiaocheng/951/4dda78e27da84045b1c07c33ad775c84.jpg)
我有一个有角度和nodejs的回购.
我在jenkins演出:
# install globally
npm install -g bower
npm install -g gulp
# install
bower install
npm install
# build dist folder
gulp build
现在我在我的根里:
Dockerfile.nginx Dockerfile.nodejs README.md bower.json dist gulp.config.js gulpfile.js node_modules package.json server.js src
我正在复制我的nginx容器中的dist文件夹.所以我主持角度. (使用dockerfile)
FROM nginx
# copy folder
COPY dist /usr/share/nginx/html/dist
我正在复制:gulp.config.js gulpfile.js node_modules server.js到我的nodejscontainer. (还有一个dockerfile)
FROM node
# Create app directory
RUN mkdir -p /usr/src/www
WORKDIR /usr/src/www
# copy
COPY node_modules /usr/src/www/
COPY gulpfile.js /usr/src/www/
COPY gulp.config.js /usr/src/www/
COPY server.js /usr/src/www/
EXPOSE 8080
CMD [ "node", "server.js" ]
我运行2个容器,但是nginx不与nodejs通信
EDIT1:
启动容器:
docker run -d -p 8888:8888 --name "nodejs" localhost:5000/test/nodejs:1
docker run -d -p 80:80 --name "nginx" localhost:5000/test/nginx:1
EDIT2:我的nginx.conf看起来像这样:
http {
upstream node-app {
least_conn;
server nodejs:8888 weight=10 max_fails=3 fail_timeout=30s;
}
server {
listen 80;
location /dist {
alias /usr/share/nginx/html/dist/;
}
location ~* /api {
#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;
}
}
}
我的server.js看起来像:
app.get('/api/hello', requestProxy({
url: xxx + "/hello"
}));
解决方法:
您需要公开nginx(角度)容器将连接到的node.js容器的端口.
请参阅docker文档的Connect using network port mapping部分.
更新:我认为,您需要将nginx配置文件配置到节点容器. This question有与您的用例相关的示例nginx文件(尽管与容器无关).
编辑:要使用nginx映射节点应用程序,首先需要将节点容器与nginx容器链接.
docker run -d -p 80:80 --name "nginx" --link nodejs:nodejs localhost:5000/test/nginx:1
将节点容器与nginx容器链接时,节点容器的地址将保存在/ etc / hosts中.所以nginx容器可以从那里访问节点的地址.
因此,在nginx配置文件中,nodejs可以作为nodejs的容器地址访问:
http {
upstream node-app {
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;
}
}
}
内容总结
以上是互联网集市为您收集整理的node.js – 如何将我的NodeJS与我的Angular连接(在Nginx中)全部内容,希望文章能够帮你解决node.js – 如何将我的NodeJS与我的Angular连接(在Nginx中)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。