在CentOS上安装nginx服务器
off999 2025-01-18 23:09 20 浏览 0 评论
一、环境描述
1. 虚拟机配置
CPU:单核
内存:2 GB
硬盘:120 GB
IP:10.24.17.108
2. 操作系统
版本:CentOS 6.6 x86_64
安装方式:Minimal
3. 虚拟化环境
VMware Workstation 12.1.0
4. nginx
版本:nginx-1.10.1.tar.gz
安装方式:编译源码安装
二、下载nginx源码包
在bash中运行以下命令,下载nginx的源码包:
cd /root/Downloads
# 下载nginx源码包
wget http://nginx.org/download/nginx-1.10.1.tar.gz
# 下载pcre源码包
wget http://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.38.tar.gz
# 下载zlib源码包
wget http://zlib.net/zlib-1.2.8.tar.gz
三、安装依赖包
在bash中运行以下命令,在服务器上安装nginx的依赖包:
yum --disablerepo=\* --enablerepo=c6-media install -y openssl openssl-devel
在bash中运行以下命令,安装编译环境:
yum --disablerepo=\* --enablerepo=c6-media groupinstall -y "Development Tools"
四、创建用户和组
在bash中运行以下命令,为nginx创建用户和组:
groupadd -r nginx
useradd -s /sbin/nologin -g nginx -r nginx
五、解压缩源码包
在bash中运行以下命令,解压缩nginx和依赖包的源码包:
tar xvzf nginx-1.10.1.tar.gz
tar xvzf pcre-8.38.tar.gz
tar xvzf zlib-1.2.8.tar.gz
cd nginx-1.10.1
六、编译安装
在bash中运行以下命令,编译安装nginx:
# 配置编译选项
./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-select_module \
--with-poll_module \
--with-http_ssl_module \
--with-pcre=/root/Downloads/pcre-8.38 \
--with-pcre-jit \
--with-zlib=/root/Downloads/zlib-1.2.8
# 编译安装
make && make install
七、配置自动启动服务
在bash中运行以下命令,将nginx配置为自动启动的系统服务:
vi /etc/init.d/nginx
在上述init脚本中输入并保存以下内容:
#!/bin/sh
#
# nginx - this script starts and stops the nginx daemon
#
# chkconfig: - 85 15
# description: NGINX is an HTTP(S) server, HTTP(S) reverse \
# proxy and IMAP/POP3 proxy server
# processname: nginx
# config: /usr/local/nginx/conf/nginx.conf
# pidfile: /usr/local/nginx/pid/nginx.pid
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is up.
[ "$NETWORKING" = "no" ] && exit 0
nginx="/usr/local/nginx/sbin/nginx"
prog=$(basename $nginx)
NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf"
lockfile=/usr/local/nginx/lock/nginx.lock
make_dirs() {
# make required directories
user=`$nginx -V 2>&1 | grep "configure arguments:" | sed 's/[^*]*--user=\([^ ]*\).*/\1/g' -`
if [ -z "`grep $user /etc/passwd`" ]; then
useradd -M -s /bin/nologin $user
fi
options=`$nginx -V 2>&1 | grep 'configure arguments:'`
for opt in $options; do
if [ `echo $opt | grep '.*-temp-path'` ]; then
value=`echo $opt | cut -d "=" -f 2`
if [ ! -d "$value" ]; then
# echo "creating" $value
mkdir -p $value && chown -R $user $value
fi
fi
done
}
start() {
[ -x $nginx ] || exit 5
[ -f $NGINX_CONF_FILE ] || exit 6
make_dirs
echo -n $"Starting $prog: "
daemon $nginx -c $NGINX_CONF_FILE
retval=$?
echo
[ $retval -eq 0 ] && touch $lockfile
return $retval
}
stop() {
echo -n $"Stopping $prog: "
killproc $prog -QUIT
retval=$?
echo
[ $retval -eq 0 ] && rm -f $lockfile
return $retval
}
restart() {
configtest || return $?
stop
sleep 1
start
}
reload() {
configtest || return $?
echo -n $"Reloading $prog: "
killproc $nginx -HUP
RETVAL=$?
echo
}
force_reload() {
restart
}
configtest() {
$nginx -t -c $NGINX_CONF_FILE
}
rh_status() {
status $prog
}
rh_status_q() {
rh_status >/dev/null 2>&1
}
case "$1" in
start)
rh_status_q && exit 0
$1
;;
stop)
rh_status_q || exit 0
$1
;;
restart|configtest)
$1
;;
reload)
rh_status_q || exit 7
$1
;;
force-reload)
force_reload
;;
status)
rh_status
;;
condrestart|try-restart)
rh_status_q || exit 0
;;
*)
echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"
exit 2
esac
修改脚本权限,然后设置为随系统自动启动:
mkdir -p /usr/local/nginx/pid
mkdir -p /usr/local/nginx/lock
chmod 755 /etc/init.d/nginx
chkconfig nginx on
配置环境变量:
sed -i '80s/$/&:\/usr\/local\/nginx\/sbin/' /etc/profile
source /etc/profile
至此,可以通过以下命令操作nginx服务:
# 启动nginx服务
service nginx start
# 停止nginx服务
service nginx stop
# 重启nginx服务
service nginx restart
# 查看nginx服务状态
service nginx status
八、开启gzip压缩
在bash中运行以下命令,为nginx开启gzip压缩功能,减少网络带宽占用:
# 配置pid文件位置
sed -i '9s/#pid logs\/nginx.pid;/pid pid\/nginx.pid;/' /usr/local/nginx/conf/nginx.conf
# 启用gzip压缩
sed -i '33s/#gzip on;/gzip on;/' /usr/local/nginx/conf/nginx.conf
# 启用gzip压缩的最小文件
sed -i '33a\ gzip_min_length 1k;' /usr/local/nginx/conf/nginx.conf
# gzip压缩级别
sed -i '34a\ gzip_comp_level 2;' /usr/local/nginx/conf/nginx.conf
# 进行压缩的文件类型
sed -i '35a\ gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;' /usr/local/nginx/conf/nginx.conf
# 是否在http header中添加Vary: Accept-Encoding
sed -i '36a\ gzip_vary on;' /usr/local/nginx/conf/nginx.conf
# 禁用IE 6 gzip
sed -i '37a\ gzip_disable "MSIE [1-6]\\.";' /usr/local/nginx/conf/nginx.conf
# 为ttf、otf和svg字体启用gzip
sed -i '38a\ gzip_types font/ttf font/otf image/svg+xml;' /usr/local/nginx/conf/nginx.conf
# 上传文件最大尺寸
sed -i '39a\ client_max_body_size 20m;' /usr/local/nginx/conf/nginx.conf
九、开启缓存
在bash中运行以下命令,为nginx开启静态内容缓存,减少网络带宽占用:
# 为图片文件设置缓存
sed -i '85a\\n' /usr/local/nginx/conf/nginx.conf
sed -i '86a\ location ~* ^.+\\.(ico|gif|jpg|jpeg|png)$ {' /usr/local/nginx/conf/nginx.conf
sed -i '87a\ access_log off;' /usr/local/nginx/conf/nginx.conf
sed -i '88a\ expires 30d;' /usr/local/nginx/conf/nginx.conf
sed -i '89a\ }' /usr/local/nginx/conf/nginx.conf
# 为文本文件设置缓存
sed -i '90a\' /usr/local/nginx/conf/nginx.conf
sed -i '91a\ location ~* ^.+\\.(css|js|txt|xml|swf|wav)$ {' /usr/local/nginx/conf/nginx.conf
sed -i '92a\ access_log off;' /usr/local/nginx/conf/nginx.conf
sed -i '93a\ expires 24h;' /usr/local/nginx/conf/nginx.conf
sed -i '94a\ }' /usr/local/nginx/conf/nginx.conf
# 为静态页面设置缓存
sed -i '95a\\n' /usr/local/nginx/conf/nginx.conf
sed -i '96a\ location ~* ^.+\\.(html|htm)$ {' /usr/local/nginx/conf/nginx.conf
sed -i '97a\ expires 1h;' /usr/local/nginx/conf/nginx.conf
sed -i '98a\ }' /usr/local/nginx/conf/nginx.conf
# 为字体设置缓存
sed -i '99a\' /usr/local/nginx/conf/nginx.conf
sed -i '100a\ location ~* ^.+\\.(eot|ttf|otf|woff|svg)$ {' /usr/local/nginx/conf/nginx.conf
sed -i '101a\ access_log off;' /usr/local/nginx/conf/nginx.conf
sed -i '102a\ expires max;' /usr/local/nginx/conf/nginx.conf
sed -i '103a\ }' /usr/local/nginx/conf/nginx.conf
十、启动服务
在bash中运行以下命令,启动nginx服务:
service nginx start
相关推荐
- 懂行的人建议买华为还是惠普电脑
-
华为电脑好。华为笔记本电脑主打的就是轻薄,质感,多屏协同生态,面向商务人群和学生党。目前在售的机型并不多,但每一台机子本身都不错,不过因为被制裁的缘故,定价过高,性价比打折扣。惠普笔记本好,惠普除了家...
- 如何把win系统换成安卓(怎么把系统改为win10)
-
方法/步骤分步:1首先点击打开酷安应用市场;2点击打开位于屏幕右下方的“应用游戏”选项;3选择想要下载的软件或者游戏app,点击进入;4选择“下载”按钮,点击开始下载;5APP下载完成后,系统会自动跳...
-
- 如何复制粘贴(如何复制粘贴excel表格内容)
-
需要复制文字的时候只要先选中文字,然后同时按住Ctrl+C键,然后松手就已经复制了文字,在需要粘贴的地方同时按住:Ctrl+V就可以看到文字被粘贴了,非常的方便。扩展资料:Alt键,这个键叫做改变,很多快捷键都需要使用到这个键,矩形...
-
2025-11-14 05:51 off999
- hotmail电子邮箱登录(hotmail邮箱在线登录)
-
***@hotmail.com1、其中***是你自己申请的邮箱的用户名。2、hotmail要写在符号@后面。3、最后加上.com,这样就是一个完整的hotmail邮箱的格式。4、比如:zhangj...
- win10iso文件(win10iso文件怎么安装)
-
安装Win10ISO系统文件需要以下步骤:1.首先需要从Microsoft官网下载Win10ISO系统文件,打开网站后选择Win10的版本、语言和架构(32位或64位),点击下载即可。2.下载...
- 英特尔显卡性能排行(英特尔显卡性能排行天梯图)
-
IRIS(英特尔第四/五代集成显卡)英特尔第四代集成显卡,分为HD4200/4400/4600,HD5100/5200。代号为GT2/3/3e,中文名为锐炬。hd420044004600和台式...
- 电脑做系统u盘启动选项(做系统开机u盘怎么选择)
-
操作须知:1、设置U盘启动分很多种:传统legacy机型设置、uefi新机型设置、uefi机型改legacy启动设置2、由于电脑品牌以及机型非常多,这边仅列举一部分电脑的设置方法,3、如果是uefi机...
- 未安装nvidia控制面板(电脑未安装nvidia控制面板)
-
如果你使用的是Nvidia显卡,但未安装Nvidia控制面板,则可能会遇到以下问题:1.无法进行高级显卡设置:Nvidia控制面板提供了高级显卡设置选项,例如显卡超频、显示器分辨率和刷新率、视频调整...
- u盘检测不到怎么修复(u盘检查不了是什么原因)
-
以下是可能的解决办法:1.更换不同的USB端口。有时候电脑某个USB端口可能出现问题,试试换一个不同的端口。2.重启电脑。有时候出现问题的USB端口可能需要重启才能正常。3.插拔几次U盘。有时候...
- win7 共享设置(win7共享设置详细步骤)
-
1.进入控制面板家庭组页打开控制面板找到网络和Internet下面的家庭组和共享选项并打开?2.进入更改高级共享设置打开以后选择更改高级共享设置功能进入?3.开启文件和打印机共享开启文件和打印机共享,...
- 电脑硬盘怎么装步骤图(电脑硬盘怎么装步骤图片)
-
1、查看硬盘的各项信息。硬盘的背面会有硬盘的存储容量以及电压,功率,转速等基本信息。2、购买到的一整块硬盘里面包括硬盘、对接线跟螺丝钉。将对接线和螺丝钉摆在一旁。3、在硬盘的上方会有两个SATA接口,...
- 小马win10永久激活(小马win10永久激活工具使用方法)
-
很简单,重装系统win7,这个可以激活的,然后根据推送升级win10,如果有强迫症可以升级以后重新安装win10系统,以后都是自动联网激活的。安全。小马激活工具win10版是小马专门为windowns...
欢迎 你 发表评论:
- 一周热门
-
-
抖音上好看的小姐姐,Python给你都下载了
-
全网最简单易懂!495页Python漫画教程,高清PDF版免费下载
-
Python 3.14 的 UUIDv6/v7/v8 上新,别再用 uuid4 () 啦!
-
python入门到脱坑 输入与输出—str()函数
-
飞牛NAS部署TVGate Docker项目,实现内网一键转发、代理、jx
-
宝塔面板如何添加免费waf防火墙?(宝塔面板开启https)
-
Python三目运算基础与进阶_python三目运算符判断三个变量
-
(新版)Python 分布式爬虫与 JS 逆向进阶实战吾爱分享
-
慕ke 前端工程师2024「完整」
-
失业程序员复习python笔记——条件与循环
-
- 最近发表
- 标签列表
-
- python计时 (73)
- python安装路径 (56)
- python类型转换 (93)
- python进度条 (67)
- python吧 (67)
- python的for循环 (65)
- python格式化字符串 (61)
- python静态方法 (57)
- python列表切片 (59)
- python面向对象编程 (60)
- python 代码加密 (65)
- python串口编程 (77)
- python封装 (57)
- python写入txt (66)
- python读取文件夹下所有文件 (59)
- python操作mysql数据库 (66)
- python获取列表的长度 (64)
- python接口 (63)
- python调用函数 (57)
- python多态 (60)
- python匿名函数 (59)
- python打印九九乘法表 (65)
- python赋值 (62)
- python异常 (69)
- python元祖 (57)
