目录
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官网:/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介绍
Nginx ("engine x") 是一个高性能的 静态HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器。第一个公开版本0.1.0发布于10月4日。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名官方测试nginx能够支撑5万并发链接,并且cpu、内存等资源消耗却非常低,运行非常稳定6月1日,nginx 1.0.4发布。apache httpdNginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。由俄罗斯的程序设计师Igor Sysoev所开发,其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:新浪、网易、腾讯等。2.Nginx和apache的优缺点
2.1nginx相对于apache的优点:
轻量级,同样起web 服务,比apache 占用更少的内存及资源
抗并发,nginx 处理请求是异步非阻塞(可参考文章快速掌握NIO和BIO有何不同? - 知乎)的,而apache 则是阻塞型的,在高并发下nginx 能保持低资源低消耗高性能 NIO nettyNIO
高度模块化的设计,编写模块相对简单
社区活跃,各种高性能模块出品迅速
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平台。
从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更详细参数解释详见:
/nginx_docs/cn/docs/
4.nginx安装
4.1.安装源码编译以及Nginx依赖的库
yuminstall 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 0nginx="/opt/nginx/sbin/nginx"prog=$(basename $nginx)NGINX_CONF_FILE="/opt/nginx/conf/nginx.conf"[ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginxlockfile=/var/lock/subsys/nginxmake_dirs() {# make required directoriesuser=`nginx -V 2>&1 | grep "configure arguments:" | sed 's/[^*]*--user=\([^ ]*\).*/\1/g' -`options=`$nginx -V 2>&1 | grep 'configure arguments:'`for opt in $options; doif [ `echo $opt | grep '.*-temp-path'` ]; thenvalue=`echo $opt | cut -d "=" -f 2`if [ ! -d "$value" ]; then# echo "creating" $valuemkdir -p $value && chown -R $user $valuefifidone}start() {[ -x $nginx ] || exit 5[ -f $NGINX_CONF_FILE ] || exit 6make_dirsecho -n $"Starting $prog: "daemon $nginx -c $NGINX_CONF_FILEretval=$?echo[ $retval -eq 0 ] && touch $lockfilereturn $retval}stop() {echo -n $"Stopping $prog: "killproc $prog -QUITretval=$?echo[ $retval -eq 0 ] && rm -f $lockfilereturn $retval}restart() {configtest || return $?stopsleep 1start}reload() {configtest || return $?echo -n $"Reloading $prog: "killproc $nginx -HUPRETVAL=$?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" instart)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 2esac
修改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=nginxAfter=network.target[Service]Type=forkingExecStart=/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 #查看状态
如果觉得《CentOS7.9下nginx的安装与配置(实现任意目录下均可直接执行 nginx 命令 以及开机自启动)》对你有帮助,请点赞、收藏,并留下你的观点哦!