初读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即可

浙公网安备 33010602011771号