1. 程式人生 > >6、高效能web架構之Apche虛擬主機配置

6、高效能web架構之Apche虛擬主機配置

構建web虛擬主機:

一、前言:

虛擬web主機指的是在同一臺伺服器中執行多個web站點,其中的每一個站點實際上並不獨立佔用整個伺服器。因此被稱為“虛擬的”web主機,通過虛擬web主機服務可以充分利用伺服器的硬體資源,從而大大降低了網站構建及執行成本。

使用httpd可以非常方便地構建虛擬機器主機伺服器,只需要執行一個httpd服務就能夠同時支撐大量的web站點。Httpd支援的虛擬主機型別包括以下三種。

  1. 基於ip地址,為每個虛擬主機使用不同的ip,且各自對應的ip地址也不相同。這種方式需要為都無權配置多個網路介面,因此應用並不是非常廣泛。
  2. 基於埠:這種方式並不適用域名、ip地址來區分不同的站點內容,而是使用了不同的tcp埠號,因此使用者在瀏覽不同的虛擬站點時需要同時指定埠號才能訪問。

二、基於域名的虛擬機器配置方法:

1、為虛擬主機配置域名解析(上幾張安裝了DNS服務,在裡面新增兩條A記錄即可):

[[email protected] ~]# cat /var/named/server.com.zone

$TTL 3600

@  SOA  server.com. admin.server.com. (

                                        2000    ; serial

                                        1D      ; refresh

                                        1H      ; retry

                                        1W      ; expire

                                        3H )    ; minimum

@               IN      NS      linux-node3.server.com.

                IN      NS      linux-node4.server.com.

linux-node3      IN      A       192.168.10.103

linux-node4      IN      A       192.168.10.104

abc             IN      A       192.168.10.104

vip             IN      A       192.168.10.66

aaa             IN      A       192.168.10.106

bbb             IN      A       192.168.10.106

2、測試兩條A記錄是否能解析:

[[email protected] ~]# cat /etc/resolv.conf

# Generated by NetworkManager

search server.com

nameserver 192.168.10.103   #指向自己指定的DNS伺服器

[[email protected] ~]#

[[email protected] ~]# nslookup aaa.server.com

Server:         192.168.10.103

Address:        192.168.10.103#53

Name:   aaa.server.com

Address: 192.168.10.106

[[email protected] ~]#

[[email protected] ~]# nslookup bbb.server.com

Server:         192.168.10.103

Address:        192.168.10.103#53

Name:   bbb.server.com

Address: 192.168.10.106

3、為虛擬主機準備網頁文件:

[[email protected] ~]# mkdir /usr/local/httpd/htdocs/aaa

[[email protected] ~]# mkdir /usr/local/httpd/htdocs/bbb

[[email protected] ~]# echo "<h1>aaa.server.com</h1>" > /usr/local/httpd/htdocs/aaa/index.html

[[email protected] ~]# echo "<h1>bbb.server.com</h1>" > /usr/local/httpd/htdocs/bbb/index.html

4、新增虛擬主機配置:

[[email protected] ~]# vi /usr/local/httpd/conf/extra/httpd-vhosts.conf   #最後面新增這些內容

<Directory "/usr/local/httpd/htdocs">

    Order allow,deny

    Allow from all

</Directory>

<VirtualHost 192.168.10.106>

    DocumentRoot "/usr/local/httpd/htdocs/aaa"

    ServerName aaa.server.com

    ErrorLog "logs/aaa.server.com-error_log"

    CustomLog "logs/aaa.server.com-access_log" common

</VirtualHost>

<VirtualHost 192.168.10.106>

    DocumentRoot "/usr/local/httpd/htdocs/bbb"

    ServerName bbb.server.com

    ErrorLog "logs/bbb.server.com-error_log"

    CustomLog "logs/bbb.server.com-access_log" common

</VirtualHost>

[[email protected] ~]# vi /usr/local/httpd/conf/httpd.conf

