百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

在CentOS上安装nginx服务器

off999 2025-01-18 23:09 12 浏览 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

相关推荐

「Python条件结构」if…else实现判断奇偶数

功能要求用户从键盘上输入一个整数,判断该数是奇数还是偶数。说明:能被2整除的整数叫偶数,不能被2整除的叫奇数;即该数除以2后余数为0时该数为偶数,否则该数为奇数。求余数运算符为“%”。实例代码num...

Python if else条件语句详解

前面我们看到的代码都是顺序执行的,也就是先执行第1条语句,然后是第2条、第3条……一直到最后一条语句,这称为顺序结构。但是对于很多情况,顺序结构的代码是远远不够的,比如一个程序限制了只能成年人使用,儿...

python基础篇: python中的流程控制,你都了解吗?

在之前的文章中大致的介绍过python中的流程控制语句,今天通过一些案例来详细了解一下python中的流程语句。目前python中流程控制语句,包含如下,如有遗漏欢迎留言补充。在python中条件判断...

python中if语句

if语句用来判断,当不同的条件成立去做与之对应事情;格式如下:if条件:执行代码条件为True才会去做执行代码布尔类型(bool)说到布尔类型,就像开关只有两个值一样,布尔类型的值只有两个...

python中的循环语句到底难不难

好多初学者会有一种这样的心里:循环难不难?该怎么学习?下面来给大家分析下.Python中的循环语句并不难,但需要理解其核心逻辑和应用场景。以下是针对零基础学习者的清晰解析,通过对比、示例和常见误...

Python6大基础运算符,看完这篇之后会让你有一个彻底认识

昨天我们准备好了Python程序所需要的的东西,那么今天我们开始了解Python的各种基础运算符,这些要是不熟悉下来你后面的路也会走的很艰难Python支持基础运算符,常见的算术运算符有+、-、*、/...

Python基础:条件语句和循环语句

下面会详细讲解一下Python关于条件语句和循环语句,会包含一些示例代码。我们首先来介绍条件语句(if-else),然后再讨论循环语句(for和while循环)。条件语句(if-else)在Pytho...

Python合集之Python循环语句(一)

在上一节的合集中,我们了解了Python流程控制语句中if语句的嵌套及条件表达会的相关知识,本节我们将进一步了解一下Python循环语句中的while语句的相关知识。在日常生活中很多问题都无...

Python“三步”即可爬取,毋庸置疑

声明:本实例仅供学习,切忌遵守robots协议,请不要使用多线程等方式频繁访问网站。#第一步导入模块importreimportrequests#第二步获取你想爬取的网页地址,发送请求,获取网页内...

「Python条件结构」if…else实现三角形判断

功能要求编写程序,判断输入的三个数是否能构成三角形的三个边。如果可以,打印“可以构成三角形”;如果不可以,打印“不可以构成三角形”。构成三角形的条件是:三条边都等于0,且任何2条边的边长之和都大于第三...

Python中检查对象是否具有某个属性的方法

技术背景在Python编程中,经常会遇到需要检查一个对象是否具有某个特定属性的情况。例如,在调用对象的属性之前,需要先确认该属性是否存在,以避免引发AttributeError异常。以下将介绍几种常见...

Python条件语句:从入门到精通

导语条件语句是编程中的基础概念,它允许我们根据不同的条件执行不同的代码块。在Python中,条件语句的灵活性和易读性使其成为编写逻辑判断和流程控制的强大工具。本教程将带您深入了解Python条件语句的...

简单学Python——条件语句if

条件语句是用来判断给定的条件是否满足(表达式值是否为0或False),并根据判断的结果(真或假)决定执行的语句。Python条件语句用的是if或if和else、elif等搭配实现的。代码执行的过程:i...

Python合集之Python跳转语句(一)

在上一节的合集中,我们了解了Python循环嵌套语句的相关知识,本节我们将进一步了解一下Python跳转语句中的break的相关知识。当循环条件一直满足时,程序会一直执行下去,如果希望在中间离开循环...

新手学Python避坑,学习效率狂飙! 八、Python 布尔值判断

布尔值判断系统知识在Python里,布尔类型仅有两个值:True和False,它们常被用于条件判断。下面从几个方面展开介绍:1.布尔运算逻辑与(and):只有当两个操作数都为True时,...

取消回复欢迎 发表评论: