最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Apache HTTP Server部署全攻略(最新整理)

 更新時間:2025年07月03日 09:43:09   作者:Sally璐璐  
本文詳細(xì)介紹了在CentOS/RHEL 7系統(tǒng)上部署httpd的完整流程,包括系統(tǒng)環(huán)境準(zhǔn)備、防火墻配置、安裝步驟、文件結(jié)構(gòu)解析、基礎(chǔ)與虛擬主機(jī)配置、安全加固措施、SSL/TLS加密設(shè)置、性能優(yōu)化方案以及故障排查方法,感興趣的朋友跟隨小編一起看看吧

httpd 簡介

httpd(Apache HTTP Server)是一款歷史悠久的開源 Web 服務(wù)器軟件,由 Apache 軟件基金會開發(fā)和維護(hù)。自 1995 年首次發(fā)布以來,Apache 一直是 Web 服務(wù)器領(lǐng)域的領(lǐng)導(dǎo)者,以其穩(wěn)定性、安全性和靈活性著稱。根據(jù) W3Techs 的最新統(tǒng)計,httpd 支持著全球超過 40%的網(wǎng)站運(yùn)行,特別是在企業(yè)級應(yīng)用中占據(jù)重要地位。

httpd 的主要特點(diǎn)包括:

  • 模塊化架構(gòu):通過動態(tài)加載模塊擴(kuò)展功能
  • 支持多種編程語言:如 PHP、Python、Perl 等
  • 豐富的認(rèn)證機(jī)制:包括基本認(rèn)證、摘要認(rèn)證等
  • 強(qiáng)大的 URL 重寫功能:通過 mod_rewrite 模塊實(shí)現(xiàn)
  • 虛擬主機(jī)支持:可在一臺服務(wù)器上托管多個網(wǎng)站

一、環(huán)境準(zhǔn)備

1. 系統(tǒng)要求

以 CentOS 7/RHEL 7 為例進(jìn)行說明,建議系統(tǒng)滿足以下最低配置:

  • CPU:1 核以上
  • 內(nèi)存:1GB 以上
  • 磁盤空間:10GB 以上
  • 網(wǎng)絡(luò):穩(wěn)定的互聯(lián)網(wǎng)連接

2. 系統(tǒng)檢查

在開始安裝前,建議先檢查系統(tǒng)狀態(tài):

# 檢查系統(tǒng)版本
cat /etc/redhat-release
# 檢查內(nèi)核版本
uname -r
# 檢查磁盤空間
df -h
# 檢查內(nèi)存
free -m

3. 更新系統(tǒng)

建議使用新安裝的系統(tǒng)環(huán)境,確保干凈無沖突。在安裝前先更新系統(tǒng):

# 更新系統(tǒng)軟件包
sudo yum update -y
# 安裝常用工具
sudo yum install -y wget vim net-tools

4. 防火墻配置

確保防火墻允許 HTTP(80) 和 HTTPS(443) 端口:

# 檢查防火墻狀態(tài)
sudo systemctl status firewalld
# 開放端口
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload

5. SELinux 配置

如果系統(tǒng)啟用了 SELinux,需要進(jìn)行適當(dāng)配置:

# 檢查 SELinux 狀態(tài)
getenforce
# 臨時關(guān)閉(如需)
sudo setenforce 0
# 永久關(guān)閉(如需)
sudo sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

二、安裝 httpd

# 安裝httpd主程序
sudo yum install -y httpd
# 驗(yàn)證安裝版本
httpd -v
# 啟動服務(wù)并設(shè)置開機(jī)自啟
sudo systemctl start httpd
sudo systemctl enable httpd
# 檢查服務(wù)狀態(tài)(應(yīng)顯示active/running)
sudo systemctl status httpd
# 查看監(jiān)聽端口(默認(rèn)80)
sudo netstat -tulnp | grep httpd

三、配置防火墻

現(xiàn)代 Linux 系統(tǒng)通常使用 firewalld 作為防火墻管理工具。

# 查看防火墻狀態(tài)
sudo firewall-cmd --state
# 永久開放HTTP(80)和HTTPS(443)服務(wù)
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
# 如果需要開放自定義端口(如8080)
sudo firewall-cmd --permanent --add-port=8080/tcp
# 重新加載防火墻配置
sudo firewall-cmd --reload
# 查看當(dāng)前開放的端口和服務(wù)
sudo firewall-cmd --list-all

