使用Nginx(OpenResty)轉發域名到非80埠
今天我們來學習一個比較實際的技能,那就是如何通過域名訪問你的Web專案呢?主要解決以下幾個問題:
1、如何得到一個可用的域名
2、Web工程的埠一般是8080或8081等等的非80埠,如何訪問域名的時候能轉發到這些非80埠呢?
3、域名不可能只對應一個工程,這樣太浪費了,如何將帶不同字尾的域名指向不同的工程?例如:使www.example.com/work、www.example.com/study 指向不同的網站
對於第一個問題,有錢就可以解決,可以直接從阿里雲買的域名;本節要解決的是後面的問題,假設我們現在已經有了域名:www.test.com,一個對應到該域名的伺服器(192.168.111.111),一個部署在tomcat8080埠上的JavaWeb專案:MYWEB。一般我們是通過
1 安裝OpenResty
OpenResty ™ 是一個基於 Nginx 與 Lua 的高效能 Web 平臺,其內部集成了大量精良的 Lua 庫、第三方模組以及大多數的依賴項。用於方便地搭建能夠處理超高併發、擴充套件性極高的動態 Web 應用、Web 服務和動態閘道器。
想要了解詳細內容可以訪問官網:http://openresty.org/cn/,這裡我們只是用到了其中Nginx域名轉發的功能,所以下載安裝Nginx也可以。
使用wget命令下載:
wget https://openresty.org/download/openresty-1.11.2.1.tar.gz
解壓:
tar -xvf openresty-1.11.2.1.tar.gz
安裝依賴(ubuntu下用apt-get,centos用yum)
apt-get install libreadline-dev libncurses5-dev libpcre3-dev libssl-dev perl
安裝:
cd /data/install/openresty-1.11.2.1
./configure --prefix=/data/install/openresty-1.11.2.1
make
make install
注意這裡的第一步如果報錯一般是因為缺少依賴,新增依賴即可:
yum -y install pcre-devel openssl openssl-devel
啟動命令:
/data/install/openresty-1.11.2.1/nginx/sbin/nginx
重新載入命令:
/data/install/openresty-1.11.2.1/nginx/sbin/nginx -s reload
2 修改Nginx配置檔案實現域名轉發
修改配置檔案
vi /data/install/openresty-1.11.2.1/nginx/conf/nginx.conf
將以下內容新增到 http 節點下:
server {
listen 80;
charset utf-8;
server_name www.test.com;
location /MYWEB {
client_max_body_size 100m;
proxy_connect_timeout 1200;
proxy_send_timeout 1200;
proxy_read_timeout 1200;
root /data/install/tomcat_myweb/webapps;
proxy_pass http://localhost:8080;
}
}
listen 80
表示要監聽的是80埠
server_name www.test.com
是對應的域名
location /MYWEB
是域名後跟的子字尾,這裡就是http://www.test.com/MYWEB
root /data/install/tomcat_myweb/webapps
是tomcat專案釋出路徑
proxy_pass http://localhost:8080
是要實際轉發到的ip和埠
如果想要訪問到其他子路徑的專案,如http://www.test.com/OTHERWEB,只要在 http 新增一個 server 並修改對應的配置即可
3 更改tomcat配置檔案
cd /data/install/tomcat_myweb/webapps/ROOT
刪除ROOT下的所有檔案,新增index.html檔案
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="refresh" content="0.1;url=/MYWEB">
</head>
<body>
</body>
</html>
Men were born to be suffering, the pain of struggle, or the pain of regret?