我學習的基礎知識,當涉及到開發和部署MEAN堆棧的應用程序,所以請它是錯的糾正這種任何部分。我會解釋我目前的設置,以及我想要做的。使用的Nginx服務器隔離節點應用分隔網址
設置
我有,我想用我所有的MEAN堆棧的應用程序的單一AWS EC2實例,還有說我主要是利用來處理SSL請求負載平衡器。 EC2實例正在運行Ubuntu,並在其上安裝了Node和Nginx。
現在我只有一個Node應用程序,它在端口3000上運行.Nginx服務器(我將在下面粘貼的配置文件)監聽4000端口並將請求重定向到3000上的節點應用程序最後,負載均衡器配置爲接受來自端口80和443的請求,並在4000他們直接到Nginx的服務器,因此,基本上是:
HTTP (80) ----
|
--> Load Balancer --> Nginx (4000) --> Node App (3000)
|
HTTPS (443) --
這裏是我目前使用的全Nginx的配置文件此刻:
user ubuntu;
worker_processes 1;
pid /run/nginx.pid;
events {
worker_connections 1024;
# multi_accept on;
}
http {
server_names_hash_bucket_size 64;
gzip on;
gzip_comp_level 6;
gzip_vary on;
gzip_min_length 1000;
gzip_proxied any;
gzip_types text/plain text/html text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
gzip_buffers 16 8k;
upstream vidzyApp {
server localhost:3000;
}
server {
listen 4000;
server_name <domain>.com *.<domain>.com;
root /home/ubuntu/server;
error_page 404 /default.html;
error_page 403 /default.html;
location/{
proxy_pass http://vidzyApp;
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;
}
}
}
否我正在運行的應用程序是遵循教程製作的應用程序,名爲Vidzy。如果我現在通過HTTP或HTTPS訪問我的網站,一切都運行良好。但是,這是我想要做的。
問題
基本上,我希望能夠有多個MEAN應用程序的運行是通過在同一個域不同的網址訪問。例如,要訪問Vidzy,我想訪問http://[domain].com/vidzy/。
我試圖修改Nginx的配置文件自己以不同的方式,但沒有任何作品的權利。我嘗試的第一件事是將位置服務器的一部分更改爲/vidzy而不是僅僅/。但是這樣做,應用程序似乎非常糟糕。
我還在努力瞭解如何平均應用程序的組件彼此互動。它看起來像試圖改變位置/Vidzy時出現的問題,它攪亂了以這樣的方式,其中位於該應用程序的公共文件夾中的文件無法與新的URL結構中找到該應用程序。
是我在做什麼,即使是可行的呢?如果是這樣,我有多少這是我搞砸了?
我不熟悉MEAN堆棧,但你可以試試'proxy_pass的http:// vidzyApp /;'確保'位置/ vidzy /'映射到節點的根應用程序。確保兩個URI上都有'/'後綴。 –