Linux之中Nginx 多location配置

目录

1、使用场景

2、如何实现多个Location配置

3、Location配置(动/静态资源)

4、总结

5、参考文章


1、使用场景

        因为有多个项目的前端静态文件(Vue发布文件),或者前端动静分离文件等。在同一台服务器上,通过不同的上下文访问路径,跳转到不同项目的前端静态页面或者静态文件内容。

2、如何实现多个Location配置

  • 在配置文件中增加多个location,每个location对应一个项目

         比如使用80端口,location / 系统门户; location /onlineTrain 在线企业培训系统

  •  配置多个站点
   location / {
         root   /data/html/;
         index  index.html index.html;
    }
    location /onlineTrain {
         #root   /data/onlineTrain/;#错误写法
         alias /data/onlineTrain/;
         index  index.html index.html;
    }

注意事项(alias与root的区别):

  • alias与root指定的url意义不同

         root和alias都可以定义在location模块中,都是用来指定请求资源的真实路径。

        root真实路径是root指定的值加上location指定的值示例如下:

location /webpage {
    root /data/www;
}

       以上配置发送的请求地址说明:

        请求http://ip:port/webpage/head.png时,那么在服务器里面对应的真正的资源是:/data/www/webpage/head.png 注意此处

  • alias真实路径是alias指定的值,不包含location指定的值了

        而 alias 正如其名,alias指定的路径是location的别名,不管location的值怎么写,资源的真实路径都是 alias 指定的路径,示例如下:

location /webpage {
    alias /data/www/; #alias末尾必须要用/结束
}

请求http://ip:port/webpage/head.png时,那么在服务器里面对应的真正的资源是:/data/www/head.png 此处相对于root少了webpage 就是不需要 location=webpage 内容来定位资源

  • 区别总结3点
  1. 在一个location中,alias可以存在多个,但是root只能有一个
  2. alias只能存在与location中,但是root可以用在server、http和location中
  3. alias后面必须要“/”结束,否则会找不到文件,而root的“/”可有可无

3、Location配置(动/静态资源)

user  nginx;
worker_processes  1;
 
error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;
 
 
events {
    worker_connections  1024;
}
 
http {
     #设定mime类型,类型由mime.type文件定义
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;
    #设定日志格式
    access_log    /var/log/nginx/access.log;
 
    #设定负载均衡的服务器列表
    upstream loadBalanceServer {
        #weigth参数表示权值,权值越高被分配到的几率越大
        server 127.0.0.1:8081   weight=5;
        server 127.0.0.1:8888   weight=5; # 因为没有8888端口所以nginx会自动过滤掉这个服务
    }
 
   #HTTP服务器
   server {
        #侦听80端口
        listen       80;
 
        #定义使用www.xx.com访问
        server_name  www.mywebpage.com; # 替换成你自己的地址
 
        #对所有请求进行负载均衡请求
        location / {
            root        /root;                 #定义服务器的默认网站根目录位置
            index       index.html index.htm;  #定义首页索引文件的名称
            proxy_pass  http://loadBalanceServer ;#请求转向load_balance_server 定义的服务器列表
 
            #以下是一些反向代理的配置(可选择性配置)
            #proxy_redirect off;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            #后端的Web服务器可以通过X-Forwarded-For获取用户真实IP
            proxy_set_header X-Forwarded-For $remote_addr;
            proxy_connect_timeout 90;          #nginx跟后端服务器连接超时时间(代理连接超时)
            proxy_send_timeout 90;             #后端服务器数据回传时间(代理发送超时)
            proxy_read_timeout 90;             #连接成功后,后端服务器响应时间(代理接收超时)
            proxy_buffer_size 4k;              #设置代理服务器(nginx)保存用户头信息的缓冲区大小
            proxy_buffers 4 32k;               #proxy_buffers缓冲区,网页平均在32k以下的话,这样设置
            proxy_busy_buffers_size 64k;       #高负荷下缓冲大小(proxy_buffers*2)
            proxy_temp_file_write_size 64k;    #设定缓存文件夹大小,大于这个值,将从upstream服务器传
 
            client_max_body_size 10m;          #允许客户端请求的最大单文件字节数
            client_body_buffer_size 128k;      #缓冲区代理缓冲用户端请求的最大字节数
        }
 
    #配置Nginx动静分离,定义的静态页面直接从Nginx发布目录读取。
       location ~ .*\.(gif|jpg|jpeg|bmp|png|ico|txt|js|css)$ { 
            root /data/statics/upload; # 你自己的静态地址
                   #expires定义用户浏览器缓存的时间为7天,如果静态页面不常更新,可以设置更长,这样可以节省带宽和缓解服务器的压力
            expires      7d; 
        } 
 
    }
}

4、总结

        实现此种凡是主要是测试环境或者正式环境之中节省静态资源服务器资源的情况可以考虑使用。

5、参考文章

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值