亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

 更新時(shí)間: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 簡(jiǎn)介

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

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

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

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

1. 系統(tǒng)要求

以 CentOS 7/RHEL 7 為例進(jìn)行說(shuō)明,建議系統(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)境,確保干凈無(wú)沖突。在安裝前先更新系統(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
# 臨時(shí)關(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
# 啟動(dòng)服務(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è)計(jì),主要文件和目錄結(jié)構(gòu)如下:

/etc/httpd/
├── conf/                  # 主配置目錄
│   ├── httpd.conf         # 主配置文件
│   └── magic              # 文件類型識(shí)別
├── conf.d/                # 附加配置文件目錄
│   ├── autoindex.conf     # 目錄列表配置
│   ├── userdir.conf       # 用戶目錄配置
│   └── welcome.conf       # 默認(rèn)歡迎頁(yè)
├── 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ǔ)配置詳解

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

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

常見配置項(xiàng)說(shuō)明:

# 全局配置
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"     # 錯(cuò)誤日志路徑
# 目錄權(quán)限設(shè)置
<Directory "/var/www/html">
    Options Indexes FollowSymLinks  # 允許目錄列表和符號(hào)鏈接
    AllowOverride None        # 是否允許.htaccess覆蓋
    Require all granted       # 訪問(wèn)控制
</Directory>
# 日志格式定義
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent

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

虛擬主機(jī)允許在單臺(tái)服務(wù)器上運(yùn)行多個(gè)網(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

示例配置:

# 第一個(gè)虛擬主機(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>
# 第二個(gè)虛擬主機(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)閉頁(yè)腳簽名
TraceEnable Off         # 禁用TRACE方法

2.限制敏感目錄訪問(wèn):

<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
# 生成自簽名證書(測(cè)試用)
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ū)動(dòng)模式(適合高并發(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>

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

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

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.檢查配置文件語(yǔ)法:

sudo httpd -t

3.重新加載配置:

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

4.訪問(wèn)測(cè)試:

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

十一、故障排除指南

1.常見問(wèn)題排查命令:

# 查看錯(cuò)誤日志
sudo tail -50 /var/log/httpd/error_log
# 查看訪問(wèn)日志
sudo tail -f /var/log/httpd/access_log
# 測(cè)試端口連通性
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問(wèn)題

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

# 臨時(shí)設(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)階配置選項(xiàng)

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報(bào)告
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  # 限制訪問(wèn)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

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

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

相關(guān)文章

  • linux下make命令實(shí)現(xiàn)輸出高亮的方法

    linux下make命令實(shí)現(xiàn)輸出高亮的方法

    Linux 下 make 命令是系統(tǒng)管理員和程序員用的最頻繁的命令之一。管理員用它通過(guò)命令行來(lái)編譯和安裝很多開源的工具,程序員用它來(lái)管理他們大型復(fù)雜的項(xiàng)目編譯問(wèn)題。這篇文章主要給大家介紹了關(guān)于linux下make命令實(shí)現(xiàn)輸出高亮的方法,需要的朋友可以參考下。
    2017-07-07
  • linux環(huán)境下卸載oracle 11g的過(guò)程

    linux環(huán)境下卸載oracle 11g的過(guò)程

    這篇文章主要介紹了linux環(huán)境下卸載oracle 11g的過(guò)程,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-07-07
  • Apache控制是否顯示站點(diǎn)目錄(推薦)

    Apache控制是否顯示站點(diǎn)目錄(推薦)

    這篇文章主要介紹了Apache控制是否顯示站點(diǎn)目錄(推薦)的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2016-11-11
  • 阿里云linux服務(wù)器安全設(shè)置(防火墻策略等)

    阿里云linux服務(wù)器安全設(shè)置(防火墻策略等)

    這篇文章主要介紹了阿里云linux服務(wù)器安全設(shè)置,主要是針對(duì)防火墻策略等一些補(bǔ)充
    2016-10-10
  • Linux多臺(tái)服務(wù)器之間免密登錄的實(shí)現(xiàn)步驟

    Linux多臺(tái)服務(wù)器之間免密登錄的實(shí)現(xiàn)步驟

    在日常的后端開發(fā)和運(yùn)維工作中,我們經(jīng)常需要頻繁登錄不同的服務(wù)器進(jìn)行部署、排查問(wèn)題或上傳文件,傳統(tǒng)的基于用戶名和密碼的登錄方式既不安全又不高效,為此,我們可以利用 SSH 公鑰認(rèn)證的方式,實(shí)現(xiàn)無(wú)密碼(免密)登錄遠(yuǎn)程服務(wù)器,下面小編給大家詳細(xì)說(shuō)說(shuō)
    2025-04-04
  • 在Linux系統(tǒng)下上傳項(xiàng)目到碼云的方法

    在Linux系統(tǒng)下上傳項(xiàng)目到碼云的方法

    今天小編就為大家分享一篇關(guān)于在Linux系統(tǒng)下上傳項(xiàng)目到碼云的方法,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2018-10-10
  • Apache實(shí)現(xiàn)禁止中文瀏覽器訪問(wèn)與301重定向的方法

    Apache實(shí)現(xiàn)禁止中文瀏覽器訪問(wèn)與301重定向的方法

    這篇文章主要介紹了Apache實(shí)現(xiàn)禁止中文瀏覽器訪問(wèn)與301重定向的方法,通過(guò)修改.htaccess的配置來(lái)實(shí)現(xiàn)非常簡(jiǎn)便,需要的朋友可以參考下
    2016-01-01
  • apache使用日志分割模塊rotatelogs分割日志詳解

    apache使用日志分割模塊rotatelogs分割日志詳解

    本文介紹了apache使用自帶的日志分割模塊rotatelogs分割日志,rotatelogs 是 Apache 2.2 中自帶的管道日志程序,具體使用方法請(qǐng)參考下文
    2014-01-01
  • 解決linux下zip文件解壓亂碼問(wèn)題

    解決linux下zip文件解壓亂碼問(wèn)題

    本篇文章主要介紹了解決linux下zip文件解壓亂碼問(wèn)題,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。
    2017-05-05
  • tomcat服務(wù)器如何配置字符集為utf-8徹底解決中文亂碼的問(wèn)題詳解

    tomcat服務(wù)器如何配置字符集為utf-8徹底解決中文亂碼的問(wèn)題詳解

    這篇文章主要給大家介紹了關(guān)于tomcat服務(wù)器如何配置字符集為utf-8徹底解決中文亂碼問(wèn)題的相關(guān)資料,文中先對(duì)字符集進(jìn)行了簡(jiǎn)單的介紹,然后給大家詳細(xì)介紹了解決的方法,需要的朋友可以參考借鑒,下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-01-01

最新評(píng)論