场景:几十个站点迁移过来,懒得一一配置,索性来个遍历目录下的二级文件夹自动创建成nginx站点配置文件完成站点部署。
业务中除了获取目录名,还有排除已有,使用一个已有的标准配置来生成N多其它配置。
cd到nginx/conf下,创建脚本addsite.sh

florder='/disk2/ftp'
dir=$(ls -l $florder |awk '/^d/ {print $NF}')
for i in $dir
do
    if [ "$i" != 'p7zip_16.02' -a "$i" != 'img.isres.com' -a "$i" != 'img57.isres.com' ];then
        cp -f vhost/img.isres.com.conf vhost/$i.conf 
        sed -i 's/img.isres.com/'$i'/g' vhost/$i.conf 
        
        echo vhost/$i.conf 
    fi
done

自己搭了一套lnmp+redis的vm虚拟机提供linux下的web运行测试环境,使用与物理机文件共享的方式,把站点配置,站点代码目录等放在物理机的文件夹中方便直接开发配置等,phpmyadmin因为变成了777权限。
会报
配置文件权限错误,不应任何用户都能修改!
处理
找到phpmyadmin/libraries/config.default.php文件,把 $cfg['CheckConfigurationPermissions'] 修改为false

nginx一般做代理服务器较多,大多数缓存都是proxy cache,偶尔有些架构是nginx+php组合的,其缓存就是另一种
fastcgi cache.
配置

http段:

fastcgi_cache_path /dev/shm/nginx_cache levels=2:2 keys_zone=cgi_one:10m inactive=2d max_size=10g;
fastcgi_ignore_headers Cache-Control Expires Set-Cookie ;

server段

set $skip_cache 0;
if ($request_method = POST) {
        set $skip_cache 1;
}
if ($request_uri ~ ^/admin/) {
    set $skip_cache  1;
}


fastcgi_cache            cgi_one;
fastcgi_cache_methods    GET;
fastcgi_cache_key        "$scheme$request_method$host$request_uri";
fastcgi_cache_valid      200 302 1d;
fastcgi_cache_use_stale  error timeout invalid_header http_500;
add_header               X-Cache "$upstream_cache_status";
fastcgi_no_cache $skip_cache;
fastcgi_cache_bypass $skip_cache;
include   fastcgi_params;

1.关闭虚拟机
2.虚拟机右键-设置-选项-共享文件夹-启用
3.添加目录 后开机
cc.png

#安装vm-tools
#运行 vmware-hgfsclient 查看共享的目录 
[root@shw-xuniji mnt]# vmware-hgfsclient
web
mount -t vmhgfs .host:/web /mnt/hgfs
#之后
ls /mnt/hgfs #就看到文件了。

这样,可以把代码目录和站点配置文件放在这里,在外部就能随时编辑了。
个人习惯,做一个软链接

ln -s /mnt/hgfs /home/public_html
#nginx httpd段加一个配置 include /home/public_html/vhost/*.conf;
mkdir /home/public_html/vhost