初读nginx.conf

学成在线里教的部署门户,记录一下NGINX的部分配置是如何使用的

location块用于定义如何处理不同URL请求

1.代理:

    server {
        listen       80;
        server_name  file.51xuecheng.cn;
        #charset koi8-r;
        ssi on;
        ssi_silent_errors on;
        #access_log  logs/host.access.log  main;
        location /video {
            proxy_pass   http://fileserver;
        }

        location /mediafiles {
            proxy_pass   http://fileserver;
        }
   }

拿这一段举例子:server_name是可以多选的,比如这里可以填写file.51xuecheng.cn localhost;

proxy_pass举例个栗子:就是把server_name/video请求转发到http://fileserver上

和server同级下,又创建了下面这个代码块,值得一提的是,这里的server可以添加多个,nginx会根据权重、负载均衡选择服务器

  upstream fileserver{
    server 192.168.101.65:9000 weight=10;
  } 

和第一段代码拼起来,就是file.51xuecheng.cn/video的请求转发到http://192.168.101.65:9000上,这样实现了代理功能

2.alias与root

    location /course/preview/learning.html {
                alias E:/BaiduNetdiskDownload/xc-ui-pc-static-portal/course/learning.html;
        } 
        location /course/search.html {  
                root   E:/BaiduNetdiskDownload/xc-ui-pc-static-portal;
        } 

alias通常用于指定一个替换路径,该路径会替换请求URL中的location中匹配的部分

例子中我们请求的是/course/preview/learning.html,而使用alias实际请求的是E:/BaiduNetdiskDownload/xc-ui-pc-static-portal/course/learning.html。文心一言说这是不太常见的情况,一般我们会指向一个目录,然后根据URL剩余部分来查找文件

 

root通常用于设置请求的根目录,将location中匹配的部分去掉,上述例子中实际上没有去掉什么:( ,然后再附加到这个根目录上查找文件,即E:/BaiduNetdiskDownload/xc-ui-pc-static-portal/course/search.html

 

————debug记录:nginx.exe -s reload失效了——————

 

在nginx.exe目录下进入cmd,然后输入nginx.exe -s reload。nginx居然没有响应

后面我打开任务管理器发现启动了7,8个nginx。。。

解决办法:在任务管理器把他们都杀死,再重启启动nginx即可

 

posted @ 2024-07-12 17:50  天启A  阅读(35)  评论(0)    收藏  举报