Nginx软件的安装及使用

Nginx概述

Nginx功能介绍

  • 静态的web资源服务器html,图片,js,css,txt等静态资源
  • http/https协议的反向代理  ,7层 url
  • 结合FastCGI   /uWSGI/SCGI等协议反向代理动态资源请求
  • tcp/udp协议的请求转发(反向代理)  4层

基础特性:

  • 模块化设计,较好的扩展性
  • 高可靠性
  • 支持热部署:不停机更新配置文件,升级版本,更换日志文件
  • 低内存消耗:10000个keep-alive连接模式下的非活动连接,仅需2.5M内存
  • event-driven,   aio,        mmap,sendfile

Web服务相关的功能

  • 虚拟主机(server)
  • 支持 keep-alive 和管道连接(利用一个连接做多次请求)
  • 访问日志(支持基于日志缓冲提高其性能)
  • url rewirte 
  • 路径别名
  • 基于IP及用户的访问控制
  • 支持速率限制及并发数限制
  • 重新配置和在线升级而无须中断客户的工作进程

Nginx架构:master + woker

主进程(master process)的功能:用来管理工作进程。

工作进程(worker process)的功能:用来处理用户的请求。

Nginx模块

  • 核心模块:是 Nginx 服务器正常运行必不可少的模块,提供错误日志记录 、配置文件解析 、事件驱动机制 、进程管理等核心功能
  • 标准HTTP模块:提供 HTTP 协议解析相关的功能,比如: 端口配置 、 网页编码设置 、 HTTP响应头设置 等等
  • 可选HTTP模块:主要用于扩展标准的 HTTP 功能,让 Nginx 能处理一些特殊的服务,比如:Flash 多媒体传输 、解析 GeoIP 请求、 网络传输压缩 、 安全协议 SSL 支持等 
  • 邮件服务模块:主要用于支持 Nginx 的 邮件服务 ,包括对 POP3 协议、 IMAP 协议和 SMTP协议的支持
  • Stream服务模块: 实现反向代理功能,包括TCP协议代理     四层
  • 第三方模块:是为了扩展 Nginx 服务器应用,完成开发者自定义功能,比如: Json 支持、 Lua 支持等

nginx高度模块化,但其模块早期不支持DSO机制;1.9.11 版本支持动态装载和卸载

常用模块

ngx_http_core_module             核心模块

ngx_http_access_module          访问控制  deny   allow

ngx_http_auth_basic_module   身份验证

ngx_http_gzip_module             压缩模块

ngx_http_log_module               日志模块

ngx_http_proxy_module           代理模块

ngx_http_rewrite_module         重写模块

ngx_http_stub_status_module  状态页模块

ngx_http_upstream_module     反向代理

ngx_http_stream_module         四层代理

安装及使用Nginx

1编译安装nginx

源码包内的文件:

  • contrib:vim 格式文件,修改nginx配置文件的格式,高亮                                                                                                                                                                                                                        cp -r /opt/nginx-1.18.0/contrib/vim/*    /usr/share/vim/vimfiles/ 
  • conf:配置文件
  • man:man帮助   man   man/nginx.8    不加路径看不了  nginx.8 文件
  • src:源码包  点c  点h 结尾的文件                                                                                                                                                                                                                                                                    find src -type f |xargs cat |wc -l  193678

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

#安装依赖包  

useradd -M -s /sbin/nologin nginx

#新建nginx用户便于管理

cd /opt/

wget http://nginx.org/download/nginx-1.18.0.tar.gz

#官网下载安装包

tar xf nginx-1.18.0.tar.gz

cd nginx-1.18.0/

#解压软件包

mkdir /apps/nginx -p

./configure --help  

#查看帮助模块

./configure --prefix=/apps/nginx \

--user=nginx \

--group=nginx \

--with-http_ssl_module \

--with-http_v2_module \

--with-http_realip_module \

--with-http_stub_status_module \

--with-http_gzip_static_module \

--with-pcre \

--with-stream \

--with-stream_ssl_module \

--with-stream_realip_module

make -j2 && make install   

#编译并安装

chown -R nginx.nginx /apps/nginx

#修改权限

启动停止nginx

/apps/nginx/sbin/nginx

#绝对路径启动

ln -s /apps/nginx/sbin/nginx /usr/sbin/

#创建软连接后直接 nginx启动

停止nginx

killall  nginx

创建Nginx 自启动文件

#复制同一版本的nginx的yum安装生成的service文件

vim /usr/lib/systemd/system/nginx.service

#建立文件

[Unit]
Description=nginx - high performance web server
Documentation=http://nginx.org/en/docs/
After=network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target

[Service]
Type=forking
PIDFile=/apps/nginx/logs/nginx.pid
#注意文件位置,如果不对 启动不了
ExecStart=/apps/nginx/sbin/nginx -c /apps/nginx/conf/nginx.conf
#注意启动文件位置
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s TERM $MAINPID
LimitNOFILE=100000

[Install]
WantedBy=multi-user.target

###如果需要修改pid文件可以执行以下操作#################

mkdir /apps/nginx/run/

#创建目录

vim /apps/nginx/conf/nginx.conf

#修改配置文件

pid   /apps/nginx/run/nginx.pid;

#找到 pid的位置修改 

systemctl daemon-reload

#重新加载配置

systemctl enable --now nginx

#开机自启并立即启动    如果卡主是应为logs下有 nginx.pid  文件  删除即可

chown -R nginx.nginx /apps/nginx

#修改权限

yum安装nginx

centos7 需要安装epel源

yum install -y epel-release

#安装epel源   额外      rpeo

yum install nginx -y

nginx命令

nginx 命令支持向其发送信号,实现不同功能
nginx 当做单独命令使用有以下选项
nginx   -t   检查语法
nginx  -T   检查语法 并打印所有配置
nginx  -v   显示版本
nginx -V  显示详细信息, 包括 编译的信息
nginx -c  指定配置文件启动
nginx  -s  = kill   发送信号

nginx  -s  relaod    重新加载配置文件

nginx  -s  stop       停止nginx   立即停止

nginx  -s   quit       优雅的退出  , 如果有人在访问我的服务, 那么不会立即关闭, 等客户断开连接再 退出

nginx  -s    reopen   重新生成日志文件   USR1   日志 有关

nginx  -s    USR2    飞行中升级

nginx命令

kill命令

含义

nginx -s reload

kill -s HUP

重新加载配置文件

nginx -s stop

kill -9(KILL)

立即停止

nginx -s quit

kill -3(QUITt)

优雅的退出

nginx -s reopen

kill -s USR1

重新生成日志文件

nginx

kill -s USR2

飞行中升级

  • 25
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值