多個網域名稱公用乙個IP

2021-09-02 10:23:38 字數 4620 閱讀 5973

由於公司內網有多台伺服器的http服務要對映到公司外網靜態ip,如果用路由的埠對映來做,就只能一台內網伺服器的80埠對映到外網80埠,其他伺服器的80埠只能對映到外網的非80埠。非80埠的對映在訪問的時候要網域名稱加上埠,比較麻煩。並且公司入口路由最多只能做20個埠對映。肯定以後不夠用。

然後k兄就提議可以在內網搭建個nginx反向**伺服器,將nginx反向**伺服器的80對映到外網ip的80,這樣指向到公司外網ip的網域名稱的http請求就會傳送到nginx反向**伺服器,利用nginx反向**將不同網域名稱的請求**給內網不同機器的埠,就起到了「根據網域名稱自動**到相應伺服器的特定埠」的效果,而路由器的埠對映做到的只是「根據不同埠自動**到相應伺服器的特定埠」,真是喜大普奔啊。

涉及的知識:nginx編譯安裝,nginx反向**基本配置,路由埠對映知識,還有網路網域名稱等常識。

本次實驗目標是做到:在瀏覽器中輸入***123.tk能訪問到內網機器192.168.10.38的3000埠,輸入***456.tk能訪問到內網機器192.168.10.40的80埠。

伺服器ubuntu 12.04

###更新倉庫

apt-get update -y

apt-getinstallwget -y

pcre是為了編譯rewrite模組,zlib是為了支援gzip功能。額,這裡nginx版本有點舊,因為我還要做公升級nginx的實驗用。大家可以裝新版本。

cd/usr/local/src

wgetftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.33.tar.gz

wgettar.gz

wgettar.gz

tarxf pcre-8.33.tar.gz

tarxf zlib-1.2.8.tar.gz

#安裝編譯環境

apt-getinstallbuild-essential libtool -y

#建立nginx使用者

所謂的unprivileged user

useradd-s /bin/false-r -m -d /nonexistent www

#開始編譯安裝

#給資料夾授權

chown-r www:www /usr/local/nginx

#修改配置檔案

額,關於負載均衡和快取就不多說了,這裡只是要起到乙個簡單的「網域名稱**」功能。

另外,由於http請求最後都是由反向**伺服器傳遞給後段的機器,所以後端的機器原來的訪問日誌記錄的訪問ip都是反向**伺服器的ip。

要想能記錄真實ip,需要修改後端機器的日誌格式,這裡假設後端也是一台nginx:

在後端配置檔案裡面加入這一段即可:

再看看原來日誌的格式長什麼樣:

看出區別了吧

proxy_connect_timeout 300s;

proxy_read_timeout 300s;

proxy_send_timeout 300s;

proxy_buffer_size 64k;

proxy_buffers 4 32k;

proxy_busy_buffers_size 64k;

proxy_temp_file_write_size 64k;

proxy_ignore_client_abort on;

報錯日誌:

...upstream timed out (110: connection timed out)whilereading response header from upstream, client: ...(後面的省略)

從日誌看來是連線超時了,網上一通亂查之後估計可能是後端伺服器響應超時了,本著大膽假設,小心求證的原則,既然假設了錯誤原因就要做實驗重現錯誤:那就調整**超時引數,反過來把**超時閥值設小(比如1ms)看會不會次次出現504。後來發現把proxy_read_timeout 這個引數設定成1ms的時候,每次訪問都出現504。於是把這個引數調大,加入上面那段配置,解決問題了。

乙個ip繫結多個網域名稱

乙個ip繫結多個網域名稱 ip位址一樣,不一樣的是不同的埠號,不同的埠號對應不同的網域名稱 在http vhost.conf裡面如下配置 新增新的位址,繫結同乙個ip,但是埠號不一樣 這裡是81 乙個apache可以監聽多個埠,啟動81埠 在httpd.conf裡面搜尋listen 新增listen...

Tomcat配置乙個ip繫結多個網域名稱

在網上找了半天也沒找到相關的資料,都說的太含糊.本人對tomcat下配置 一ip對多網域名稱的方法詳細如下,按下面配置一定能成功,經過測試了.因無網域名稱解析伺服器,所以在hosts上配,來模擬dns解析.10.1.1.241 localhost 指向gg資料夾 10.1.1.241 localho...

Tomcat配置乙個ip繫結多個網域名稱

在網上找了半天也沒找到相關的資料,都說的太含糊.本人對tomcat下配置 一ip對多網域名稱的方法詳細如下,按下面配置一定能成功,經過測試了.因無網域名稱解析伺服器,所以在hosts上配,來模擬dns解析.10.1.1.241 localhost 指向gg資料夾 10.1.1.241 localho...