1. 创建一个目录,用来存放脚本和安装包
[root@localhost nginx]# tree.├── install.sh└── packages └── nginx-1.20.1.tar.gz 1 directory, 2 files[root@localhost nginx]#
2. 下载好对应的安装包
[root@localhost packages]# wget https://nginx.org/download/nginx-1.20.1.tar.gz[root@localhost packages]# lsnginx-1.20.1.tar.gz[root@localhost packages]#
3. 编写脚本
[root@localhost nginx]# cat install.sh #!/bin/bash log_dir=/var/loginstall_dir=/usr/local id nginx &>/dev/nullif [ $? -ne 0 ];then useradd -r -M -s /sbin/nologin nginxfi yum -y install pcre-devel pcre gcc gcc-c++ openssl-devel zlib zlib-devel make vim wget openssl openssl-devel gd-devel if [ ! -d $log_dir/nginx ];then mkdir -p $log_dir/nginx chown -R nginx.nginx $log_dir/nginxfi if [ ! -d $install_dir/nginx-1.20.1 ];then tar xf packages/nginx-1.20.1.tar.gz -C $install_dirfi cd $install_dir/nginx-1.20.1if [ ! -d $install_dir/nginx ];then ./configure --prefix=$install_dir/nginx --user=nginx --group=nginx --with-debug --with-http_ssl_module --with-http_realip_module --with-http_image_filter_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_stub_status_module --http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log make && make installfi echo "export PATH=$install_dir/nginx/sbin:$PATH" > /etc/profile.d/nginx.sh cat > /usr/lib/systemd/system/nginx.service <<EOF[Unit]Description=Nginx server daemonAfter=network.target [Service]Type=forkingExecStart=/usr/local/nginx/sbin/nginx ExecStop=/usr/local/nginx/sbin/nginx -s quitExecReload=/bin/kill -HUP \$MAINPID [Install]WantedBy=multi-user.targetEOF systemctl daemon-reloadsystemctl enable --now nginx.service [root@localhost nginx]#
4. 验证效果
[root@localhost nginx]# bash -x install.sh + log_dir=/var/log+ install_dir=/usr/local+ id nginx+ '[' 0 -ne 0 ']'+ yum -y install pcre-devel pcre gcc gcc-c++ openssl-devel zlib zlib-devel make vim wget openssl openssl-devel gd-develUpdating Subscription Management repositories.Unable to read consumer identityThis system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.上次元数据过期检查:1:03:20 前,执行于 2021年10月24日 星期日 20时57分26秒。软件包 pcre-devel-8.42-4.el8.x86_64 已安装。软件包 pcre-8.42-4.el8.x86_64 已安装。软件包 gcc-8.4.1-1.el8.x86_64 已安装。软件包 gcc-c++-8.4.1-1.el8.x86_64 已安装。软件包 openssl-devel-1:1.1.1g-15.el8_3.x86_64 已安装。软件包 zlib-1.2.11-17.el8.x86_64 已安装。软件包 zlib-devel-1.2.11-17.el8.x86_64 已安装。软件包 make-1:4.2.1-10.el8.x86_64 已安装。软件包 vim-enhanced-2:8.0.1763-15.el8.x86_64 已安装。软件包 wget-1.19.5-10.el8.x86_64 已安装。软件包 openssl-1:1.1.1g-15.el8_3.x86_64 已安装。软件包 gd-devel-2.2.5-7.el8.x86_64 已安装。依赖关系解决。无需任何处理。完毕!+ '[' '!' -d /var/log/nginx ']'+ '[' '!' -d /usr/local/nginx-1.20.1 ']'+ cd /usr/local/nginx-1.20.1+ '[' '!' -d /usr/local/nginx ']'+ echo 'export PATH=/usr/local/nginx/sbin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin'+ cat+ systemctl daemon-reload+ systemctl enable --now nginx.service[root@localhost nginx]# [root@localhost nginx]# ss -antlState Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 128 0.0.0.0:80 0.0.0.0:* LISTEN 0 128 0.0.0.0:22 0.0.0.0:* LISTEN 0 128 [::]:22 [::]:* [root@localhost nginx]#
到此这篇关于shell脚本多实例部署nginx的详细教程的文章就介绍到这了,更多相关shell脚本部署nginx内容请搜索w3xue以前的文章或继续浏览下面的相关文章希望大家以后多多支持w3xue!
本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728