作者回复: 好问题!因为有个http模块名叫index,它有一个指令叫index,默认值是index.html。这个模块的用途是:任何以/结尾的url,都尝试一下加上index.html(可配),看看能不能访问,如果能访问就返回这个文件的内容。所以解决方案有三个:1、不要编译进index模块;2、把index指令配置成一个不存在 的文件;3、这个目录下不要出现index.html文件。
作者回复: 谢谢分享!只要mv后再reopen就可以的:-)
作者回复: 向老的master进程发送QUIT信号可以关掉它。回退的话,再发送HUP到老master,再发送WINCH到新的master。关新master同上。
作者回复: 是不是你的防火墙(如iptable)没开放8080端口?是阿里云服务器的话,默认不打开8080端口的。
作者回复: 1、如果CPU资源较空余,可以设得大一些;
2、如果是静态资源,提前压缩好更合适,完全不因为压缩操作消耗CPU,参见第134课。
作者回复: firefox,chrome我也常用,他们都可以通过相同的快捷键F12或者ctrl+shift+i打开调试模式,查看网络信息
作者回复: 不能,reload命令可以配合热部署实现回滚。在第二部分中我们会详细的描述热部署的流程,第一部分只是简单的做个演示,为不熟悉nginx的同学快速热身。
作者回复: 完全正确!^_^
作者回复: 明白你的问题了,先贴下你的问题:
(2)访问路径 62.234.83.141:8080/dlib,实际访问的路径是 nginx/dlib/dlib
(3)访问路径 62.234.83.141:8080/dlib/,实际访问的路径是 nginx/dlib/dlib/index.html
我的回答有3点:
1、对于alias的用法你还有一些误解。alias会与location 后的前缀密切配合。比如location /a {alias b},如果你访问/a/c.html,实际会访问/b/c.html,它会把前缀替换掉。现在你访问/dlib/index.html,但你的location 是/,那么alias /dlib就会把/替换为/dlib,这样最终访问是/dlib/dlib/index.html。
所以,你应该直接访问/index.html,就是访问/dlib/index.html。
2、index模块是有默认值的,会在/结尾加index.html
3、当对应没有文件时,会在URL结尾放/,以301的形式返回重定向,具体请看66课
作者回复: 返回404的时候,error.log上会有一行日志,写明实际对应的文件路径,你看看那个路径对应的文件是否存在。
error.log是定位nginx的最好工具,只要发现问题要第一时间想到它
作者回复: 不是很明白。
1、你是说你的域名同样添加了3条A记录,映射到3个IP上,这三个IP对应着三台nginx吗?你希望nginx可以能处理访问该域名的HTTP请求吗?
如果问题是这样,你的答案是对的,server_name还有一种默认配置方法,可以匹配所有的host域名。你可以看下第47课。
2、你是有三台上游应用服务处理该域名的请求,想用nginx搭台反向代理,把HTTP请求转发给上游的8085端口吗?
如果问题是这样,建议你先阅读下第4部分的课程。
作者回复: 静态文件的配置,你需要给我三个信息:
1、URL路径;
2、此时实际对应的文件路径。
这样我才好给你配置哈。
或者你看下63课,应该就可以搞定:-)
作者回复: 第63课对于alias指令有详细的介绍,可以先看下
作者回复: 在linux上本机用telnet/curl可以连接上吗?看一下是不是防火墙没打开?在阿里云上的话,需要开一下安全组的权限
作者回复: 用ps -ef 确认一下worker进程的权限,然后在error.log日志中看下更详细的错误往上,以worker进程的用户登陆bash shell中,使用错误信息中显示的文件路径访问看下是否有权限。
作者回复: 视频中是firefox浏览器。谷歌浏览器也很好用,在《Web协议详解与抓包实战》这门课中我一直用的是谷歌浏览器
作者回复: 1、用chmod/chown给相当的目录加权限;
2、在nginx.conf中用user指令给nginx worker进程设置有权限的用户。你用ps -ef | grep nginx可以看到,现在worker进程是nobody用户,应该是没有权限读取你用root/alias设置的目录。
作者回复: http://dlib.net/files/dlib-19.18.zip