[英]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實例中執行此操作。
我為實例設置了DNS記錄,因此可以將mydomain.com
設置為192.168.123.123
(我的特定IP)。
在我的實例內部,我永遠在3000端口運行我的node.js應用程序(我通過從命令行發出curl localhost:3000
來測試它的工作)
然后,我下載此.sh
文件以正確初始化nginx。 curl -o nginxStarter.sh https://gist.githubusercontent.com/renatoargh/dda1fbc854f7957ec7b3/raw/c0bc1a1ec76e50cdb4336182c53a0b222edb6c0e/start.sh
我使用此配置文件配置nginx。 把這個文件放進去; /etc/nginx/nginx.conf
使用此命令啟動nginx; sudo sh nginxStarter.sh start
PS .:對於多個應用程序,只需復制將請求路由到特定端口的行,非常簡單...! 如果不需要,您可以消除關於SSL的限制。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.