我的環境是一臺centos7的騰訊云服務器,同時安裝了nginx和tomcat,配置反向代理以將對nginx的請求轉發給tomcat處理。
反向代理不僅可以使用tomcat,諸多其他服務器,如jetty都可以。
反向代理的作用有很多,可以把靜態文件交由nginx來進行處理,作為靜態服務器,這樣可以方便緩存那些靜態文件,比如CSS,JS,html,htm等文件。還可以配置負載均衡,虛擬主機,FastCGI等功能。
下邊詳細介紹如何配置反向代理。nginx的安裝過程,參見nginx官網安裝指南 ,tomcat安裝,請參考Apache tomcat 官方指南?
首先來看一下nginx配置文件中我們需要了解的幾個配置項
server {
listen? ? ? 80 default_server;
listen? ? ? [::]:80 default_server;
server_name? localhost;
root? ? ? ? /usr/share/nginx/html;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location / {
proxy_pass http://localhost;
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
這段代碼在server里面,相當于一個代理服務器,當然可以配置多個。
下面我們仔細來分析一下:
listen:表示當前的代理服務器監聽的端口,默認的是監聽80端口。注意,如果我們配置了多個server,這個listen要配置不一樣,不然就不能確定轉到哪里去了。
server_name:表示監聽到之后需要轉到哪里去,這時我們直接轉到本地,這時是直接到nginx文件夾內。
location:表示匹配的路徑,這時配置了/表示所有請求都被匹配到這里
root:里面配置了root這時表示當匹配這個請求的路徑時,將會在這個文件夾內尋找相應的文件,這里對我們之后的靜態文件服務器很有用。
index:當沒有指定主頁時,默認會選擇這個指定的文件,它可以有多個,并按順序來加載,如果第一個不存在,則找第二個,依此類推。
下面的error_page是代表錯誤的頁面,這里我們暫時不用,先不管它。
那我們知道了具體的配置了,怎么讓它訪問localhost時轉到tomcat時。實際上就修改兩個地方:
server_name localhost:8080;
location?/?{
? proxy_pass?http://localhost:8080;
}
檢查nginx配置是否正確(這一步也可以省略)
nginx -t
重新加載nginx配置文件
nginx -s reload
重新訪問服務器ip或域名,原來的nginx服務器的web界面就會變成tomcat的web界面。
參考:nginx官網指南?