1. 程式人生 > >使用Nginx(OpenResty)轉發域名到非80埠

使用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也可以。

使用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?