Include conf/extra/httpd-vhosts.conf    //去掉#號,載入此Include

5、驗證:

三、基於ip的虛擬機器配置方法:

1、這裡我要多加一個網絡卡,然後配置新網的ip為192.168.10.107:

[[email protected] ~]# cd /etc/sysconfig/network-scripts/

[[email protected] network-scripts]# cp ifcfg-eno16777736 ifcfg-ens37

[[email protected] network-scripts]# vi ifcfg-ens37

TYPE=Ethernet

BOOTPROTO=static

DEFROUTE=yes

PEERDNS=yes

PEERROUTES=yes

IPV4_FAILURE_FATAL=no

IPV6INIT=yes

IPV6_AUTOCONF=yes

IPV6_DEFROUTE=yes

IPV6_PEERDNS=yes

IPV6_PEERROUTES=yes

IPV6_FAILURE_FATAL=no

NAME=ens37

DEVICE=ens37

ONBOOT=yes

IPADDR=192.168.10.107

NETMASK=255.255.255.0

GATEWAY=192.168.10.1

[[email protected] network-scripts]# systemctl restart network

[[email protected] network-scripts]# ifconfig ens37

ens37: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500

        inet 192.168.10.107  netmask 255.255.255.0  broadcast 192.168.10.255

        inet6 fd05:fa56:9fbc::2eb  prefixlen 128  scopeid 0x0<global>

        inet6 fd05:fa56:9fbc:0:20c:29ff:fe7a:f784  prefixlen 64  scopeid 0x0<global>

        inet6 fe80::20c:29ff:fe7a:f784  prefixlen 64  scopeid 0x20<link>

        ether 00:0c:29:7a:f7:84  txqueuelen 1000  (Ethernet)

        RX packets 86  bytes 8468 (8.2 KiB)

        RX errors 0  dropped 0  overruns 0  frame 0

        TX packets 91  bytes 8234 (8.0 KiB)

        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

2、新增虛擬主機配置:

[[email protected] ~]# vi /usr/local/httpd/conf/extra/httpd-vhosts.conf

<Directory "/usr/local/httpd/htdocs">

    Order allow,deny

    Allow from all

</Directory>

<VirtualHost 192.168.10.106>

    DocumentRoot "/usr/local/httpd/htdocs/aaa"

    ServerName aaa.server.com

    ErrorLog "logs/aaa.server.com-error_log"

    CustomLog "logs/aaa.server.com-access_log" common

</VirtualHost>

<VirtualHost 192.168.10.107>

    DocumentRoot "/usr/local/httpd/htdocs/bbb"

    ServerName bbb.server.com

    ErrorLog "logs/bbb.server.com-error_log"

    CustomLog "logs/bbb.server.com-access_log" common

</VirtualHost>

[[email protected] ~]# vi /usr/local/httpd/conf/httpd.conf

Include conf/extra/httpd-vhosts.conf    //記得去掉#號,載入此Include

[[email protected] ~]# /usr/local/httpd/bin/apachectl -k restart

3、測試:

四、基於埠的虛擬機器配置方法:

1、修改虛擬主機的埠配置:

[[email protected] ~]# vi /usr/local/httpd/conf/extra/httpd-vhosts.conf

<Directory "/usr/local/httpd/htdocs">

    Order allow,deny

    Allow from all

</Directory>

<VirtualHost 192.168.10.106:80>

    DocumentRoot "/usr/local/httpd/htdocs/aaa"

    ServerName aaa.server.com

    ErrorLog "logs/aaa.server.com-error_log"

    CustomLog "logs/aaa.server.com-access_log" common

</VirtualHost>

<VirtualHost 192.168.10.106:888>

    DocumentRoot "/usr/local/httpd/htdocs/aaa"

    ServerName aaa.server.com

    ErrorLog "logs/aaa.server.com-error_log"

    CustomLog "logs/aaa.server.com-access_log" common

</VirtualHost>

[[email protected] ~]# vi /usr/local/httpd/conf/httpd.conf

