Nginx编译安装脚本
Nginx是高性能的web服务器和反向代理服务器,在互联网公司中被广泛使用。以下是Nginx在centos7系统下的一键编译安装脚本,仅供参考,具体编译参数选项请结合实际生产环境需求进行选择,脚本代码如下:
#!/bin/bash
#
#********************************************************************
#Author: Eddie.Peng
#URL: https://www.cnblogs.com/eddie1127/
#Date: 2019-11-08
#FileName: nginx_install.sh
#Description: The script for install Nginx web server
#********************************************************************
#Set colour
COLORBEG="\033[1;31m"
COLOREND="\033[0m"
# Check if user is root
if [ $(id -u) !=0 ];then
echo -e "${COLORBEG} Error! You must be root to run this script,please use root to install. ${COLOREND}"
exit 10
fi
clear
echo "========================================================================"
echo " "
echo "The script for install Nginx web server"
echo " "
echo "========================================================================"
# Modify system and kernel args
ulimit -SHn 65535
cat >>/etc/security/limits.conf << EOF
* soft nproc
* hard nproc 65535
* soft nofile 65535
* hard nofile 65535
EOF
cat >> /etc/sysctl.conf << EOF
fs.file-max = 6553560
net.ipv4.ip_forward = 1
net.ipv4.ip_nonlocal_bind = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_keepalive_time = 600
net.ipv4.tcp_keepalive_intvl = 15
net.ipv4.tcp_keepalive_probes = 3
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_syncookies = 1
net.core.netdev_max_backlog = 8096
net.core.somaxconn = 65535
net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.icmp_ignore_bogus_error_responses = 1
EOF
sysctl -p
# Install dependent software packge
yum -y install epel-release gcc pcre-devel openssl-devel zlib-devel GeoIP GeoIP-devel GeoIP-data
# Check files if exists
echo "=================================== Check files ==========================================="
CUR_DIR=$(pwd)
NAME=nginx-1.16.1
FULL_NAME=${CUR_DIR}/${NAME}.tar.gz
INSTALL_PATH=/usr/local/nginx
cd $CUR_DIR
if [ -s $FULL_NAME ];then
echo "$FULL_NAME [found]"
else
echo -e "${COLORBEG} $FULL_NAME not found! download now... ${COLOREND}"
wget -c https://nginx.org/download/$NAME.tar.gz
fi
echo "====================================== Install ============================================"
# Create run user for nginx service
id -u nginx
if [ $? -eq 0 ];then
echo -e "${COLORBEG} user nginx already exist,skip... ${COLOREND}"
else
groupadd -g 80 nginx
useradd -u 80 -r -g nginx -s /sbin/nologin nginx
echo -e "\033[1;32m user nginx has been created. \033[0m"
fi
# Install nginx web server
cd $CUR_DIR
tar xf $FULL_NAME -C /usr/local/src
cd /usr/local/src/$NAME
./configure --prefix=$INSTALL_PATH \
--user=nginx --group=nginx \
--pid-path=/var/run/nginx.pid \
--lock-path=/var/run/nginx.lock \
--with-http_ssl_module \
--with-http_v2_module \
--with-http_realip_module \
--with-http_dav_module \
--with-http_flv_module \
--with-http_mp4_module \
--with-http_stub_status_module \
--with-threads \
--with-file-aio \
--with-http_geoip_module \
--with-http_gzip_static_module \
--with-http_slice_module \
--with-stream \
--with-stream_ssl_module \
--with-stream_realip_module
make -j $(nproc) && make install
echo "========================= Check install =============================================="
clear
INSTALL=""
echo "Checking..."
if [ -s "$INSTALL_PATH"/sbin/nginx ] && [ -s "$INSTALL_PATH"/conf/nginx.conf ];then
echo -e "\033[1;32m nginx install OK \033[0m"
INSTALL="OK"
else
echo -e "${COLORBEG} Error! "$INSTALL_PATH"/sbin/nginx not found!Nginx install failed,please check. ${COLOREND}"
fi
if [ "$INSTALL" = "OK" ];then
echo -e "\033[1;32m Congratulation!Nginx install completed! Enjoy it. \033[0m"
echo "===================================================================================="
echo "The path of some dirs:"
echo "nginx_exec_dir: $INSTALL_PATH/sbin"
echo "nginx config : $INSTALL_PATH/conf"
echo "===================================================================================="
else
echo -e "${COLORBEG} Sorry,Nginx install Failed! Please check and reinstall. ${COLOREND}"
exit 20
fi
# Add links
ln -s $INSTALL_PATH/sbin/nginx /usr/sbin/
#Add nginx service on startup
cat > /usr/lib/systemd/system/nginx.service << EOF
[Unit]
Description=The nginx HTTP and reverse proxy server
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/var/run/nginx.pid
ExecStartPre=/usr/bin/rm -f /var/run/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/bin/kill -s HUP \$MAINPID
KillSignal=SIGQUIT
TimeoutStopSec=5
KillMode=process
PrivateTmp=true
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable --now nginx.service
# Check start up
if [ $? -eq 0 ];then
echo -e "\033[1;32m Nginx start successful. \033[0m"
else
echo -e "${COLORBEG} Nginx start failed!please check. ${COLOREND}"
fi
Nginx编译安装脚本的更多相关文章
- nginx编译安装支持lua脚本
一.准备编译环境 1.操作系统:CentOS7.6 2.安装编译所需安装包 yum install gcc pcre pcre-devel zlib zlib-devel openssl openss ...
- nginx编译安装
Nginx编译安装 1.nginx官网:http://wiki.nginx.org/Install下载:http://nginx.org/en/download.html 2.编译安装# wget h ...
- php-fpm编译安装脚本
PHP是开源.轻量级.高效的开发语言,特别适合web项目开发,在中小型互联网公司中常用于开发web后端.PHP常与Nginx及MySQL数据库结合,搭建LNMP环境.以下为centos7系统下ph ...
- Nginx编译安装相关参数
Nginx编译安装相关参数 Nginx插件安装 ------------------pcre------------------ cd /usr/local/source wget http://ww ...
- mysql 自动备份和nginx自动安装脚本
一.自动备份Mysql脚本: 如下脚本为mysql自动备份脚本,仅供参考,可以根据实际情况修改. #!/bin/sh #auto backup mysql #wugk #Define PATH定义变量 ...
- LNMP平台搭建之一:nginx编译安装
参考博客:https://www.cnblogs.com/zhang-shijie/p/5294162.html jack.zhang 一.环境说明 系统环境:centos6.5 [root@lo ...
- Nginx编译安装lua-nginx-module
lua-nginx-module 模块可以将Lua的强大功能嵌入NGINX服务器. 下载Nginx源码 如果已安装Nginx,需要查看当前安装版本的编译参数: $ /usr/local/nginx/s ...
- Nginx编译安装:
第三方模块 在nginx.org -------- wiki 找 --add-module= 添加 Nginx编译安装: 安装开发环境 ]# yum groupinstall " ...
- [nginx]编译安装及安全优化
nginx配置-最后整理版 nginx_upstream_check_module nginx-module-vts nginx打补丁 nginx编译安装 - 下载 cd /usr/local/src ...
随机推荐
- Python进阶-VII 内置函数
一.内置函数引入 我们已经了解的有; print() input() range() next() dir() str() int() list() set() tuple() dict() he ...
- 使用hangfire在xunit中
框架为:abp hangfire配置连接:https://aspnetboilerplate.com/Pages/Documents/Hangfire-Integration 在单元测试中如何配置呢? ...
- NLP之关键词提取(TF-IDF、Text-Rank)
1.文本关键词抽取的种类: 关键词提取方法分为有监督.半监督和无监督三种,有监督和半监督的关键词抽取方法需要浪费人力资源,所以现在使用的大多是无监督的关键词提取方法. 无监督的关键词提取方法又可以分为 ...
- [LeetCode] 545. Boundary of Binary Tree 二叉树的边界
Given a binary tree, return the values of its boundary in anti-clockwise direction starting from roo ...
- ios 信任自签名证书
1. 通过html 网络地址的方式(eg. <a href="172.26.167.82.crt">证书安装</a>)[或者通过邮件附件的方式]2. 设置- ...
- OsharpNS轻量级.net core快速开发框架简明入门教程-Osharp.Permissions使用
OsharpNS轻量级.net core快速开发框架简明入门教程 教程目录 从零开始启动Osharp 1.1. 使用OsharpNS项目模板创建项目 1.2. 配置数据库连接串并启动项目 1.3. O ...
- sql server 批量备份数据库及删除N天前的备份数据
很多时候,我们都需要将数据库进行备份,当服务器上数据库较多时,不可能一个数据库创建一个定时任务进行备份,这时,就需要进行批量的数据库备份操作,好了,废话不多说,具体实现语句如下: 1 2 3 4 5 ...
- BizTalk证书相关操作
OPEN SSL 神技能 从PFX文件中导出私钥 openssl pkcs12 -in Cert.pfx -nocerts -nodes -out private_pc.key 从PFX文件中导出CS ...
- 调用其他python脚本文件里面的类和方法
问题描述: 自己编写了若干个Python脚本. 在testC.py里面需要调用testA.py和testB.py里面的若干类和方法.要怎么办? 需要都打包.安装,再去调用吗? 其实不必那么麻烦. 这里 ...
- mysql的简介和使用
mysql简介 数据的所有存储,检索,管理和处理实际上是由数据库软件--DBMS(数据库管理系统)完成的 mysql是一种DBMS,即它是一种数据库软件 mysql工具 mysql是一个客户机-服务器 ...