插件窝 干货文章 如何配置和管理Linux上的Web服务器

如何配置和管理Linux上的Web服务器

sudo Nginx 配置 Apache 144    来源:    2025-04-10

Linux Web服务器配置与管理指南

1. 选择Web服务器软件

常见的Linux Web服务器软件: - Apache HTTP Server - 最流行的开源Web服务器 - Nginx - 高性能、轻量级的Web服务器和反向代理 - Lighttpd - 轻量级Web服务器,适合资源受限环境

2. 安装Web服务器

Apache安装

# Debian/Ubuntu
sudo apt update
sudo apt install apache2

# RHEL/CentOS
sudo yum install httpd
sudo systemctl start httpd
sudo systemctl enable httpd

Nginx安装

# Debian/Ubuntu
sudo apt install nginx

# RHEL/CentOS
sudo yum install epel-release
sudo yum install nginx
sudo systemctl start nginx
sudo systemctl enable nginx

3. 基本配置

Apache配置

主配置文件通常位于: - /etc/apache2/apache2.conf (Debian/Ubuntu) - /etc/httpd/conf/httpd.conf (RHEL/CentOS)

常用命令:

# 检查配置语法
sudo apachectl configtest

# 重新加载配置
sudo systemctl reload apache2

Nginx配置

主配置文件通常位于: - /etc/nginx/nginx.conf

常用命令:

# 检查配置语法
sudo nginx -t

# 重新加载配置
sudo systemctl reload nginx

4. 虚拟主机配置

Apache虚拟主机

<VirtualHost *:80>
    ServerAdmin webmaster@example.com
    ServerName example.com
    DocumentRoot /var/www/example.com/public_html
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

启用站点:

sudo a2ensite example.com.conf
sudo systemctl reload apache2

Nginx虚拟主机

server {
    listen 80;
    server_name example.com;
    root /var/www/example.com/public_html;

    access_log /var/log/nginx/example.com.access.log;
    error_log /var/log/nginx/example.com.error.log;

    location / {
        try_files $uri $uri/ =404;
    }
}

启用站点:

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx

5. 安全配置

基本安全措施

  1. 保持系统和软件更新
  2. 配置防火墙 bash sudo ufw allow 80/tcp sudo ufw allow 443/tcp sudo ufw enable
  3. 禁用不必要的模块
  4. 使用SSL/TLS加密
  5. 限制目录权限 bash sudo chown -R www-data:www-data /var/www/example.com sudo chmod -R 755 /var/www/example.com

安装Let's Encrypt SSL证书

sudo apt install certbot python3-certbot-nginx  # 对于Nginx
sudo apt install certbot python3-certbot-apache # 对于Apache

# 获取证书
sudo certbot --nginx -d example.com -d www.example.com
# 或对于Apache
sudo certbot --apache -d example.com -d www.example.com

# 设置自动续订
sudo certbot renew --dry-run

6. 性能优化

Apache优化

  • 调整KeepAlive设置
  • 优化MPM模块配置
  • 启用压缩模块 apache <IfModule mod_deflate.c> AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/javascript </IfModule>

Nginx优化

  • 调整worker进程数
  • 启用Gzip压缩 nginx gzip on; gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
  • 配置缓存头
  • 启用HTTP/2

7. 监控与日志管理

查看访问日志

# Apache
tail -f /var/log/apache2/access.log

# Nginx
tail -f /var/log/nginx/access.log

使用日志分析工具

  • GoAccess: sudo apt install goaccess
  • AWStats
  • Webalizer

8. 常见问题排查

  1. 服务器无法启动

    • 检查端口是否被占用: sudo netstat -tulnp | grep :80
    • 检查配置语法: sudo apachectl configtestsudo nginx -t
  2. 403禁止访问错误

    • 检查文件和目录权限
    • 检查SELinux状态(如果适用)
  3. 500内部服务器错误

    • 检查应用程序错误日志
    • 检查PHP/其他后端服务是否运行
  4. 502 Bad Gateway错误

    • 检查后端服务(如PHP-FPM)是否运行
    • 检查代理设置

通过以上步骤,您应该能够成功配置和管理Linux上的Web服务器。根据您的具体需求,可能需要进一步调整配置以获得最佳性能和安全性。