``
bash,#!/bin/bash,,# 更新系统软件包列表,sudo aptget update,,# 安装 Nginx,sudo aptget install y nginx,,# 启动 Nginx 服务并设置为开机自启,sudo systemctl start nginx,sudo systemctl enable nginx,,# 安装 Varnish,sudo aptget install y varnish,,# 启动 Varnish 服务并设置为开机自启,sudo systemctl start varnish,sudo systemctl enable varnish,`,,将以上代码保存为一个 .sh 文件,install_nginx_varnish.sh,然后在终端中运行 bash install_nginx_varnish.sh` 即可自动安装 Nginx 和 Varnish。在现代Web开发中,Nginx和Varnish是两个非常重要的软件,Nginx是一个高性能的HTTP和反向代理服务器,而Varnish则主要用于内容缓存,通过自动化脚本来安装这两个软件,可以大大提高部署效率,以下是一个详细的自动安装Nginx和Varnish的脚本示例:

自动安装Nginx和Varnish脚本
#!/bin/sh
Nginx & Varnish Auto Install Script
Author: wb
Date: 20101119
nginx_ver=0.7.67
nginx_path=/opt/nginx
varnish_ver=2.1.3
varnish_path=/opt/varnish
ip=$(ip a | grep eth0 | grep inet | awk '{print $2}' | cut d "/" f1)
echo e "\033[40;32m"
cat << EOF
#######################
1、Nginx Install
2、Varnish Install
#######################
EOF
pcre_install(){
echo "Installing pcre and pcredevel..."
yum install pcre pcredevel y
}
nginx_install(){
if [ f /root/nginx$nginx_ver.tar.gz ]; then
echo "nginx$nginx_ver.tar.gz already exists, exiting!"
exit 1
else
pcre_install
echo "Downloading nginx$nginx_ver..."
wget http://www.nginx.org/download/nginx$nginx_ver.tar.gz
echo "Creating user and group www, installing nginx$nginx_ver..."
useradd www s /sbin/nologin d /dev/null
tar zxvf nginx$nginx_ver.tar.gz
cd nginx$nginx_ver
test d $nginx_path || mkdir p $nginx_path
./configure prefix=$nginx_path
user=www
group=www
withhttp_stub_status_module
withouthttp_map_module
withouthttp_geo_module
withhttp_gzip_static_module
withhttp_flv_module
make && make install
/opt/nginx/sbin/nginx
echo "Nginx$nginx_ver installed. Please access http://$ip"
fi
}
varnish_install(){
if [ f /root/varnish$varnish_ver.tar.gz ]; then
echo "varnish$varnish_ver.tar.gz already exists, exiting!"
exit 1
else
pcre_install
echo "Downloading varnish$varnish_ver..."
wget http://sourceforge.net/projects/varnish/files/varnish/$varnish_ver/varnish$varnish_ver.tar.gz
echo "Creating user and group www, installing varnish$varnish_ver..."
useradd www s /sbin/nologin d /dev/null
tar zxf varnish$varnish_ver.tar.gz
cd varnish$varnish_ver
test d $varnish_path || mkdir p $varnish_path
test d /data/varnish_cache || mkdir p /data/varnish_cache
./configure prefix=$varnish_path
make && make install
ulimit SHn 51200
/opt/varnish/sbin/varnishd u www
g www
f /opt/varnish/etc/varnish/default.vcl
a $ip:80
s file,/data/varnish_cache/varnish_cache.data,2G
w 1024,51200,10
t 3600
T $ip:3500
echo "Varnish$varnish_ver installed. Please access http://$ip"
fi
}
echo e "\033[40;33m"
read p "Enter the installation number (1 for Nginx, 2 for Varnish): " n
case $n in
1)
echo e "\033[40;33m"
read p "Do you want to install nginx$nginx_ver? [Y/y]: " s
if [ "$s" == "Y" ] || [ "$s" == "y" ]; then
nginx_install
else
echo "No [Y/y] option selected, exiting!"
exit 1
fi
;;
2)
echo e "\033[40;33m"
read p "Do you want to install varnish$varnish_ver? [Y/y]: " s
if [ "$s" == "Y" ] || [ "$s" == "y" ]; then
varnish_install
else
echo "No [Y/y] option selected, exiting!"
exit 1
fi
;;
*)
echo "Invalid installation number, exiting!"
exit 1
;;
esac
FAQs
1、Q1: 这个脚本适用于哪些操作系统?
A1: 这个脚本主要针对CentOS系统设计,因为它使用了yum包管理器,如果你使用的是其他Linux发行版,可能需要调整包管理命令,例如使用aptget(对于Debian/Ubuntu)或者zypper(对于openSUSE)。
2、Q2: 如何确认Nginx和Varnish是否成功安装?
A2: 你可以通过访问服务器的IP地址来确认Nginx和Varnish是否成功安装,如果看到相应的欢迎页面或缓存页面,则说明安装成功,你可以使用以下命令检查服务状态:
```sh
systemctl status nginx
systemctl status varnish
```