nginx配置基於功能變數名稱、埠、IP的虛擬主機

来源:https://www.cnblogs.com/su-root/archive/2019/01/07/10230994.html
-Advertisement-
Play Games

1、基於功能變數名稱的虛擬主機: 絕大多數企業對外提供服務的網站使用的都是基於功能變數名稱的主機,通過不同的功能變數名稱區分不同的虛擬主機。 首先我們進入安裝nginxd的目錄下:/application/nginx-1.6.3/conf 我們去除掉預設配置文件里的註釋和空行並重定向到nginx.conf文件里,同時我們需 ...


1、基於功能變數名稱的虛擬主機:

  絕大多數企業對外提供服務的網站使用的都是基於功能變數名稱的主機,通過不同的功能變數名稱區分不同的虛擬主機。

首先我們進入安裝nginxd的目錄下:/application/nginx-1.6.3/conf

我們去除掉預設配置文件里的註釋和空行並重定向到nginx.conf文件里,同時我們需要配置如下:

egrep -v "#|^$" nginx.conf.default >nginx.conf   //去掉包含#號和空行的內容

[root@lamp01 conf]# vim nginx.conf
worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    server {
        listen       80;
        server_name  www.jyw1.com;
        location / {
            root   html/www;
            index  index.html index.htm;
        }
    }
     server {
        listen       80;
        server_name  bbs.jyw2.com;
        location / {
            root   html/bbs;
            index  index.html index.htm;
         }
     }
}

創建站點目錄文件:

mkdir ../html/{www,bbs} -p  

[root@lamp01 conf]# tree ../html/
../html/
├── 50x.html
├── bbs
│   └── index.html
├── index.html
└── www
     └── index.html

 為站點目錄生成首頁並追加內容:

 通過hosts來做dns解析

[root@lamp01 conf]# echo "www.jyw1.com" >../html/www/index.html 
[root@lamp01 conf]# echo "bbs.jyw2.com" >../html/bbs/index.html 
[root@lamp01 conf]# cat ../html/{www,bbs}/index.html 
www.jyw1.com
bbs.jyw2.com
[root@lamp01 conf]# /application/nginx/sbin/nginx -t  #檢查語法
nginx: the configuration file /application/nginx-1.6.3/conf/nginx.conf syntax is ok
nginx: configuration file /application/nginx-1.6.3/conf/nginx.conf test is successful
[root@lamp01 conf]# /application/nginx/sbin/nginx -s reload  #刷新配置
[root@lamp01 conf]# vi /etc/hosts
[root@lamp01 conf]# ping www.jyw1.com
PING www.jyw1.com (192.168.43.118) 56(84) bytes of data.
64 bytes from www.jyw1.com (192.168.43.118): icmp_seq=1 ttl=64 time=0.022 ms
64 bytes from www.jyw1.com (192.168.43.118): icmp_seq=2 ttl=64 time=0.020 ms
^C
--- www.jyw1.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1280ms
rtt min/avg/max/mdev = 0.020/0.021/0.022/0.001 ms
[root@lamp01 conf]# ping bbs.jyw2.com
PING bbs.jyw2.com (192.168.43.118) 56(84) bytes of data.
64 bytes from www.jyw1.com (192.168.43.118): icmp_seq=1 ttl=64 time=0.015 ms
64 bytes from www.jyw1.com (192.168.43.118): icmp_seq=2 ttl=64 time=0.020 ms
^C
--- bbs.jyw2.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1311ms
rtt min/avg/max/mdev = 0.015/0.017/0.020/0.004 ms
[root@lamp01 conf]# curl www.jyw1.com
www.jyw1.com
[root@lamp01 conf]# curl bbs.jyw2.com
bbs.jyw2.com
[root@lamp01 conf]# 

我是用的windows系統,配置一下host在“C:\Windows\System32\drivers\etc”下的hosts中配置一下功能變數名稱重定向

192.168.43.118 www.jyw1.com bbs.jyw2.com

 然後cmd再ping一下這個功能變數名稱是否正確指向了這個IP上

