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 ...
随机推荐
- hdu3068-最长回文-马拉车(Manacher)算法
http://acm.hdu.edu.cn/showproblem.php?pid=3068 脑子转个弯总算看懂马拉车算法了.记录一下思路和模板. 马拉车算法是在O(n)的时间内求出最大回文子串. 一 ...
- LeetCode 1257. Smallest Common Region
原题链接在这里:https://leetcode.com/problems/smallest-common-region/ 题目: You are given some lists of region ...
- Asp.Net Core 减少Controller获取重复注入对象
原文:Asp.Net Core 减少Controller获取重复注入对象 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/u012770274/art ...
- ADB/Fastboot刷机
谷歌官方ADB/Fastboot等工具包下载地址(最新版/免.墙):WINDOWS :https://dl.google.com/android/repository/platform-tools-l ...
- LoadRunner名词解释
Transactions(用户事务分析):用户事务分析是站在用户角度进行的基础性能分析. 1.Transation Sunmmary(事务综述) 对事务进行综合分析是性能分析的第一步,通过分析测试时间 ...
- 第09组 Beta冲刺(2/5)
队名:观光队 链接 组长博客 作业博客 组员实践情况 王耀鑫 过去两天完成了哪些任务 文字/口头描述 学习 展示GitHub当日代码/文档签入记录 接下来的计划 完成短租车,页面美化 还剩下哪些任务 ...
- Django中render_to_response和render的区别(转载)
转载地址:https://www.douban.com/note/278152737/ 自django1.3开始:render()方法是render_to_response的一个崭新的快捷方式,前者会 ...
- docker 安装 apollo
apollo作为携程开源的配置中心,很多大厂在使用,在此记录下安装历程 服务器环境: 安装mysql 1.拉取镜像 docker pull idoop/docker-apollo 2.新建3个数据库, ...
- (十五)golang--init函数
每一个源文件都会包含一个init函数,这个函数会在执行main()执行之前被调用,相当于python中的__init__ 注意细节:(1)如果一个文件同时包含全局变量定义,init函数和main函数, ...
- Qt Quick小项目 - 登陆界面
开发环境: win8 + Qt5.11.2 说明: 用 QML 设计一个应用的登陆界面. 效果图: 新建一个 "Qt Quick Application - empty" 工程,分 ...