使用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。一般我們是通過http://192.168.111.111:8080/MYWEB來訪問網站,現在要實現的是通過http://www.test.com/MYWEB來訪問,下面講解具體步驟。

1 安裝OpenResty

OpenResty ™ 是一個基於 Nginx 與 Lua 的高性能 Web 平臺,其內部集成了大量精良的 Lua 庫、第三方模塊以及大多數的依賴項。用於方便地搭建能夠處理超高併發、擴展性極高的動態 Web 應用、Web 服務和動態網關。

想要了解詳細內容可以訪問官網:http://openresty.org/cn/,這裏我們只是用到了其中Nginx域名轉發的功能,所以下載安裝Nginx也可以。

到官網http://openresty.org/cn/download.html複製最新的下載地址https://openresty.org/download/openresty-1.11.2.1.tar.gz

使用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配置文件

配置完上面的內容以後,你輸入http://www.test.com/MYWEB會發現打開的並不是你的項目網站,而是tomcat的官網頁面,這是因爲你轉發到的是http://localhost:8080,而要訪問到你的項目網站還需要加上後綴http://localhost:8080/MYWEB,我們可以通過修改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>

此時你訪問http://www.test.com就會自動重定向到http://www.test.com/MYWEB,域名轉發成功。


Men were born to be suffering, the pain of struggle, or the pain of regret?

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章