打開瀏覽器,輸入www.test.com會得到以下結果,就說明外網訪問成功

ok,通過多功能變數名稱來訪問站點,同樣也可以一個站點多個功能變數名稱。

2.基於埠的虛擬主機配置:

  此類型的虛擬主機主要應用於企業內部的網站,需要加埠號才能訪問,通過不同的埠來區分不同的虛擬主機,為企業網站安全優化,例如:企業的網站後臺,資料共用等。

 在前面配置的基於功能變數名稱的虛擬主機的基礎上只需要修改nginx.conf文件,刷新配置即可完成:

修改nginx.conf配置文件

[root@lamp01 conf]# vim nginx.conf

worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    server {
        listen       8001;
        server_name  www.jyw1.com;
        location / {
            root   html/www;
            index  index.html index.htm;
        }
    }
     server {
        listen       8002;
        server_name  bbs.jyw2.com;
        location / {
            root   html/bbs;
            index  index.html index.htm;
         }
     }
}

刷新配置,測試結果如下

[root@lamp01 conf]# /application/nginx/sbin/nginx -t
nginx: the configuration file /application/nginx-1.6.3/conf/nginx.conf syntax is ok
nginx: configuration file /application/nginx-1.6.3/conf/nginx.conf test is successful
[root@lamp01 conf]# /application/nginx/sbin/nginx -s reload
[root@lamp01 conf]# curl www.jyw1.com
curl: (7) couldn't connect to host
[root@lamp01 conf]# curl www.jyw1.com:8001
www.jyw1.com
[root@lamp01 conf]# curl bbs.jyw2.com:8002
bbs.jyw2.com
[root@lamp01 conf]# 

在windows下測試如下:

ok,既可以對應多個站點,多個埠訪問,也可以對應一個站點多個埠訪問。

3.基於IP地址虛擬主機:

  通過不同的IP區分不同的虛擬主機,此類型企業應用於比較少,通常用到不通業務流中或者負載均衡上面。

 在前面配置的基於功能變數名稱的虛擬主機的基礎上只需要修改nginx.conf文件,刷新配置即可完成:

修改nginx.conf配置文件

[root@lamp01 conf]# vim nginx.conf

worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    server {
        listen      192.168.43.118:80;
        server_name  www.jyw1.com;
        location / {
            root   html/www;
            index  index.html index.htm;
        }
    }
     server {
        listen 192.168.43.88:80;
        server_name  bbs.jyw2.com;
        location / {
            root   html/bbs;
            index  index.html index.htm;
         }
     }
}

修改完配置文件後,我們需要虛擬一塊網卡:

ip addr add  //添加

ip addr del 192.168.43.88/24  dev eth0  //刪除

臨時性網卡: ip addr add 192.168.43.88/24 label eth0:1 dev eth0  或者  ifconfig eth0:1 192.168.43.88/24 up 

[root@lamp01 conf]# ip addr add 192.168.43.88/24 label eth0:1 dev eth0  添加網卡(推薦使用ip addr)
[root@lamp01 conf]# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:0C:29:01:4D:22  
          inet addr:192.168.43.118  Bcast:192.168.43.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe01:4d22/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1100 errors:0 dropped:0 overruns:0 frame:0
          TX packets:664 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:94218 (92.0 KiB)  TX bytes:76354 (74.5 KiB)

eth0:1    Link encap:Ethernet  HWaddr 00:0C:29:01:4D:22  
          inet addr:192.168.43.88  Bcast:192.168.43.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
[root@lamp01 conf]# ip addr del 192.168.43.99/24 dev eth0   刪除網卡
[root@lamp01 conf]# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:0C:29:01:4D:22  
          inet addr:192.168.43.118  Bcast:192.168.43.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe01:4d22/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1218 errors:0 dropped:0 overruns:0 frame:0
          TX packets:724 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:103486 (101.0 KiB)  TX bytes:83366 (81.4 KiB)
[root@lamp01 conf]# 

永久性網卡:

cd /etc/sysconfig/network-scripts/    //進入到網卡配置文件的目錄

