kaiyun.ccm nginx(11) nginx 配置动静分离,设置默认主页,限制某个路径的资源代理全解

发布于:25-08-21 播放次数:

一,所有接口请求都反向代理,静态资源单独设置路径

1.绕过动态代理设置默认主页

通常情形下,设置好位置参数的根目录后,系统会自动将根目录下的index.html index.php等文件作为起始页面的默认文档

以网址demo.williamy.xin的8090端口为例,其完整形式为http://demo.williamy.xin:8090/,这表示访问该网络地址时,需要指定特定的主机名和端口号。

现在设置了反向桥接,键入网址将调用自己的动态服务路径为 /

 upstream demo.williamy.xin{
服务器地址为127.0.0.1端口8060,权重设置为1。
    }
    server {
        listen       8090;
服务器名称为上游demo.williamy.xin
        #charset koi8-r;
日志文件host.access.log用于记录主要访问信息,该文件通过配置项access_log被引用。
        location / {
            proxy_http_version 1.1;
通过代理服务器转发请求到地址demo.williamy.xin。
            proxy_redirect default;
            proxy_connect_timeout 1s;
            proxy_read_timeout 5s;
            proxy_send_timeout 2s;
设置代理头信息,将升级字段赋值为请求升级字段值,以实现协议升级功能
设置代理头信息,将连接字段值设定为升级
设置响应头,允许携带内容类型,包含内容类型字样
设置响应头名为访问控制允许来源,值设为星号
设置响应头,允许使用获取方法,仅限于获取请求,其他请求方式禁止
        }
位置匹配所有以 html 或htm 或 gif 或 jpg 或 jpeg 或 bmp 或 png 或 ico 或 txt 或 js 或 css 或 mp3 或 mp4 结尾的文件
        {    #index index2.html;
根目录位于数据存放区的网页演示子文件夹下静态资源目录中;
             expires      14d;
        }

那个设置存在一个细微的瑕疵kaiyun.ccm,当键入域名时,系统会直接导向http://demo.williamy.xin:8060/ 这个地址,而不是前往http://demo.williamy.xin:8090/index.html 这个页面

location正则表达式设置默认主页_nginx缓存动态页面_nginx反向代理静态资源路径配置

现在将 / 这个访问用正则表达式严格限制出来

添加

        location ~ ^/$
        {
             根目录位于数据,路径为数据网络演示静态源文件;
        }

可以云开·全站体育app登录,这样 ~意味着nginx需要运用正则表达式, ^象征正则表达式从何处起,$象征正则表达式在何处止

这个配置会让访问直接去

root /data/web/demo/static_src

寻找index.html

location正则表达式设置默认主页_nginx缓存动态页面_nginx反向代理静态资源路径配置

2.让某个文件夹下的静态资源单独访问

由于系统设定了固定路径来处理html,css,png,js等静态文件,然而动态服务中的某些功能例如专属管理后台需要使用独立的资源地址,当前我的处理办法是为这些功能开辟独立通道,并为此专门规划nginx的配置方案

location ~ /mg/+ {
            proxy_pass http://demo.williamy.xin;
        }

二,制定默认访问静态资源开yun体育app官网网页登录入口,后台接口使用某个路径访问

upstream bao.mac{
服务地址为127.0.0.1端口8080,该服务权重设置为1
    }
    server {
        listen       8081;
        server_name  localhost;
        location / {
根目录位于 /Users/bao/data/static_src 这个路径下。
           index  index.html index.htm;
       }
       location /s1 {
            proxy_pass  http://bao.mac;
        }

三,其他

location ^~ /static_js/

proxy_cache js_cache;

代理设置主机头为gao.test.com分号

通过代理服务器转发请求到 gao.test.com 的地址上,具体路径为根目录。

按照先前的设定,当所求的网址为http://servername/static_js/test.html时

该地址将转换为http://gao.test.com/test.html

而如果这么配置

location ^~ /static_js/

proxy_cache js_cache;

proxy_set_header Host gao.test.com;

通过代理服务器转发请求到高测试网站。

那么将转接到网址http://gao.test.com/static_js/test.htm

当然,我们可以用如下的rewrite来实现/的功能

location ^~ /static_js/

proxy_cache js_cache;

proxy_set_header Host gao.test.com;

将路径以 /static_js/ 开头的请求重定向到相同路径但去掉 /static_js/ 的部分,然后终止处理

proxy_pass http://gao.test.com;