Include conf/extra/httpd-vhosts.conf    //記得去掉#號,載入此Include

Listen 80

Listen 888

[[email protected] ~]# /usr/local/httpd/bin/apachectl -k restart

[[email protected] ~]# netstat -tunlp | grep httpd

tcp6       0      0 :::80                   :::*                    LISTEN      3117/httpd          

tcp6       0      0 :::888                  :::*                    LISTEN      3117/httpd

測試:

虛擬主機配置完啦!下面我們繼續學習其它web東東,是不是很簡單容易掌握。

相關推薦

6高效能web架構Apche虛擬主機配置

構建web虛擬主機: 一、前言: 虛擬web主機指的是在同一臺伺服器中執行多個web站點,其中的每一個站點實際上並不獨立佔用整個伺服器。因此被稱為“虛擬的”web主機,通過虛擬web主機服務可以充分利用伺服器的硬體資源,從而大大降低了網站構建及執行成本。 使用htt

7高效能web架構Apche使用虛擬主機實現反向代理

Apache反向代理: 前言介紹:    反向代理(Reverse Proxy)方式是指以代理伺服器來接受internet上的連線請求,然後將請求轉發給內部網路上的伺服器,並將從伺服器上得到的結果返回給internet上請求連線的客戶端,此時代理伺服器對外就表現為一個

2高效能web架構DNS負載均衡(LVS-DR+keepalived實現DNS和web輪詢)

LVS-DR+keepalived+DNS實現DNS高可用性: 一、介紹: 結合上一章的DNS主從複製,按現在大多數公司的需求是滿足不了的。DNS配置雖然簡單易用,但是它在網路中起到了主導作用。 如果客戶端設定的這臺首選DNS伺服器剛好宕機,即使客戶端還設定了備用DNS

13高效能web架構用Codis實現Redis分散式叢集

通過codis實現redis叢集 Codis 是一個分散式 Redis 解決方案, 對於上層的應用來說, 連線到 Codis Proxy 和連線原生的 Redis Server 沒有明顯的區別 (不支援的命令列表https://github.com/CodisLabs/

9高效能web架構壓力測試

使用ab進行對web伺服器壓力測試: 前言: 當我們部署完一臺web伺服器之後,想要知道的這臺伺服器的效能。就要知道他的吞吐率和響應時間分別是多少,怎麼看呢?那就需要對它進行壓力測試。 1)吞吐率/響應時間:requests/sec; 2)壓力測試:使用ab工具進行

12高效能web架構redis介紹與使用

Redis 簡介 Redis 是完全開源免費的,遵守BSD協議,是一個高效能的key-value資料庫。 Redis 與其他 key - value 快取產品有以下三個特點: Redis支援資料的持久化,可以將記憶體中的資料儲存在磁碟中,重啟的時候可以再次載入進行使用。

11高效能web架構tomcat安全管理規範

Tomcat的常用安全管理規範: 如何修改tomcat的預設路徑: 1、主配置檔案是server.xml ,如何修改tomcat預設訪問路徑: a、建立jsp目錄和index.jsp頁面: [[email protected] ~]# mkdir

高效能web 架構redis 快取叢集

redis 叢集 介紹 redis是一個key-value記憶體資料庫。它支援儲存的value型別包括字串、list(連結串列)、set(集合)、有序集合和hash(雜湊型別)。這些資料型別都支援push/pop、add/remove, redis支援各種不同方式的排序

高效能web 架構 mysql 讀寫分離

高效能web架構主要保證程式的高可用性和高併發性. 高可用就是 保證程式在99.99%的情況下可以使用,不會因為單機節點故障整體崩潰.  高併發說到底也是為了高可用服務.保證在大量併發的時候服務不會宕機. 高效能web架構主要體現在以下方面 資料庫讀寫分離,因為大

6OSI參考模型“傳輸層”

