angularjs - 使用 NginX 提供 Angular 应用程序

标签 angularjs nginx digital-ocean

我有一个具有以下结构的 Angular 应用程序。 我通常使用 Express 服务器来提供 Angular 应用程序,但我需要在 digitalocean 实例上使用 nginx 部署此应用程序。我是 nginx 的新手,不太明白它是如何工作的。我有一个看起来像这样的初始结构:

Nginx 配置

server {
        listen 80;

        root /var/www/webclient.com/dist;

        index index.html;

        server_name domain.com www.domain.com;

        location / {
                proxy_pass http://134.435.11.92:3000;
                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 {
        listen 80;

        server_name api.domain.com;

        location / {
                proxy_pass http://134.435.11.92:8080;
                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;
        }
}

目录结构 (dist文件夹)

├── 404.html
├── cloudwave.css
├── cloudwave.js
├── favicon.ico
├── fonts
│   ├── FontAwesome.otf
│   ├── fontawesome-webfont.eot
│   ├── fontawesome-webfont.svg
│   ├── fontawesome-webfont.ttf
│   ├── fontawesome-webfont.woff
│   └── ufonts.com_tw-cen-mt.ttf
├── images
│   ├── blog
│   │   ├── blog-bg.jpg
│   │   ├── blog-img-1.jpg
│   │   ├── blog-img-2.jpg
│   │   ├── blog-img-3.jpg
│   │   ├── blog-img-4.jpg
│   │   ├── blog-img-5.jpg
│   │   ├── blog-img-6.jpg
│   │   ├── blog-img-thumb-1.jpg
│   │   └── blog-img-thumb-2.jpg
│   ├── cooker-img.png
│   ├── fashion_room.jpg
│   ├── header.jpg
│   ├── logo-orig.png
│   ├── logo.png
│   ├── overlay-pattern.png
│   ├── overlay-pattern2.png
│   ├── photo
│   │   ├── photo-1.jpg
│   │   ├── photo-2.jpg
│   │   ├── photo-3.jpg
│   │   └── photo-4.jpg
│   ├── slider
│   │   ├── slider-img-1.jpg
│   │   ├── slider-img-2.jpg
│   │   ├── slider-img-3.jpg
│   │   └── slider-img-4.jpg
│   ├── subscribe-bg.jpg
│   └── top_bg.jpg
├── index.html
├── robots.txt
├── scripts.js
└── templates.js

第二个服务器 block 运行一个节点服务器,我已经让它工作了。但问题就出在第一个服务器上。 如何配置 nginx 来提供目录结构中的内容? 谢谢:)

最佳答案

您需要删除第一个 server block 中的整个 location block 。这是用于代理的,不是您想要的。然后您需要将 root 设置为您要提供服务的文件的根目录的路径。

看起来这已经是你想要的了。因此,访问 www.domain.com/images/logo.png 应该提供文件 /var/www/webclient.com/dist/images/logo.png

关于angularjs - 使用 NginX 提供 Angular 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33280820/

相关文章:

django - 不要在上传模块的帮助下跨 nginx 上传文件

mysql - DigitalOcean 上的 NodeJs 无法连接到 Amazon RDS 上的 MySQL 数据库

使用 Node Express 在 digital ocean 中设置 mysql

kubernetes - 在 DigitalOcean 上使用 terraform 预部署 Kubernetes 负载均衡器?

angularjs - 等待 Protractor 与页面同步时出错 : "[ng:test] no injector found for element argument to getTestability

node.js - 如果 Node 关闭,如何在多个 Node 上处理 socketio

html - 在我的输入中显示多个信息

python - Django、Virtualenv、nginx + uwsgi导入模块wsgi报错

javascript - 无法使用 $http 读取 json 文件

javascript - 没有项目的中继器中的 Angular 加载 img src