Azure Linux Web App(Nginx环境)目录访问限制方法咨询
Azure Linux Web App(Nginx环境)目录访问限制方法咨询
兄弟,太懂这种官方文档没提、自己摸环境的坑了!既然你已经把规则转成Nginx格式了,又碰不到主配置文件,给你几个实际可行的办法,都是针对Azure Linux Web App这种托管环境的:
自定义Nginx配置文件+修改启动命令
首先,你可以通过Azure门户的「高级工具(Kudu)」或者SSH终端,先把容器里默认的Nginx配置(一般在/etc/nginx/nginx.conf或者/etc/nginx/sites-available/default)复制出来,粘贴到你站点根目录(/home/site/wwwroot)下的nginx.conf里,然后把你的自定义规则加进去。
接着去Azure Web App的「配置」→「常规设置」,把启动命令改成:nginx -c /home/site/wwwroot/nginx.conf -g 'daemon off;'这样每次重启Web App,Nginx就会加载你修改后的配置了。因为你自己用,哪怕配置冗余点也没关系,稳就行。
用启动脚本追加自定义规则(更灵活)
如果不想完全替换默认配置,只想加自己的规则,可以这么搞:- 在
wwwroot下建个conf.d文件夹,把你的规则存成my_rules.conf(比如目录限制、重写规则这些); - 再在
wwwroot下创建一个startup.sh脚本,内容如下:# 把默认站点配置复制到可写目录(默认配置是只读的) cp /etc/nginx/sites-available/default /home/site/default.conf # 在配置末尾追加include自定义规则的指令 echo "include /home/site/wwwroot/conf.d/*.conf;" >> /home/site/default.conf # 替换默认配置文件的软链接 ln -sf /home/site/default.conf /etc/nginx/sites-available/default # 启动Nginx nginx -g 'daemon off;' - 同样去Azure门户设置启动命令为
bash /home/site/wwwroot/startup.sh。
这个办法的好处是,默认配置更新了(比如Azure升级镜像),你的自定义规则还能保留。
- 在
适合新手的小技巧:规则转译工具
如果你之前是靠.htaccess写规则的,怕转Nginx出错,可以用专门的.htaccess转Nginx规则工具(本地运行的那种就行),把你的旧规则转成标准Nginx格式,再放到上面的配置里就行。
最后提醒下:改完配置后记得重启Web App生效,要是配置错了导致站点挂了,直接在Kudu里删掉自定义配置或者改回默认启动命令就行,不用慌~
备注:内容来源于stack exchange,提问作者TallGuy
相关产品推荐
相关产品推荐