四、配置文件結(jié)構(gòu)

httpd 采用模塊化設(shè)計,主要文件和目錄結(jié)構(gòu)如下:

/etc/httpd/
├── conf/                  # 主配置目錄
│   ├── httpd.conf         # 主配置文件
│   └── magic              # 文件類型識別
├── conf.d/                # 附加配置文件目錄
│   ├── autoindex.conf     # 目錄列表配置
│   ├── userdir.conf       # 用戶目錄配置
│   └── welcome.conf       # 默認(rèn)歡迎頁
├── conf.modules.d/        # 模塊配置文件
├── logs -> ../../var/log/httpd  # 日志目錄
├── modules/               # 模塊文件
├── run/                   # PID文件
└── state/                 # 狀態(tài)文件
/var/www/html/             # 默認(rèn)網(wǎng)站根目錄
/var/log/httpd/            # 日志目錄(access_log, error_log)

五、基礎(chǔ)配置詳解

通過編輯主配置文件進(jìn)行基本設(shè)置:

sudo vim /etc/httpd/conf/httpd.conf

常見配置項說明:

# 全局配置
ServerRoot "/etc/httpd"       # 服務(wù)器根目錄
Listen 80                     # 監(jiān)聽端口
User apache                   # 運(yùn)行用戶
Group apache                  # 運(yùn)行組
ServerAdmin webmaster@example.com # 管理員郵箱
# 主服務(wù)器配置
ServerName www.example.com:80 # 服務(wù)器域名
DocumentRoot "/var/www/html"  # 網(wǎng)站根目錄
ErrorLog "logs/error_log"     # 錯誤日志路徑
# 目錄權(quán)限設(shè)置
<Directory "/var/www/html">
    Options Indexes FollowSymLinks  # 允許目錄列表和符號鏈接
    AllowOverride None        # 是否允許.htaccess覆蓋
    Require all granted       # 訪問控制
</Directory>
# 日志格式定義
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent

六、虛擬主機(jī)配置

虛擬主機(jī)允許在單臺服務(wù)器上運(yùn)行多個網(wǎng)站。

1.創(chuàng)建網(wǎng)站目錄結(jié)構(gòu):

sudo mkdir -p /var/www/example.com/public_html
sudo mkdir -p /var/www/test.com/public_html
sudo chown -R apache:apache /var/www/example.com
sudo chown -R apache:apache /var/www/test.com

2.創(chuàng)建虛擬主機(jī)配置文件:

sudo vim /etc/httpd/conf.d/vhosts.conf

示例配置:

# 第一個虛擬主機(jī)
<VirtualHost *:80>
    ServerAdmin admin@example.com
    ServerName example.com
    ServerAlias www.example.com
    DocumentRoot /var/www/example.com/public_html
    ErrorLog /var/log/httpd/example.com-error.log
    CustomLog /var/log/httpd/example.com-access.log combined
    <Directory "/var/www/example.com/public_html">
        Options -Indexes +FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
    # 重定向非www到www
    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^example\.com [NC]
    RewriteRule ^(.*)$ http://www.example.com$1 [L,R=301]
</VirtualHost>
# 第二個虛擬主機(jī)
<VirtualHost *:80>
    ServerName test.com
    DocumentRoot /var/www/test.com/public_html
    ...
</VirtualHost>

七、安全加固配置

1.隱藏服務(wù)器信息:

# 在httpd.conf中添加
ServerTokens Prod       # 僅顯示Apache
ServerSignature Off     # 關(guān)閉頁腳簽名
TraceEnable Off         # 禁用TRACE方法

2.限制敏感目錄訪問:

<DirectoryMatch "^/.*/\.(svn|git|ht)/">
    Require all denied
</DirectoryMatch>
<Files ".ht*">
    Require all denied
</Files>

3.禁用不必要的HTTP方法:

<Location "/">
    <LimitExcept GET POST HEAD>
        Deny from all
    </LimitExcept>
</Location>

八、SSL/TLS 配置(啟用 HTTPS)