cp ifcfg-eth0 ifcfg-eth0:1               //拷貝配置文件並重命名

vim ifcfg-eth0:1                           //編輯配置文件

/etc/init.d/network restart           //重啟網路服務

圖略....

下麵我們刷新配置,查看效果:

[root@lamp01 ~]# /application/nginx/sbin/nginx -t
nginx: the configuration file /application/nginx-1.6.3/conf/nginx.conf syntax is ok
nginx: configuration file /application/nginx-1.6.3/conf/nginx.conf test is successful
[root@lamp01 ~]# /application/nginx/sbin/nginx -s reload
[root@lamp01 ~]# curl 192.168.43.88
bbs.jyw2.com
[root@lamp01 ~]# curl 192.168.43.118
www.jyw1.com
[root@lamp01 ~]# 

 在windows下測試如下:

 

ok,既可以多個IP對應一個站點,也可以對應多個站點訪問。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 效果圖:使彈出的列表框緊隨在單元格的下邊緣。 第一次,嘗試在XAML中設置Popup的定位方式:Placement="Mouse"。基本能夠定位,但當在輸入前移動滑鼠,列表框就會隨滑鼠位置顯示,偏離了預定位置。 第二次,嘗試在XAML中設置Popup的定位目標:PlacementTarget="{B ...
  • 最近,開始學習WPF,其UI設計完全顛覆了傳統的設計理念,為程式員提供了極大的自由發揮空間,讓我為之驚嘆,且為之著迷。然而,WPF在國內的熱度卻並不高,大部分貼子都是2012年以前的,出版的圖書也很少,參考的資料不多。為了避免在以後的編程中少走彎路,也防止自己遺忘,在此記錄學習過程遇到的一些問題和感 ...
  • 通過 ASP.NET Core,開發者可輕鬆配置和管理其應用的安全性。 ASP.NET Core 中包含管理身份驗證、授權、數據保護、SSL 強制、應用機密、請求防偽保護及 CORS 管理等等安全方面的處理。 通過這些安全功能,可以生成安全可靠的 ASP.NET Core 應用。而我們這一章就來說道 ...
  • asp.net core參數保護之自定義要保護的參數類型 Intro 為了實現 asp.net core 下的參數保護,擴展了asp.net core 中 DataProtection,可以自動化的保護某些敏感參數,上次推出之後有一些小伙伴反饋希望能保護 返回的參數,本文主要以 為例介紹如何註冊自定 ...
  • 藉助表達式樹感受不一樣的CRUD Intro 最近有個想法,想不寫 sql 語句,做一個類似於 ORM 的東西,自己解析表達式樹,生成要執行的 sql 語句,最後再執行 sql 語句,返回相應結果。 思路解析 常用的 sql 語句基本都有一定的模式,就是 /`DELETE Update SELECT ...
  • 寫在最前:控制台輸出中文亂碼,完全是跟win10操作系統有關,跟VS基本無關,所以網上大量的用VS下載安裝更新的解決辦法是事倍功半的(而且不一定成功),本文的方法只需幾個簡單的步驟,就能解決中文亂碼問題,簡單明快。 本文參照此網友blog:https://blog.csdn.net/C_Khalid ...
  • 一. 依賴註入概述 在軟體設計的通用原則中,SOLID是非常流行的縮略語,它由5個設計原則的首字母構成:單一原則(S)、開放封閉原則(O)、里氏替換原則(L)、介面分離原則(I)、依賴反轉原則(D)。本篇介紹依賴反轉原則以及在ASP.NET Core中的實現。 直接依賴是指:當一個類需要另一個類協作 ...
  • 一、前言 在項目開發中,日誌系統是系統的一個重要組成模塊,通過在程式中記錄運行日誌、錯誤日誌,可以讓我們對於系統的運行情況做到很好的掌控。同時,收集日誌不僅僅可以用於診斷排查錯誤,由於日誌同樣也是大量的數據,通過對這些數據進行集中分析,可以產生極大的價值。 在微服務的系統架構中,由於一個系統會被拆成 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...