簡體   English   中英

Nginx和多個域

[英]Nginx and multiple domains

我在godaddy.com (即mydomain.com )上購買了一些域名,以在digitalocean.com (即199.216.110.210 )上購買了我的液滴。 我在Droplet的端口80上運行一個nodejs應用程序。 godaddy.com ,我將mydomain.com屏蔽到199.216.110.210 ,我可以看到may app。

現在,我想在199.216.110.210上使用ngnix作為反向代理在不同端口上運行多個節點應用程序。 我按照此處的說明進行操作( www.digitalocean.com/community/articles/how-to-host-multiple-node-js-applications-on-a-single-vps-with-nginx-forever-and-crontab )。

我的nginx .conf文件是

 server {
    listen 80;
    server_name mydomain.com;
    location / {
    proxy_pass http://localhost:3000;
    # same as in the link above
    }   
}

(而且我確信它是讀的:當ngnix啟動時,如果我在其中輸入錯誤,ngnix會報告它)。

我在端口3000上啟動nodejs應用程序:

  • 我嘗試使用mydomain.com ,但是ngnix始終顯示歡迎頁面。
  • 也在做mydomain.com: 3000不起作用,
  • 它僅適用於199.216.110.210:3000

從godaddy.com,如果我將mydomain.com屏蔽到199.216.110.210:3000 ,則可以看到may app。 但是我不喜歡這種解決方案。 我希望域指向我的Droplet,而不指定端口並使用nginx對其進行管理。

如何獲得一個域名,將其與ngnix用作反向代理來選擇我的應用程序,並將其映射到不同端口上的不同域? 我想從godaddy.com轉發郵件在某種程度上受到限制。

在您的服務器中,轉到/var/log/nginx並執行tail -F *log 現在,在另一個shell中,重新啟動nginx。

我懷疑您的域名太長,nginx會抱怨其hash_bucket_size太小。 如果是這種情況,請打開/etc/nginx/nginx.conf並確保該行

server_names_hash_bucket_size 64;

存在,值為64,並且未注釋。 然后執行sudo service nginx reload ,並檢查是否所有工作都按預期進行。

我將逐步詳細介紹如何在AWS ec2實例中執行此操作。

  1. 我為實例設置了DNS記錄,因此可以將mydomain.com設置為192.168.123.123 (我的特定IP)。

  2. 在我的實例內部,我永遠在3000端口運行我的node.js應用程序(我通過從命令行發出curl localhost:3000來測試它的工作)

  3. 然后,我下載.sh文件以正確初始化nginx。 curl -o nginxStarter.sh https://gist.githubusercontent.com/renatoargh/dda1fbc854f7957ec7b3/raw/c0bc1a1ec76e50cdb4336182c53a0b222edb6c0e/start.sh

  4. 我使用此配置文件配置nginx。 把這個文件放進去; /etc/nginx/nginx.conf

  5. 使用此命令啟動nginx; sudo sh nginxStarter.sh start

PS .:對於多個應用程序,只需復制將請求路由到特定端口的行,非常簡單...! 如果不需要,您可以消除關於SSL的限制。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM