我在apache前面运行nginx作为反向代理服务器。 我需要从后端的前端访问上传的文件,所以要采用的方法是在nginx站点配置中使用别名,但后端的静态文件应该由nginx直接处理。我是nginx的新手,所以这里是处理静态文件的部分配置。我还指定了别名(/ images)但它不起作用,因为它被第二个条件覆盖。 如何组合这两个条件,以便nginx处理来自root(后端应用程序)的静态文件和从前端应用程序上传的文件。 在apache配置中,我为这个问题包含了一个别名,它可以工作但前面没有nginx。
这是我的部分nginx配置:
server {
listen 80;
root /var/www/website/backend/www;
# Add index.php to the list if you are using PHP
index index.html index.php index.htm;
server_name admin.website.com www.admin.website.com;
location / {
proxy_pass http://localhost:8080;
include /etc/nginx/proxy_params;
}
#The alias to handle uploaded files(.jpeg, .pdf) from frontend
location /images {
alias /var/www/website/frontend/www/images;
}
#let nginx handle static files from root
location ~* \.(js|css|jpg|jpeg|gif|png|svg|ico|pdf|html|htm)$ {
expires 30d;
}
.
.
.
}
答案 0 :(得分:1)
正则表达式location
块优先于前缀location
块(除非使用^~
修饰符)。有关详细信息,请参阅this document。
尝试:
location ^~ /images {
root /var/www/website/frontend/www;
}
请注意,在这种情况下首选root
指令(有关详细信息,请参阅this document)