Apache 服務器基礎配置與虛擬主機部署

Apache 服務器基礎配置與虛擬主機部署

在這里插入圖片描述

Apache 的核心定位與作用:

Apache 的核心功能是處理 HTTP 請求并提供 Web 資源,是客戶端(如瀏覽器)與 Web 服務器之間的 “中間人”:

接收客戶端通過 HTTP/HTTPS 協議發送的請求(如訪問網頁、提交表單)。
解析請求內容(如請求的文件路徑、方法類型 GET/POST)。
從服務器本地或后端服務(如 PHP、Python 應用)獲取資源。
將資源封裝為 HTTP 響應,返回給客戶端。

簡單來說,當用戶在瀏覽器輸入http://example.com時,Apache 負責將服務器上的index.html文件(或動態生成的內容)發送到用戶的瀏覽器中。

1. 安裝與啟動服務

(1)安裝 Apache

通過 YUM 源安裝 Apache(前提已配置好本地或網絡 YUM 源):

[root@zhangyiwei /]# yum -y install httpd
已加載插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
aa                                                       | 3.6 kB     00:00     
(1/2): aa/group_gz                                         | 166 kB   00:00     
(2/2): aa/primary_db                                       | 3.1 MB   00:00     
正在解決依賴關系
--> 正在檢查事務
---> 軟件包 httpd.x86_64.0.2.4.6-88.el7.centos 將被 安裝
--> 正在處理依賴關系 httpd-tools = 2.4.6-88.el7.centos,它被軟件包 httpd-2.4.6-88.el7.centos.x86_64 需要
--> 正在處理依賴關系 /etc/mime.types,它被軟件包 httpd-2.4.6-88.el7.centos.x86_64 需要
--> 正在處理依賴關系 libaprutil-1.so.0()(64bit),它被軟件包 httpd-2.4.6-88.el7.centos.x86_64 需要
--> 正在處理依賴關系 libapr-1.so.0()(64bit),它被軟件包 httpd-2.4.6-88.el7.centos.x86_64 需要
--> 正在檢查事務
---> 軟件包 apr.x86_64.0.1.4.8-3.el7_4.1 將被 安裝
---> 軟件包 apr-util.x86_64.0.1.5.2-6.el7 將被 安裝
---> 軟件包 httpd-tools.x86_64.0.2.4.6-88.el7.centos 將被 安裝
---> 軟件包 mailcap.noarch.0.2.1.41-2.el7 將被 安裝
--> 解決依賴關系完成依賴關系解決================================================================================Package            架構          版本                          源         大小
================================================================================
正在安裝:httpd              x86_64        2.4.6-88.el7.centos           aa        2.7 M
為依賴而安裝:apr                x86_64        1.4.8-3.el7_4.1               aa        103 kapr-util           x86_64        1.5.2-6.el7                   aa         92 khttpd-tools        x86_64        2.4.6-88.el7.centos           aa         90 kmailcap            noarch        2.1.41-2.el7                  aa         31 k事務概要
================================================================================
安裝  1 軟件包 (+4 依賴軟件包)總下載量:3.0 M
安裝大小:10 M
Downloading packages:
--------------------------------------------------------------------------------
總計                                               110 MB/s | 3.0 MB  00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction正在安裝    : apr-1.4.8-3.el7_4.1.x86_64                                  1/5 正在安裝    : apr-util-1.5.2-6.el7.x86_64                                 2/5 正在安裝    : httpd-tools-2.4.6-88.el7.centos.x86_64                      3/5 正在安裝    : mailcap-2.1.41-2.el7.noarch                                 4/5 正在安裝    : httpd-2.4.6-88.el7.centos.x86_64                            5/5 驗證中      : httpd-tools-2.4.6-88.el7.centos.x86_64                      1/5 驗證中      : apr-1.4.8-3.el7_4.1.x86_64                                  2/5 驗證中      : mailcap-2.1.41-2.el7.noarch                                 3/5 驗證中      : httpd-2.4.6-88.el7.centos.x86_64                            4/5 驗證中      : apr-util-1.5.2-6.el7.x86_64                                 5/5 已安裝:httpd.x86_64 0:2.4.6-88.el7.centos                                            作為依賴被安裝:apr.x86_64 0:1.4.8-3.el7_4.1                 apr-util.x86_64 0:1.5.2-6.el7    httpd-tools.x86_64 0:2.4.6-88.el7.centos     mailcap.noarch 0:2.1.41-2.el7    完畢!
(2)啟動服務并設置自啟
[root@zhangyiwei /]# systemctl restart httpd
[root@zhangyiwei /]# systemctl enable httpd
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.
(3)關閉干擾項(測試環境)

