当前位置:   article > 正文

Nginx软件的安装及使用

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

#建立文件

  1. [Unit]
  2. Description=nginx - high performance web server
  3. Documentation=http://nginx.org/en/docs/
  4. After=network-online.target remote-fs.target nss-lookup.target
  5. Wants=network-online.target
  6. [Service]
  7. Type=forking
  8. PIDFile=/apps/nginx/logs/nginx.pid
  9. #注意文件位置,如果不对 启动不了
  10. ExecStart=/apps/nginx/sbin/nginx -c /apps/nginx/conf/nginx.conf
  11. #注意启动文件位置
  12. ExecReload=/bin/kill -s HUP $MAINPID
  13. ExecStop=/bin/kill -s TERM $MAINPID
  14. LimitNOFILE=100000
  15. [Install]
  16. WantedBy=multi-user.target

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

  1. mkdir /apps/nginx/run/
  2. #创建目录
  3. vim /apps/nginx/conf/nginx.conf
  4. #修改配置文件
  5. pid   /apps/nginx/run/nginx.pid;
  6. #找到 pid的位置修改 

systemctl daemon-reload

#重新加载配置

systemctl enable --now nginx

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

chown -R nginx.nginx /apps/nginx

#修改权限

yum安装nginx

  1. centos7 需要安装epel源
  2. yum install -y epel-release
  3. #安装epel源   额外      rpeo
  4. yum install nginx -y

nginx命令

  1. nginx 命令支持向其发送信号,实现不同功能
  2. nginx 当做单独命令使用有以下选项
  3. nginx   -t   检查语法
  4. nginx  -T   检查语法 并打印所有配置
  5. nginx  -v   显示版本
  6. nginx -V  显示详细信息, 包括 编译的信息
  7. nginx -c  指定配置文件启动
  8. 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

飞行中升级

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/人工智能uu/article/detail/785446
推荐阅读
相关标签
  

闽ICP备14008679号