TCP UDP 目錄 TCP UDP 1、TCP 1.1、概述 TCP提供一種面向連接的、可靠的字節流服務 字節流服務(bytestreamservice):TCP不在字節流中插入記錄標識符 TCP對字節流的內容不作任何解釋。TCP不知道傳輸的數據字節流是二進制數據,還是ASCII字符、EBCD

python多執行緒————6執行緒同步Semaphore

控制程式碼進入執行緒的數量,控制併發數量,可以使用訊號量Semaphore。 1、定義訊號量sem  =  threading.Semaphore(3)  #3為併發數量 2、消耗訊號量 sem.acquire() 3、釋放訊號量 sem.release()

LNMP架構虛擬主機配置使用者認證及域名重定向

11月26日任務 12.6 Nginx安裝 https://my.oschina.net/u/3964535/blog/2933878  12.7 預設虛擬主機 12.8 Nginx使用者認證 12.9 Nginx域名重定向   配置nginx虛擬主機

6CentOS7 安裝Docker擴充套件(三個技巧,將Docker映象體積減小90%)

三個技巧,將Docker映象體積減小90% 在構建Docker容器時,應該儘量想辦法獲得體積更小的映象,因為傳輸和部署體積較小的映象速度更快。 但RUN語句總是會建立一個新層,而且在生成映象之前還需要使用很多中間檔案,在這種情況下,該如何獲得體積更小的映象呢? 你可能

企業架構研究總結(6)——聯邦企業架構FEAF的出現和構成(上)

      美國聯邦政府可以說是企業架構應用的先行者和最大倡導者。通過企業架構的發展歷史我們可以看出,早在上世紀九十年代以來,美國軍方就對這種全域性性的資訊共享的理論開始了研究,並開發出符合其特色企業架構框架理論(DoDAF)。除此之外,在Zachman框架引入到美國聯邦政府

高效能網站架構快取篇—Redis叢集搭建

         看過高效能網站架構之快取篇--Redis安裝配置和高效能網站架構之快取篇--Redis使用配置埠轉發這兩篇文章的,相信你已經對redis有一定的瞭解,並能夠安裝上,進行簡單的使用了,但是在咱們的實際應用中,使用redis肯定不會使用單機版,不光是redis

淺談web架構演化過程

前言 最近在開發過程中,遇到很多緩解配置的問題,工程很難啟動,也不知道為什麼環境需要這麼多配置的意義。就在這個時候,一本好書《大型網站技術:核心原理與案例分析》給我帶來全新視角,必須強勢安利一把。連結地址 本文先淺談書中所提到的web架構演化過程。如果經歷的專案足夠多

淺談web架構架構設計(總結)

架構模式 先來說說模式: 每一個模式描述了一個在我們周圍不斷重複發生的問題及該問題解決方案的核心。這樣,你就能一次又一次地用該方案而不必做重複工作 。 先來說說常見的網站架構模式。這裡沒有涉及具體實現過程,只是簡單介紹其思想和原理,方便日後有用到再深入瞭解。 分層 分層是企業應用系統中最常見的一種

6學什麼技術javascript學習指南 資料型別轉換

console.log("------------一個簡單的例子--------------------"); var str = "123"; var res = Number( str );//不會修改str ,只會把轉換的結果返回出來,儲存在res中 console.l

Web架構Nginx基礎配置

[TOC] # 1、Nginx 虛擬主機 所謂的虛擬主機,在Web服務裡就是一個獨立的網站站點,這個站點對應獨立的域名(也可能是IP或埠),具有獨立的程式及資源目錄,可以獨立地對外提供服務供使用者訪問。 在Nginx中則使用一個server{} 標籤來標識一個虛擬主機,一個Web服務裡可以有多個虛擬主機標

IPApache虛擬主機配置部分學習筆記

當前 環境變量 httpd 無法 php nbsp 轉換 配置系統 語法 IP地址 IP地址就是計算機的一個“編號”,該編號是唯一的。相當於我們的身份證號碼一樣。 IP地址格式:a.b.c.d ,每一段的取值範圍0-255。 本機的IP地址:127.0.0.1