Nginx服务编译搭建

官方中文网站

简介

起源:

世界第二大web服务器软件,以高并发、低消耗著称,源自于俄罗斯,创建者 Igor(伊戈尔),2004年开源,最早以代理服务器的身份出现,2015成立nginx公司,
2019年以6.7亿被F5 Networks公司收购。

nginx的基础特性:

模块化设计,较好的扩展性
高可靠性
支持热部署,不停机更新配置文件,升级版本,更换日志文件
低内存消耗,10000个keep-alive下的非活动连接,仅需2.5M内存
event-driven(事件驱动),aio(异步非阻塞),mmap(内存映射),sendfile(代理转发)
基本功能:
静态资源的web服务器
http协议的反向代理
fastcgi、uWSGI(python)
pop3/imap4邮件反向代理
模块化,zip、ssl等模块

nginx进程结构:
Master/Worker 结构:一个 master 进程,生成一个或多个 worker 进程。

master:
	读取nginx配置文件,验证有效性和正确性
	建立、绑定和关闭socket连接
	接受外界指令,比如重启、开、关服务
	不中断服务,平滑升级
	处理perl脚本
worker:
	接受处理客户的请求(按模块区分)
	I/O调用
	与后端服务器通信
	缓存数据
	发送请求结果
	接受主程序的指令

nginx模块:
核心模块:core module
标准模块:
ngx_http_*
ngx_mail_*
ngx_upstream_*

注:本实验为单机部署,实验前确保网络能正常上网

配置文件及参数
全局配置文件:/etc/nginx/nginx.conf
虚拟主机配置:/etc/nginx/conf.d/*.conf

前提条件

关闭selinux

输入getenforce 获取当前selinux状态

Enforcing为开启,Disabled为关闭

临时关闭 # sudo setenforce 0

永久关闭 # sudo vi /etc/sysconfig/selinux

开放nginx的80端口号

firewall-cmd --zone=public --add-port=80/tcp --permanent

重启防火墙

firewall-cmd --reload

查看端口号是否开启

firewall-cmd --query-port=80/tcp

.3.检查是否已安装rpm包nginx

rpm -q nginx \\查看是否安装

nginx安装和配置:

安装前提软件环境

yum -y install gcc gcc-c++ make libtool zlib zlib-devel pcre pcre-devel`openssl openssl-devel

复制nginx和缓存包到/usr/src,解压

useradd -s /sbin/nologin nginx
cd /usr/src
tar zxf master.tar.gz
tar zxf ngx_cache_purge-2.3.tar.gz 
tar zxf nginx-1.12.0.tar.gz 

编译安装nginx

cd /usr/src/nginx-1.12.0
	./configure --prefix=/usr/local/nginx --user=nginx --group=nginx \
--with-http_stub_status_module --with-http_realip_module --with-http_ssl_module \
--with-http_gzip_static_module --http-client-body-temp-path=/var/tmp/nginx/client \
--http-proxy-temp-path=/var/tmp/nginx/proxy --http-fastcgi-temp-path=/var/tmp/nginx/fcgi \
--with-pcre --add-module=../ngx_cache_purge-2.3 --with-http_flv_module \
--add-module=../nginx-goodies-nginx-sticky-module-ng-08a395c66e42 \
&&make&&make install 

添加nginx系统服务并启动

ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
mkdir -p /var/tmp/nginx/client
chown -R nginx:nginx /var/tmp/nginx
vim /etc/init.d/nginx

添加启动脚本

#!/bin/bash
PROG="/usr/local/nginx/sbin/nginx"
PIDF="/usr/local/nginx/logs/nginx.pid"
case "$1" in
 start)
 netstat -anplt |grep ":80" &> /dev/null && pgrep "nginx" &> /dev/null
 if [ $? -eq 0 ]
 then
 echo "Nginx service already running."
 else
 $PROG -t &> /dev/null
 if [ $? -eq 0 ] ; then
 $PROG
 echo "Nginx service start success."
 else
 $PROG -t
fi
 fi
 ;;
 stop)
 netstat -anplt |grep ":80" &> /dev/null && pgrep "nginx" &> /dev/null
 if [ $? -eq 0 ]
 then
 kill -s QUIT $(cat $PIDF)
 echo "Nginx service stop success." 
 else
 echo "Nginx service already stop"
fi
 ;;
 restart)
 $0 stop
 $0 start
 ;;
 status)
 netstat -anplt |grep ":80" &> /dev/null && pgrep "nginx" &> /dev/null
 if [ $? -eq 0 ]
 then
 echo "Nginx service is running."
 else
 echo "Nginx is stop."
 fi
 ;;
 reload)
 netstat -anplt |grep ":80" &> /dev/null && pgrep "nginx" &> /dev/null
 if [ $? -eq 0 ]
 then
 $PROG -t &> /dev/null
 if [ $? -eq 0 ] ; then
 kill -s HUP $(cat $PIDF)
 echo "reload Nginx config success."
 else
 $PROG -t
 fi
 else
echo "Nginx service is not run."
 fi
 ;;
 *)
 echo "Usage: $0 {start|stop|restart|reload}"
 exit 1
esac

启动nginx服务

chmod +x /etc/init.d/nginx
chkconfig --add nginx 
chkconfig nginx on
service nginx start
netstat -anpt | grep nginx 

查看版本

nginx -v

查看模块

nginx -V

安装包在文件里免费下载:nginx编译安装包.rar

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

北京Play

如有更多需要请多多关照

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

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

打赏作者

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

抵扣说明:

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

余额充值