為避免防火墻和 SELinux 攔截訪問,測試環境可臨時關閉:

[root@zhangyiwei /]# systemctl stop firewalld
[root@zhangyiwei /]# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
(4)配置DNS服務器,將客戶端(192.168.100.20)的 DNS 服務器 IP指向它。

? #詳見DNS(域名系統)詳解與 BIND 服務搭建

2. 基礎站點配置

Apache 默認站點根目錄為/var/www/html/,可直接在該目錄下創建網頁文件:

# 創建默認首頁
[root@zhangyiwei /]# echo "Hello,World" > /var/www/html/index.html

#重啟服務后

[root@zhangyiwei /]# systemctl restart httpd    #重啟httpd服務

#在客戶端過服務器 IP(http://192.168.100.10)訪問,即可看到頁面內容。

在這里插入圖片描述

3. 自定義站點目錄(可選)

若需將站點目錄修改為自定義路徑(如/html/),步驟如下:

  1. 創建目錄并添加頁面

    [root@zhangyiwei /]# mkdir /html
    [root@zhangyiwei /]# echo "Hello,World" >/var/www/html/index.html
  2. 修改Apache 服務主配置文件

    [root@zhangyiwei /]# vim /etc/httpd/conf/httpd.conf 
    

#Apache 服務主配置文件核心部分

