ubuntu

Ubuntu Apache如何实现动静分离

小樊
52
2025-08-08 00:07:00
栏目: 智能运维

在Ubuntu上使用Apache实现动静分离,通常涉及以下几个步骤:

1. 安装Apache服务器

首先,确保你的Ubuntu系统上已经安装了Apache。如果没有安装,可以使用以下命令进行安装:

sudo apt update
sudo apt install apache2

2. 配置虚拟主机

为了实现动静分离,你需要配置多个虚拟主机,一个用于处理静态文件,另一个用于处理动态请求。

静态文件虚拟主机

创建一个新的配置文件来处理静态文件:

sudo nano /etc/apache2/sites-available/static-site.conf

在文件中添加以下内容:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/static

    <Directory /var/www/static>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/static-site_error.log
    CustomLog ${APACHE_LOG_DIR}/static-site_access.log combined
</VirtualHost>

保存并关闭文件。

动态请求虚拟主机

创建另一个配置文件来处理动态请求:

sudo nano /etc/apache2/sites-available/dynamic-site.conf

在文件中添加以下内容:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/dynamic

    <Directory /var/www/dynamic>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>

    ProxyPass / http://localhost:8080/
    ProxyPassReverse / http://localhost:8080/

    ErrorLog ${APACHE_LOG_DIR}/dynamic-site_error.log
    CustomLog ${APACHE_LOG_DIR}/dynamic-site_access.log combined
</VirtualHost>

保存并关闭文件。

3. 启用虚拟主机

启用这两个虚拟主机配置:

sudo a2ensite static-site.conf
sudo a2ensite dynamic-site.conf

4. 配置重写规则(可选)

如果你希望动态请求通过特定的URL路径进行处理,可以使用Apache的重写模块。编辑动态站点的配置文件:

sudo nano /etc/apache2/sites-available/dynamic-site.conf

添加以下内容:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/dynamic

    <Directory /var/www/dynamic>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>

    RewriteEngine On
    RewriteCond %{REQUEST_URI} ^/api/
    RewriteRule ^api/(.*)$ http://localhost:8080/$1 [P,L]

    ErrorLog ${APACHE_LOG_DIR}/dynamic-site_error.log
    CustomLog ${APACHE_LOG_DIR}/dynamic-site_access.log combined
</VirtualHost>

保存并关闭文件。

5. 重启Apache服务器

最后,重启Apache服务器以应用所有更改:

sudo systemctl restart apache2

6. 测试配置

确保静态文件和动态请求都能正确处理。你可以将静态文件放在/var/www/static目录下,将动态应用放在/var/www/dynamic目录下,并通过浏览器访问相应的URL进行测试。

通过以上步骤,你就可以在Ubuntu上使用Apache实现动静分离了。

0
看了该问题的人还看了