試用Apache/Nginx反向代理多個(gè)Web應(yīng)用
同一個(gè)域名,想綁定多個(gè)Web應(yīng)用,簡單的方式就是通過反向代理的方式實(shí)現(xiàn)。
比如我有一個(gè)域名www.xxx.com,并已映射到我本地服務(wù)器,同時(shí)又有兩個(gè)應(yīng)用blog和photo,已部署啟動(dòng)在后臺(tái)服務(wù)器上,blog部署在本地3000端口(http://127.0.0.1:3000/blog),Photo部署在本地3001端口(http://127.0.0.1:3001/photo)。希望通過www.xxx.com/blog訪問博客應(yīng)用,通過www.xxx.com/photo訪問相冊應(yīng)用,這時(shí)就可以用上反向代理的功能!
對于Apache來說,反向代理的命令是ProxyPass。找到你的Apache配置文件(我的在/etc/apache2/sites-enable目錄下),在VirtualHost節(jié)點(diǎn)里加上類似如下的語句:
ProxyPass /blog http://127.0.0.1:3000/blog ProxyPass /photo http://127.0.0.1:3001/photo |
對于Nginx來說,反向代理的命令是proxy_pass。找到你的Nginx配置文件(我的是/opt/nginx/conf/nginx.conf文件),在server節(jié)點(diǎn)里加上類似如下的語句:
location ^~ /blog { proxy_pass http://127.0.0.1:3000/blog; } location ^~ /photo { proxy_pass http://127.0.0.1:3001/photo; } |
像如上配置好之后,服務(wù)器就會(huì)將帶有/blog后綴的URL(如www.xxx.com/blog)反向代理到http://127.0.0.1:3000/blog應(yīng)用上,將帶有/photo后綴的URL(如www.xxx.com/photo)反向代理到http://127.0.0.1:3001/photo應(yīng)用上,簡單的實(shí)現(xiàn)一個(gè)域名綁定多個(gè)Web應(yīng)用。
反向代理功能強(qiáng)大,它可以將遠(yuǎn)程服務(wù)器映射到本地服務(wù)器的URL空間,而這里是對反向代理的一個(gè)簡單應(yīng)用,也是初次試用,如有理解或使用不正確之處,歡迎批評(píng)指出!^_^
總的來說,通過反向代理,實(shí)現(xiàn)自定義二級(jí)目錄在統(tǒng)一域名下訪問不同的Web應(yīng)用。好處是能夠統(tǒng)一訪問管理,還能共用OpenID等公用資源。但也需要做一些額外的操作,如對你的應(yīng)用進(jìn)行統(tǒng)一的route設(shè)置,使得應(yīng)用的URL都帶一個(gè)統(tǒng)一后綴,并需要解決靜態(tài)資源文件加載的問題,否則會(huì)出現(xiàn)樣式和圖片的丟失!
posted on 2014-03-21 13:01 順其自然EVO 閱讀(2096) 評(píng)論(1) 編輯 收藏