ServerRoot "/etc/httpd"                           # 定義Apache服務器的根目錄,存放配置文件和模塊
Listen 80                                         # 設置服務器監聽的端口,這里為HTTP默認端口80
Include conf.modules.d/*.conf                     # 包含指定目錄下所有.conf文件,用于加載功能模塊
User apache                                       # 指定Apache進程運行的用戶,增強安全性
Group apache                                      # 指定Apache進程所屬的用戶組
DocumentRoot "/var/www/html"                      # 設置網站文件的根目錄,網頁內容默認存放在此
<Directory "/var/www">                            # 對/var/www目錄進行訪問控制配置AllowOverride None                             # 禁止使用.htaccess文件覆蓋當前目錄配置# Allow open access:Require all granted                            # 允許所有客戶端訪問該目錄下的資源Require all granted                            # 允許所有客戶端訪問該目錄下的資源
</Directory>

調整DocumentRoot和目錄權限配置:

DocumentRoot "/html"
<Directory "/html">Require all granted  # 允許所有訪問
</Directory>
  1. 重啟服務生效
[root@zhangyiwei /]# systemctl restart httpd

驗證:訪問服務器 IP查看頁面內容

在這里插入圖片描述

二、虛擬主機部署(多站點方案)

虛擬主機允許在同一服務器通過不同方式區分多個站點,常見的三種部署方式如下:

方式一:相同 IP、不同端口

(1)準備虛擬主機配置文件

Apache 提供虛擬主機模板,復制到配置目錄:

[root@zhangyiwei /]# cp /usr/share/doc/httpd-2.4.6/httpd-vhosts.conf /etc/httpd/conf.d/#可以用find -name "*vhosts*".conf命令查找虛擬主機模板
(2)創建多站點目錄及頁面
# 創建兩個站點目錄
[root@zhangyiwei /]# mkdir -p /var/www/zhangsan /var/www/lisi# 添加測試頁面
[root@zhangyiwei /]# echo "zhangsan" > /var/www/zhangsan/index.html
[root@zhangyiwei /]# echo "lisi" > /var/www/lisi/index.html
(3)配置虛擬主機(端口區分)
[root@zhangyiwei /]# vim /etc/httpd/conf.d/httpd-vhosts.conf

添加以下配置():

# 第一個站點:IP+80端口(zhangsan)
<VirtualHost 192.168.100.10:80>DocumentRoot "/var/www/baidu"
</VirtualHost># 第二個站點:IP+8080端口(lisi,需聲明監聽端口)
Listen 8080
<VirtualHost 192.168.100.10:8080>DocumentRoot "/var/www/taobao"
</VirtualHost>

虛擬主機配置模板

<VirtualHost *:@@Port@@>         # 定義虛擬主機,監聽所有IP的@@Port@@端口(通常為80或443)ServerAdmin webmaster@dummy-host2.example.com   # 網站管理員的郵箱地址,用于接收錯誤通知DocumentRoot "@@ServerRoot@@/docs/dummy-host2.example.com"  # 該虛擬主機的網頁文件存放路徑ServerName dummy-host2.example.com   # 綁定的域名,客戶端通過此域名訪問該虛擬主機ErrorLog "/var/log/httpd/dummy-host2.example.com-error_log"  # 錯誤日志文件路徑CustomLog "/var/log/httpd/dummy-host2.example.com-access_log" common  # 訪問日志文件路徑,使用common格式記錄
</VirtualHost>
(4)重啟服務并開放端口
[root@zhangyiwei /]# systemctl restart httpd

#開放80和8080端口(生產環境)

firewall-cmd --add-port=80/tcp --permanent
firewall-cmd --add-port=8080/tcp --permanent
firewall-cmd --reload
(5)訪問測試
  • 通過http://192.168.100.10訪問 zhangsan 站點

  • 在這里插入圖片描述

  • 通過http://192.168.100.10:8080訪問 lisi 站點
    在這里插入圖片描述

方式二:不同 IP、相同端口(80 端口)

(1)為服務器配置多 IP

在網卡配置文件中添加第二個 IP(以ens33為例):

[root@zhangyiwei /]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
# 添加第二個IP,寫入這兩行
IPADDR1=192.168.100.200
PREFIX1=24
# 重啟網絡
[root@zhangyiwei /]# systemctl restart network

查看IP地址:

 inet 192.168.100.10/24 brd 192.168.100.255 scope global noprefixroute ens33valid_lft forever preferred_lft foreverinet 192.168.100.200/24 brd 192.168.100.255 scope global secondary noprefixroute ens33valid_lft forever preferred_lft forever
(2)配置虛擬主機(IP 區分)
vim /etc/httpd/conf.d/httpd-vhosts.conf

添加以下配置:

# 第一個站點:IP=192.168.100.10(baidu)
<VirtualHost 192.168.100.10:80>DocumentRoot "/var/www/baidu"
</VirtualHost># 第二個站點:IP=192.168.100.200(taobao)<VirtualHost 192.168.100.200:80>DocumentRoot "/var/www/lisi"
</VirtualHost>
(3)重啟服務
systemctl restart httpd
(4)訪問測試
  • 通過http://192.168.100.10訪問 baidu 站點

  • 在這里插入圖片描述

  • 通過http://192.168.100.200訪問 taobao 站點
    在這里插入圖片描述

方式三:相同 IP、相同端口、不同域名(FQDN)

(1)配置 DNS 解析(關鍵)

在 DNS 服務器中為兩個域名配置正向解析(指向同一 IP):

# 編輯DNS正向解析文件(本機為zhang3.com)
[root@zhangyiwei /]# vim /var/named/zhang3.com # 添加A記錄
webzhangsan IN  A       192.168.100.10
weblisi IN      A       192.168.100.10# 重啟DNS服務
systemctl restart named
(2)配置虛擬主機(域名區分)
[root@zhangyiwei /]# vim /etc/httpd/conf.d/httpd-vhosts.conf

添加以下配置(通過ServerName綁定域名):

# 第一個站點:webzhangsan.example.com
<VirtualHost 192.168.100.10:80>DocumentRoot "/var/www/baidu"ServerName webzhangsan.example.com
</VirtualHost># 第二個站點:weblisi.example.com
<VirtualHost 192.168.100.10:80>DocumentRoot "/var/www/taobao"ServerName weblisi.example.com
</VirtualHost>
(3)重啟服務
[root@zhangyiwei /]# systemctl restart httpd
(4)訪問測試
  • 客戶端需將 DNS 指向配置解析的服務器
  • 通過http://webzhangsan.example.comhttp://weblisi.example.com分別訪問兩個站點
    在這里插入圖片描述

在這里插入圖片描述

總結

Apache 虛擬主機通過端口、IP 或域名三種方式實現多站點部署,其中域名區分是最符合互聯網訪問習慣的方式(需配合 DNS 解析)。從基礎配置到虛擬主機搭建,核心步驟包括:安裝服務、配置站點目錄、定義虛擬主機規則、重啟服務并驗證訪問。實際應用中,需根據業務需求選擇合適的部署方式,并注意權限與安全配置(如防火墻、SELinux)。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/95310.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/95310.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/95310.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

線性代數 · 矩陣 | 最小多項式

注&#xff1a;本文為 “矩陣 | 最小多項式” 相關合輯。 略作重排&#xff0c;如有內容異常&#xff0c;請看原文。 最小多項式 橘子蜂蜜 于 2019-05-22 22:48:25 發布 根據哈密頓 - 凱萊&#xff08;Hamilton - Cayley&#xff09;定理&#xff0c;任給數域 PPP 上的一個 …

docter的使用、vscode(cursor)和docker的連接,詳細分析說明

目錄 一、基本命令 二、用案例來學習使用方法 &#x1f680; Pull Python 3.11 鏡像并創建命名容器 &#x1f4cb; 其他有用命令 在容器中安裝依賴 三、直接在鏡像中安裝依賴&#xff08;創建自己定制的鏡像&#xff09; 四、在 cursor 中選用容器作為編譯器 五、對于整…

如何使用AI大語言模型解決生活中的實際小事情?

我們總以為AI是遙不可及的未來科技&#xff0c;卻忽視了它早已成為生活中最實用的“隱形助手”。在信息爆炸的今天&#xff0c;我們每天被無數生活瑣事包圍&#xff1a;一封專業郵件反復修改措辭、孩子突如其來的數學難題、冰箱里僅剩的食材如何搭配、旅行行程的繁瑣規劃……這…

關于微信小程序的筆記

1.需要獲取demo素材圖片方法&#xff08;2,3&#xff09;2.使用逆向工具進行解包沒有安裝node的需要安裝一下安裝npm i -g wedecode0.8.0-beta.3獲取小程序文件存放路徑/Users/lin/Library/Containers/com.tencent.xinWeChat/Data/.wxapplet/packages/wx060ecb4f74eac0da根據具…

課堂筆記:吳恩達的AI課(AI FOR EVERYONE)-W2 AI項目工作流程

課堂筆記&#xff1a;吳恩達的AI課&#xff08;AI FOR EVERYONE&#xff09;-W2 AI項目工作流程 一、如何開始一個AI項目&#xff1f; 1、建設項目工作流程 2、選擇合適的AI項目 3、為這個項目收集數據和組織團隊二、AI項目的工作流程 &#xff08;1&#xff09;機器學習項目的…

逐際動力開源運控 tron1-rl-isaacgym 解讀與改進

文章目錄概覽基礎框架解讀線速度估計觀測結構仿真實驗點足式步態設計步態相位與接觸狀態建模步態接觸獎勵動作延遲我的改進Point-goal Locomotion觀測修改獎勵修改預訓練地形編碼器Sliced Wasserstein AutoEncoder模型訓練與結果參考材料概覽 這篇博客記錄了我參加逐際動力創學…

人工智能-python-機器學習-線性回歸與梯度下降:理論與實踐

文章目錄線性回歸與梯度下降&#xff1a;理論與實踐1. 引言2. 回歸分析2.1 什么是回歸&#xff1f;2.2 線性回歸2.3 損失函數2.4 多參數回歸3. 參數求解&#xff1a;最小二乘法3.1 最小二乘法 MSE3.2 最小二乘法的優缺點優點&#xff1a;缺點&#xff1a;4. 梯度下降4.1 梯度下…

前端,elment-plus組件:表格,分頁,對話框,表單

Element Plus 核心特性組件體系&#xff1a;表單、表格、彈窗、導航等高頻組件設計理念主題定制&#xff1a;Sass 變量覆蓋與暗黑模式無縫切換國際化支持&#xff1a;多語言動態切換的實現機制TypeScript 支持&#xff1a;完整的類型定義與開發友好性快速上手指南安裝與基礎配置…

【LeetCode】6. Z 字形變換

文章目錄6. Z 字形變換題目描述示例 1&#xff1a;示例 2&#xff1a;示例 3&#xff1a;提示&#xff1a;解題思路算法分析問題本質分析Z字形排列過程詳解Z字形排列可視化方向控制策略數學規律法詳解各種解法對比算法流程圖邊界情況處理時間復雜度分析空間復雜度分析關鍵優化點…

spring文件下載的方式

spring文件下載的方式方式一:通過ResponseEntity<Resource> 方式來下載方式二:通過ResponseEntity<StreamingResponseBody> 方式來下載方式三:通過Servlet原生下載方式四:通過ResponseEntity<byte[]> 方式來下載四種下載方式的對比1、核心特性對比2、典型場景…

寫一個redis客戶端軟件,參考 Another Redis Desktop Manager 的設計風格。

一個基于 Electron 開發的現代化 Redis 桌面客戶端&#xff0c;參考 Another Redis Desktop Manager 的設計風格。 github倉庫地址 https://github.com/henkuoai/redis-man-pc

Web3: DeFi借貸的安全基石, 了解喂價與清算機制的原理與重要性

今天我們要聊一個DeFi世界里至關重要&#xff0c;但又時常被誤解的話題&#xff1a;為什么DeFi協議需要定期更新喂價和執行清算&#xff1f; 如果大家參與過DeFi借貸&#xff0c;大家可能看到過“清算”這個詞&#xff0c;甚至會有點談虎色變。但實際上&#xff0c;清算和為其提…

「iOS」————響應者鏈與事件傳遞鏈

iOS學習響應者鏈和事件傳遞鏈傳遞鏈&#xff1a;hitTest:withEvent**pointInside:withEvent**響應鏈第一響應者和最佳響應者觸摸事件&#xff08;UITouch&#xff09;UIGestureRecognizer&#xff08;手勢識別器&#xff09;響應者鏈和事件傳遞鏈 iOS事件的主要由&#xff1a;…

修復圖像、視頻和3D場景的AI工具–Inpaint Anything

TL; DR&#xff1a;用戶可以通過單擊來選擇圖像中的任何對象。借助強大的視覺模型&#xff0c;例如SAM、LaMa和穩定擴散 (SD)&#xff0c;Inpaint Anything能夠順利地移除對象&#xff08;即Remove Anything&#xff09;。此外&#xff0c;在用戶輸入文本的提示下&#xff0c;I…

java -jar xxx.jar 提示xxx.jar中沒有主清單屬性報錯解決方案

xxx.jar 中沒有主清單屬性 &#xff08;no main manifest attribute&#xff09;解決方案 java -jar xxx.jar 提示xxx.jar中沒有主清單屬性報錯解決方案 這個錯通常出現在你用 java -jar xxx.jar 啟動&#xff0c;但 JAR 的 META-INF/MANIFEST.MF 里沒有 Main-Class 條目&#…

Myqsl建立庫表練習

目錄 一、windows中選擇一種方式安裝Mysql8.0 二、新建產品庫mydb6_product 1. 新建3張表如下&#xff1a; 1&#xff09;employees表 2&#xff09;orders表 3&#xff09;invoices表 三、新建員工庫mydb8_worker&#xff0c;添加自定義表內容并插入數據 1. 新建庫表 2. 插…

STM32 輸入捕獲,串口打印,定時器,中斷綜合運用

實驗目的 使用定時器 2 通道 2 來捕獲按鍵 2 按下時間&#xff0c;并通過串口打印。 計一個數的時間&#xff1a;1us&#xff0c;PSC71&#xff0c;ARR65535 下降沿捕獲、輸入通道 2 映射在 TI2 上、不分頻、不濾波輸入捕獲原理定時器輸入捕獲實驗配置步驟測量按鍵按下時長思路…

Nacos-2--Nacos1.x版本的通信原理

在Nacos 1.x版本中&#xff0c;客戶端長輪詢&#xff08;Long Polling&#xff09;和服務端UDP主動推送是兩種不同的機制&#xff0c;分別用于配置管理和服務發現場景。它們的核心目標都是實現動態更新的實時感知&#xff0c;但實現方式、數據內容和適用場景完全不同。 1、長輪…

機器學習——09 聚類算法

1 聚類算法聚類算法&#xff1a; 是一種無監督學習算法&#xff0c;它不需要預先知道數據的類別信息&#xff0c;而是根據樣本之間的相似性&#xff0c;將樣本劃分到不同的類別中&#xff1b;不同的相似度計算方法&#xff0c;會得到不同的聚類結果&#xff0c;常用的相似度計算…

生成式AI應用生態的爆發與專業化演進:從零和博弈到正和共贏

2025年,生成式AI產業規模已突破7000億元,全球生成式AI市場規模預計在2028年達到2842億美元(IDC數據)。在這場技術革命中,AI基礎模型的分化已證明:差異化競爭而非同質化替代,才是推動產業發展的核心邏輯。如今,這一規律正從基礎模型層向應用生成平臺層蔓延——Lovable、…