在Debian上使用Nginx实现动静分离,主要涉及配置Nginx以区分处理静态文件和动态请求。以下是详细的步骤:
首先,确保你已经安装了Nginx。如果没有安装,可以使用以下命令进行安装:
sudo apt update
sudo apt install nginx
编辑Nginx的配置文件,通常位于 /etc/nginx/nginx.conf 或 /etc/nginx/sites-available/default。这里我们以 default 文件为例。
sudo nano /etc/nginx/sites-available/default
在 server 块中,添加或修改以下配置:
server {
listen 80;
server_name example.com; # 替换为你的域名或IP地址
# 静态文件配置
location /static/ {
alias /var/www/static/; # 替换为你的静态文件目录
expires 30d;
add_header Cache-Control "public";
}
# 动态请求配置
location / {
proxy_pass http://127.0.0.1:8000; # 替换为你的动态应用地址和端口
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
确保你的静态文件目录存在,并且有适当的权限:
sudo mkdir -p /var/www/static
sudo chown -R www-data:www-data /var/www/static
保存并关闭配置文件后,重启Nginx以应用更改:
sudo systemctl restart nginx
打开浏览器,访问你的域名或IP地址,确保静态文件能够正确加载,动态请求能够正确转发到后端应用。
假设你的项目目录结构如下:
/var/www/
├── static/
│ ├── css/
│ ├── js/
│ └── images/
└── dynamic_app/
├── app.py
└── requirements.txt
alias 指向正确的静态文件目录。proxy_pass 指向正确的动态应用地址和端口。www-data)有权限访问静态文件目录。通过以上步骤,你就可以在Debian上使用Nginx实现动静分离了。