CentOS7.9下nginx的安装与配置(实现任意目录下均可直接执行 nginx 命令,以及开机自启动)

目录

1.​​​​​​Nginx介绍

2.Nginx和apache的优缺点

2.1nginx相对于apache的优点:

2.2apache 相对于nginx 的优点:

3.Tengine介绍

        3.1tengine

3.2tengine和nginx性能测试

4.nginx安装

4.1.安装源码编译以及Nginx依赖的库

4.2下载nginx-1.20.1.tar.gz

4.2.1官网 :http://nginx.org/en/download.html

4.2.2上传nginx-1.20.1.tar.gz

 4.3解压并配置

4.3.1解压

4.3.2目录详解

4.3.3生成 makefile,编译并安装

5.nginx  命令随处可用

方式一 、  service命令

设置开机启动

方式二:systemctl命令

设置开机自启

服务命令


1.​​​​​​Nginx介绍

  1. Nginx ("engine x") 是一个高性能的 静态HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器。
  2. 第一个公开版本0.1.0发布于2004年10月4日。
  3. 其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名
  4. 官方测试nginx能够支撑5万并发链接,并且cpu、内存等资源消耗却非常低,运行非常稳定
  5. 2011年6月1日,nginx 1.0.4发布。apache httpd
  6. Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。由俄罗斯的程序设计师Igor Sysoev所开发,其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:新浪、网易、腾讯等。

2.Nginx和apache的优缺点

2.1nginx相对于apache的优点:

轻量级,同样起web 服务,比apache 占用更少的内存及资源