1.安裝 SSL 模塊:

sudo yum install -y mod_ssl openssl

2.生成證書(生產(chǎn)環(huán)境建議使用 Let's Encrypt):

# 創(chuàng)建證書目錄
sudo mkdir /etc/httpd/ssl
sudo chmod 700 /etc/httpd/ssl
# 生成自簽名證書(測試用)
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
    -keyout /etc/httpd/ssl/server.key \
    -out /etc/httpd/ssl/server.crt \
    -subj "/C=CN/ST=Beijing/L=Beijing/O=Example Inc/CN=example.com"

3.配置 HTTPS 虛擬主機(jī):

<VirtualHost *:443>
    ServerName example.com
    DocumentRoot "/var/www/example.com/public_html"
    SSLEngine on
    SSLCertificateFile /etc/httpd/ssl/server.crt
    SSLCertificateKeyFile /etc/httpd/ssl/server.key
    # 強(qiáng)制HTTP跳轉(zhuǎn)到HTTPS
    RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
    # 啟用HSTS
    Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains; preload"
</VirtualHost>

九、性能優(yōu)化配置

1.調(diào)整 MPM 模塊(多處理模塊):

sudo vim /etc/httpd/conf.modules.d/00-mpm.conf

選擇事件驅(qū)動模式(適合高并發(fā)):

LoadModule mpm_event_module modules/mod_mpm_event.so

相關(guān)參數(shù)調(diào)整:

<IfModule mpm_event_module>
    StartServers             3
    MinSpareThreads         75
    MaxSpareThreads        250
    ThreadsPerChild         25
    MaxRequestWorkers      400
    MaxConnectionsPerChild   0
</IfModule>

2.啟用內(nèi)容壓縮:

LoadModule deflate_module modules/mod_deflate.so
<IfModule mod_deflate.c>
    AddOutputFilterByType DEFLATE text/html text/plain text/css text/javascript application/javascript
    DeflateCompressionLevel 6
    SetOutputFilter DEFLATE
</IfModule>

3.啟用緩存控制:

LoadModule expires_module modules/mod_expires.so
<IfModule mod_expires.c>
    ExpiresActive On
    ExpiresByType image/jpg "access plus 1 month"
    ExpiresByType text/css "access plus 1 week"
    ExpiresDefault "access plus 2 days"
</IfModule>

十、測試與驗(yàn)證

1.創(chuàng)建測試頁面:

sudo bash -c 'cat > /var/www/html/index.html <<EOF
<!DOCTYPE html>
<html>
<head>
    <title>Apache Test Page</title>
    <meta charset="UTF-8">
</head>
<body>
    <h1>Apache HTTP Server Works!</h1>
    <p>Server time: <?php echo date("Y-m-d H:i:s"); ?></p>
</body>
</html>
EOF'

2.檢查配置文件語法:

sudo httpd -t

3.重新加載配置:

sudo systemctl reload httpd
# 或完全重啟
sudo systemctl restart httpd

4.訪問測試:

  • 本地測試:curl http://localhost
  • 遠(yuǎn)程訪問:瀏覽器輸入服務(wù)器IP或域名

十一、故障排除指南

1.常見問題排查命令:

# 查看錯誤日志
sudo tail -50 /var/log/httpd/error_log
# 查看訪問日志
sudo tail -f /var/log/httpd/access_log
# 測試端口連通性
telnet your-server-ip 80
nc -zv your-server-ip 80
# SELinux相關(guān)檢查
sudo ausearch -m avc -ts recent  # 查看安全事件
sudo sealert -a /var/log/audit/audit.log  # 分析SELinux問題

2.SELinux 配置(生產(chǎn)環(huán)境建議保持開啟):

# 臨時設(shè)置
sudo setenforce 0   # 寬松模式
sudo setenforce 1   # 強(qiáng)制模式
# 永久設(shè)置(編輯/etc/selinux/config)
SELINUX=enforcing  # 強(qiáng)制模式
SELINUX=permissive # 僅記錄不阻止
SELINUX=disabled   # 完全禁用
# 調(diào)整文件上下文標(biāo)簽
sudo semanage fcontext -a -t httpd_sys_content_t "/var/www/html(/.*)?"
sudo restorecon -Rv /var/www/html

十二、進(jìn)階配置選項

1.URL 重寫(mod_rewrite):

LoadModule rewrite_module modules/mod_rewrite.so
<Directory "/var/www/html">
    RewriteEngine On
    # 示例1:重定向舊URL
    RewriteRule ^oldpage\.html$ newpage.html [R=301,L]
    # 示例2:隱藏.php擴(kuò)展名
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME}\.php -f
    RewriteRule ^(.*)$ $1.php [L]
