在 Nginx 上结合本地静态文件夹和代理传递

在 Nginx 上结合本地静态文件夹和代理传递

我正在尝试将 Nginx 服务器 (Centos 7) 设置为运行 Apache 的实时服务器的前端代理服务器。 (当它工作时,我会将代理服务器设为实时服务器)。

我基本上已经按原样运行了,但我想尝试通过让 Nginx 从两个本地文件夹提供静态文件来加快速度。我创建了 /root 和 /cms 文件夹的副本(cms 是 Apache 服务器上的别名文件夹)。

以下是我的非工作配置(为简单起见,没有服务器部分)

location / {
         proxy_pass https://www.thedomain.com:443;
         proxy_http_version 1.1;
         proxy_set_header Upgrade $http_upgrade;
         proxy_set_header Connection 'upgrade';
         proxy_set_header Host $host;
         proxy_cache_bypass $http_upgrade;
}

location ~* .(js|css|jpg|jpeg|gif|png|svg|ico|pdf|html|htm)$ {
        root /var/www/html/thedomain/www/ ;
    }


location ~* /cms/.(js|css|jpg|jpeg|gif|png|svg|ico|pdf|html|htm)$ {
    root /var/www/html/thedomain/cms/ ;
}

我尝试了不同的方法来处理位置块,但似乎没有任何效果。

location ~* .(js|css|jpg|jpeg|gif|png|svg|ico|pdf|html|htm)$ {
    root /var/www/html/thedomain/www/ ;
    try_files $uri @cms ;

}

location @cms {
    root /var/www/html/thedomain/cms/ ;

}

我不知道这是否清楚,但我想做的是从“/var/www/html/thedomain/www”提供 js、css、jpg 等,但 /cms/ 文件夹中的静态文件除外,例如“/cms/mysite.css”。提供 CMS 文件夹静态内容并不重要,因为 cms 文件夹中的用户是站点管理员。

目前,Nginx 对位于 /cms 文件夹中的任何静态文件都返回 404。

我对 Nginx 还很陌生,所以很感激任何帮助。

相关内容