抗并发,nginx 处理请求是异步非阻塞(可参考文章快速掌握NIO和BIO有何不同? - 知乎的,而apache 则是阻塞型的,在高并发下nginx 能保持低资源低消耗高性能  NIO netty NIO

高度模块化的设计,编写模块相对简单

社区活跃,各种高性能模块出品迅速

2.2apache 相对于nginx 的优点:

rewrite ,比nginx 的rewrite 强大

模块超多,基本想到的都可以找到

少bug ,nginx 的bug 相对较多

Nginx 配置简洁, Apache 复杂

最核心的区别在于apache是同步多进程模型,一个连接对应一个进程;nginx是异步的,多个连接(万级别)可以对应一个进程

3.Tengine介绍

3.1tengine

网址:The Tengine Web Server

Tengine是由淘宝网发起的Web服务器项目。它在Nginx的基础上,针对大访问量网站的需求,添加了很多高级功能和特性。Tengine的性能和稳定性已经在大型的网站如淘宝网,天猫商城等得到了很好的检验。它的最终目标是打造一个高效、稳定、安全、易用的Web平台。

从2011年12月开始,Tengine成为一个开源项目,Tengine团队在积极地开发和维护着它。Tengine团队的核心成员来自于淘宝、搜狗等互联网企业。Tengine是社区合作的成果,我们欢迎大家参与其中,贡献自己的力量。

3.2tengine和nginx性能测试

tengine和nginx性能测试(参考一下网址):

Tengine & Nginx性能测试 - The Tengine Web Server

1.Tengine相比Nginx默认配置,提升200%的处理能力。

2.Tengine相比Nginx优化配置,提升60%的处理能力。

tengine更详细参数解释详见:

http://tengine.taobao.org/nginx_docs/cn/docs/

4.nginx安装

4.1.安装源码编译以及Nginx依赖的库

yum install gcc gcc-c++ pcre  pcre-devel openssl openssl-devel zlib  zlib-devel -y

4.2下载nginx-1.20.1.tar.gz

4.2.1官网 :nginx: download

官网将压缩包分成三部分:

Mainline versionStable version        主线版本

Stable version                                  稳定的版本

Legacy versions                               遗留版本

选择自己需要的版本进行下载(我下载的是nginx-1.20.1)

备注:可以选择

4.2.2上传nginx-1.20.1.tar.gz

下载至本地后通过Xftp上传至虚拟机中

 4.3解压并配置

4.3.1解压

[root@nginx1 apps]# tar -zxvf nginx-1.16.1.tar.gz

4.3.2目录详解

 进入解压后的nginx-1.20.1文件中

[root@nginx1 nginx-1.20.1]# ll

查看 Nginx 的目录。

查看 Nginx 的目录。

其中各个目录中存放的文件作用为:

l  auto:存放 Nginx 自动安装的相关文件

l  conf:存放 Nginx 服务器配置文件

l  configure:命令,用于对即将安装的软件的配置,完成 makefile 编译文件的生成

l  contrib:存放由其他机构贡献的文档材料

l  html:存放 Nginx 欢迎页面

l  man:manual,手册,存放 Nginx 帮助文档

l  src:存放 Nginx 源码

4.3.3生成 makefile,编译并安装

指定安装目录和https访问支持:

[root@nginx1 nginx-1.20.1]# ./configure 
--prefix=/opt/nginx 
--with-http_ssl_module 
--with-http_gzip_static_module 
--error-log-path=/var/log/nginx/nginx.log 
--pid-path=/var/log/nginx/pid

 编译(make)并安装(make install)

[root@nginx1 nginx-1.20.1]# make && make install

安装目录/opt/nginx 中有一个 sbin 目录,其中存放着 nginx 的命令程序nginx。默认情况下,若要使用 nginx 命令,则必须要在/opt/nginx/sbin 目录中,或指定命令路径。

 

 启动:(在sbin目录中)

./nginx

停止:

./nginx -s stop

重启:

./nginx -s reload

5.nginx  命令随处可用

为了能够在任意目录下均可直接执行 nginx 命令,可通过以下两种方式完成。

方式一 、  service命令

添加安装的nginx到服务列表:将如下内容添加到/etc/init.d/nginx脚本中,nginx需要具有可执行权限。注意替换自己系统的nginx路径。

[root@nginx1 nginx-1.16.1]# vim /etc/init.d/nginx



#!/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:      /etc/nginx/nginx.conf
# config:      /etc/sysconfig/nginx
# pidfile:     /var/run/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="/opt/nginx/sbin/nginx"
prog=$(basename $nginx)
 
NGINX_CONF_FILE="/opt/nginx/conf/nginx.conf"
 
[ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx
 
lockfile=/var/lock/subsys/nginx
 
make_dirs() {
   # make required directories
   user=`nginx -V 2>&1 | grep "configure arguments:" | sed 's/[^*]*--user=\([^ ]*\).*/\1/g' -`
   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

修改nginx文件的执行权限

chmod +x nginx

添加该文件到系统服务中去

chkconfig --add nginx

查看是否添加成功

chkconfig --list nginx

启动,停止,重新装载

service nginx start|stop|reload

设置开机启动

[root@nginx1 conf]# chkconfig nginx on

[root@nginx1 conf]# chkconfig

nginx           0:off 1:off 2:on 3:on 4:on 5:on 6:off

方式二:systemctl命令

步骤
1.进入**/usr/lib/systemd/system**

cd /usr/lib/systemd/system


2.创建nginx.service

touch nginx.service


3.vim编辑nginx.service,里面的路径根据自己实际情况修改

[Unit]
Description=nginx
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/tengine/sbin/nginx    #修改为自己系统对应的路径
ExecReload=/usr/local/tengine/sbin/nginx -s reload #修改为自己系统对应的路径
ExecStop=/usr/local/tengine/sbin/nginx -s quit    #修改为自己系统对应的路径
PrivateTmp=true

[Install]
WantedBy=multi-user.target


设置开机自启

systemctl enable nginx.service

想关闭运行命令

systemctl disable nginx.service 



服务命令

systemctl start nginx.service   #开启
systemctl stop nginx.service    #关闭
systemctl reload nginx.service  #重新加载配置
systemctl status nginx.service  #查看状态

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ErYao7

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值