Nginx配置新增location

一、代理服务器

一个Nginx可以配置多个server,每个server可以监听一个端口(如80、81)。每个server可有配置多个location,在浏览器中输入不同的路径来访问服务器中对应的目录。

二、增加新的location

找到NGINX的配置路径:/usr/local/nginx/conf ,修改nginx.conf配置
http://localhost 访问服务器中 /opt/tst1
http://localhost/tst2/ 访问服务器中 /opt/tst2

 server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;
        
        location / {
            root /opt/tst1;   #root末尾可以不用/结束
            set $flag 0;
            if ($request_filename ~* ^.*?\.(txt|doc|pdf|rar|gz|zip|docx|exe|xlsx|ppt|pptx)$){
                set $flag 1;
            }
            if ($request_uri ~* view$){    
                set $flag 2;
            }
            if ($flag = 1){
                add_header Content-Disposition: attachment;  
            }
            autoindex on;
            autoindex_exact_size on;
            autoindex_localtime on;
        }
        
        location /tst2/ {
    
            alias /opt/tst2/;  #alias末尾必须要用/结束
      
		 				  set $flag 0;
            if ($request_filename ~* ^.*?\.(txt|doc|pdf|rar|gz|zip|docx|exe|xlsx|ppt|pptx)$){
                set $flag 1;
            }
            if ($request_uri ~* view$){    
                set $flag 2;
            }
            if ($flag = 1){
                add_header Content-Disposition: attachment;  
            }
            autoindex on;
            autoindex_exact_size on;
            autoindex_localtime on;
        }
    }

alias与root的区别

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

location / {
            root /opt/tst1;
}
            
 location /tst2/ {
           alias /opt/tst2/;
}

root:真实路径是root指定的值加上location指定的值
http://ip:port/flower.jpg时,访问服务器里的资源是:/opt/tst1/flower.jpg
alias :真实路径是alias 指定的路径
http://ip:port/tst2/food.jpg时,访问服务器里的资源是:/opt/tst2/flower.jpg

注意:

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

三、重启NGINX

  1. 验证配置文件是否正确
cd /usr/local/nginx/sbin
sudo ./nginx -t

If everything is in order, it should return:
在这里插入图片描述If the test fails, track down and fix the problems
2. 重启nginx:

cd /usr/local/nginx/sbin
sudo ./nginx -s reload
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值