Nginx的概述和配置

一、Nginx概述1.1Nginx的特点(1)一款高性能、轻量级web服务

  • 稳定性高
  • 系统资源消耗低高
  • 对HTTP并发连接的处理能力
(2)单台物理服务器可支持30000~50000个并发请求
1.2 Nginx编译安装
  • 安装支持软件
  • 创建运行用户、组
  • 编译安装Nginx
1.3Nginx运行控制
  • 检查配置文件
  • 启动、重载配置、停止Nginx
1.4Nginx和Apache的区别(1)nginx相对于apache的优点∶
  • 轻量级,同样起web服务,比apache占用更少的内存及资源
  • 抗并发,nginx处理请求是异步非阻塞的,而apache是阻塞型的,在高并发下,nginx能保持低资源低消耗高性能
  • 高度模块化的设计,编写模块相对简单
(2)apache相对于nginx的优点∶
  • Rewrite比nginx的rewrite强大 (rewrite的主要功能就是实现统一资源定位符URL的跳转)
  • 模块多,基本想到的都可以找到
  • 少bug,nginx的bug相对较多
  • 超稳定
总结:一般来说,需要性能的web服务,用nginx 。若不需要性能只求稳定,就选用apache
二、编译安装Nginx服务的操作步骤2.1关闭防火墙,将安装nginx所需软件包传到/opt目录下systemctl stop firewalldsystemctl disable firewalldsetenforce 0# 将压缩包传入到/opt目录下nginx-1.12.2.tar.gz2.2安装依赖包【Nginx的概述和配置】nginx的配置及运行需要pcre、zlib等软件包的支持,因此需要安装这些安装的开发包,以便提供相应的库和头文件
yum install -y pcre-devel zlib-devel gcc gcc-c++ make2.3创建运行用户、组(Nginx 服务程序默认以 nobody 身份运行,建议为其创建专门的用户账号,以便更准确地控制其访问权限)useradd -M -s /sbin/nologin nginx2.4编译安装nginxcd /opttar zxvf nginx-1.12.2.tar.gz./configure \> --prefix=/usr/local/nginx \#指定nginx的安装路径> --user=nginx \#指定用户名> --group=nginx \#指定组名> --with-http_stub_status_module#启用 http_stub_status_module模块以变持状态线计 make && make installln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/##让系统识别nginx的操作命令2.5检查、启动、重启、停止 nginx服务nginx -t#检查配置文件是否配置正确#启动:nginx#停止cat /usr/local/nginx/logs/nginx.pid#先查看nginx的PID号kill -3 <PID号>#直接杀死kill -s QUIT <PID号>#优雅的杀死()killall -3 nginxkillall -s QUIT nginx#重载kill -1 <PID号>kill -s HUP <PID号>killall -1 nginxkillall -s HUP nginx#日志分割,重新打开日志文件kill -USR1 <PID号>#平滑升级kill -USR2 <PID号>新版本升级∶tar -zxvf nginx-1.xx.xX. tar.gzcd nginx-1.xx. xx./configure \--prefix=/usr/local/nginx \--user=nginx \--group=nginx \--with-http_stub_status_module \--with-http_ssl_modulemakemv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx_oldcp objs/nginx /usr/local/nginx/sbin/nginxmake upgrade 或者先 killall nginx,再/usr/local/nginx/sbin/nginx2.6添加nginx系统服务方法一:vim /etc/init.d/nginx#创建脚本文件内容如下:#!/bin/bash#chkconfig: - 99 20#description:Nginx Server Control ScriptCOM="/usr/local/nginx/sbin/nginx"PID="/usr/local/nginx/logs/nginx.pid"case "$1" instart)$COM;;stop)kill -s QUIT $(cat $PID);;restart)$0 stop$0 start;;reload)kill -s HUP $(cat $PID);;*)echo "Usage:$0 {start|stop|restart|reload}"exit 1esacexit 0chmod +x /etc/init.d/nginxchkconfig --add nginxsystemctl daemon-reload#磁盘上的ngin服务更改,运行'systemctl daemon-reload'重新加载单元 。systemctl start nginxsystemctl stop nginx方法二:vim /lib/systemd/system/nginx.service[Unit]Description=nginxAfter=network.target[Service]Type=forkingPIDFile=/usr/local/nginx/logs/nginx.pidExecStart=/usr/local/nginx/sbin/nginxExecrReload=/bin/kill -s HUP SMAINPIDExecrStop=/bin/kill-s QUIT $MAINPIDPrivateTmp=true[Install]WantedBy=multi-user.target

经验总结扩展阅读