</Directory>

2.反向代理配置:

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
<Location "/app/">
    ProxyPass http://localhost:8080/
    ProxyPassReverse http://localhost:8080/
</Location>

3.HTTP/2 支持(需要 httpd 2.4.17+):

sudo yum install -y mod_http2

配置示例:

LoadModule http2_module modules/mod_http2.so
Protocols h2 http/1.1
<VirtualHost *:443>
    ...
    Protocols h2 http/1.1
    H2Direct on
</VirtualHost>

4.日志分析工具集成:

# 安裝GoAccess日志分析工具
sudo yum install -y goaccess
# 生成HTML報告
goaccess /var/log/httpd/access_log -a -o /var/www/html/report.html

十三、維護(hù)與管理

1.日常維護(hù)命令:

# 檢查配置更改
sudo apachectl configtest
# 優(yōu)雅重啟(不中斷連接)
sudo apachectl graceful
# 查看已加載模塊
sudo apachectl -M
# 查看完整配置
sudo apachectl -S

2.日志輪轉(zhuǎn)配置:

sudo vim /etc/logrotate.d/httpd

示例配置:

/var/log/httpd/*log {
    daily
    missingok
    rotate 30
    compress
    delaycompress
    notifempty
    sharedscripts
    postrotate
        /bin/systemctl reload httpd > /dev/null 2>/dev/null || true
    endscript
}

3.監(jiān)控設(shè)置:

# 安裝mod_status用于服務(wù)器狀態(tài)監(jiān)控
sudo yum install -y mod_status

配置示例:

<Location "/server-status">
    SetHandler server-status
    Require ip 192.168.1.0/24  # 限制訪問IP
</Location>

十四、備份與恢復(fù)

1.重要文件備份:

# 備份配置文件
sudo tar czvf httpd_conf_backup.tar.gz /etc/httpd/
# 備份網(wǎng)站數(shù)據(jù)
sudo tar czvf web_content_backup.tar.gz /var/www/
# 備份SSL證書
sudo tar czvf ssl_certs_backup.tar.gz /etc/httpd/ssl/

2.恢復(fù)步驟:

# 停止服務(wù)
sudo systemctl stop httpd
# 恢復(fù)配置
sudo tar xzvf httpd_conf_backup.tar.gz -C /
# 恢復(fù)網(wǎng)站內(nèi)容
sudo tar xzvf web_content_backup.tar.gz -C /
# 恢復(fù)證書
sudo tar xzvf ssl_certs_backup.tar.gz -C /
# 重啟服務(wù)
sudo systemctl start httpd

通過以上完整配置,您已經(jīng)成功部署了一個功能全面、安全可靠的 Apache HTTP Server。根據(jù)實(shí)際業(yè)務(wù)需求,可以進(jìn)一步調(diào)整和優(yōu)化各項參數(shù)。

到此這篇關(guān)于Apache HTTP Server部署全攻略的文章就介紹到這了,更多相關(guān)Apache HTTP Server部署內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • linux 分區(qū),格式化,掛載的命令詳細(xì)介紹

    linux 分區(qū),格式化,掛載的命令詳細(xì)介紹

    這篇文章主要介紹了linux 分區(qū),格式化,掛載的命令詳細(xì)介紹的相關(guān)資料,這里對命令進(jìn)行了詳解并附簡單實(shí)例說明該如何實(shí)現(xiàn),需要的朋友可以參考下
    2016-11-11
  • linux下搭建scala環(huán)境并寫個簡單的scala程序

    linux下搭建scala環(huán)境并寫個簡單的scala程序

    今天小編就為大家分享一篇關(guān)于linux下搭建scala環(huán)境并寫個簡單的scala程序,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-04-04
  • linux?服務(wù)器安裝gcc8的問題記錄

    linux?服務(wù)器安裝gcc8的問題記錄

    我原本安裝了gcc13.0版本,但是版本太高了,導(dǎo)致我安裝cuda報錯gcc版本太高,所以就安裝低版本的gcc,下面通過本文給大家分享linux?服務(wù)器安裝gcc8的問題記錄,感興趣的朋友一起看看吧
    2024-07-07
  • 在Linux上自動清理Journalctl日志的全過程

    在Linux上自動清理Journalctl日志的全過程

    Journalctl 是 Linux 中用于查看系統(tǒng)日志的命令行實(shí)用程序,Linux 必須是使用 Systemd 的發(fā)行版,它是系統(tǒng)管理員必不可少的工具,但是,日志會消耗很大磁盤空間,在在本文中,我們將演示如何自動化清理 journal 日志的過程,需要的朋友可以參考下
    2025-12-12
  • 在Linux系統(tǒng)上更改默認(rèn)MySQL數(shù)據(jù)目錄的全步驟

    在Linux系統(tǒng)上更改默認(rèn)MySQL數(shù)據(jù)目錄的全步驟

    MySQL 是一個廣泛使用的開源關(guān)系數(shù)據(jù)庫管理系統(tǒng)(RDBMS),為無數(shù)的 web 應(yīng)用程序和服務(wù)提供支持,在本指南中,我們將引導(dǎo)您完成在 Linux 系統(tǒng)上更改默認(rèn) MySQL 數(shù)據(jù)目錄的過程,確保以最小的停機(jī)時間順利過渡,需要的朋友可以參考下
    2025-09-09
  • ubuntu中swap(虛擬內(nèi)存)設(shè)置方法

    ubuntu中swap(虛擬內(nèi)存)設(shè)置方法

    這篇文章主要介紹了ubuntu中swap(虛擬內(nèi)存)設(shè)置方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-06-06
  • Linux SSD磁盤的優(yōu)化配置指南

    Linux SSD磁盤的優(yōu)化配置指南

    在現(xiàn)代 Linux 系統(tǒng)中,固態(tài)硬盤(SSD)已經(jīng)成為主流存儲設(shè)備,相比傳統(tǒng)機(jī)械硬盤(HDD),SSD 具有更快的讀寫速度、更低的延遲和更高的 IOPS,本文將深入探討如何在 Linux 環(huán)境下對 SSD 進(jìn)行全面優(yōu)化,需要的朋友可以參考下
    2026-04-04
  • Linux設(shè)置虛擬內(nèi)存的教學(xué)與實(shí)戰(zhàn)教程

    Linux設(shè)置虛擬內(nèi)存的教學(xué)與實(shí)戰(zhàn)教程

    這篇文章主要給大家介紹了關(guān)于Linux設(shè)置虛擬內(nèi)存教學(xué)與實(shí)戰(zhàn)的相關(guān)資料,文中通過示例代碼以及圖文介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • Ubuntu如何輕松編譯openJDK詳解

    Ubuntu如何輕松編譯openJDK詳解

    這篇文章主要給大家介紹了關(guān)于Ubuntu如何輕松編譯openJDK的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-06-06
  • Linux中高效清空日志文件的完整指南

    Linux中高效清空日志文件的完整指南

    在Linux服務(wù)器管理中,日志文件是排查問題,監(jiān)控系統(tǒng)狀態(tài)的重要工具,本文將詳細(xì)介紹在Linux中清空日志文件的多種方法,感興趣的小伙伴可以了解一下
    2025-06-06

最新評論

宁河县| 平顶山市| 恭城| 高尔夫| 通许县| 扎赉特旗| 辽阳市| 和平县| 多伦县| 茂名市| 泸州市| 普宁市| 谢通门县| 军事| 静宁县| 正宁县| 桐梓县| 墨竹工卡县| 剑川县| 高雄县| 余姚市| 乐都县| 泽普县| 芷江| 微山县| 同仁县| 武城县| 福海县| 杭锦后旗| 大姚县| 镇沅| 六安市| 徐州市| 西宁市| 克什克腾旗| 崇明县| 漳浦县| 德州市| 务川| 子洲县| 响水县|