中间件nginx

一.nginx概述
1.1 Docker ⾃建DNS服务器(/etc/hosts创建;注册域名)
1.搭建
搭建依然使⽤docker,安装前请安装好docker的运⾏时环境。

使⽤容器创建应⽤

docker run --name bind -d --restart=always
--publish 53:53/tcp --publish 53:53/udp --publish 10000:10000/tcp
--volume /opt/docker/bind:/data
sameersbn/bind:9.16.1-20200524
2.访问
使⽤你的https://ip:10000在浏览器中打开。
账号: root/password
调整语⾔为中⽂,部分菜单可能仍会显示为英⽂

创建⼀个持久化存放⽂件的⽬录

mkdir -p /opt/docker/bind
1.2 Nginx应⽤场景
静态处理
反向代理
负载均衡
资源缓存
安全防护
访问限制
访问认证
1.3 Nginx优秀特性

  1. ⾼性能和⾼并发。
  2. 处理静态⽂件效率⾼。
  3. 轻量级和低内存消耗。
  4. 可扩展性强。
  5. ⽀持反向代理和负载均衡。
  6. 社区活跃和丰富的⽂档资源。
    1.4 Nginx采⽤IO多路复⽤
    IO多路复⽤的实现⽅式有select、poll、 Epool
    1.5 sendfile函数
    在两个文件描述符之间传递数据(完全在内核中操作),从而避免了内核缓冲区和用户缓冲区之间的数据拷贝,效率很高,被称为零拷贝。
    二.Nginx快速安装
    1.yum安装
    //确认系统⽹络
    [root@Nginx ~]# ping baidu.com
    //关闭firewalld
    [root@Nginx ~]# systemctl stop firewalld
    [root@Nginx ~]# systemctl disable firewalld
    //临时关闭selinux
    [root@Nginx ~]# setenforce 0
    //初始化基本⽬录
    [root@Nginx ~]# mkdir /soft/{code,logs,package,backup} -p
    //基本安装包
    [root@Nginx ~]# yum install -y gcc gcc-c++ autoconf
    pcre pcre-devel make automake wget httpd-tools vim tree
    //配置Nginx官⽅Yum源
    [root@Nginx ~]# vim /etc/yum.repos.d/nginx.repo
    [nginx]
    name=nginx repo
    baseurl=http://nginx.org/packages/centos/7/$basearch/
    gpgcheck=0
    enabled=1
    //安装Nginx
    [root@Nginx ~]# yum install nginx -y
    //查看Nginx当前版本
    [root@Nginx ~]# nginx -v
    nginx version: nginx/1.24.0
    2.Nginx安装⽬录
    [root@Nginx ~]# rpm -ql nginx
    3.Nginx编译参数
    nginx -V //查看Nginx编译参数
    4.Nginx常⽤模块
    ngx_http_access_module 访问控制模块,⽤来控制⽹站⽤户对Nginx的访问
    ngx_http_gzip_module 压缩模块,对Nginx返回的数据压缩,属于性能优化模块
    ngx_http_proxy_module proxy代理模块
    ngx_http_upstream_module 负载均衡模块,可以实现⽹站的负载均衡功能及节点的健康检查。
    ngx_http_rewrite_module URL地址重写模块
    ngx_http_log_module 访问⽇志模块,以指定的格式记录Nginx客户访问⽇志等信息
    ngx_http_auth_basic_module Web认证模块,设置Web⽤户通过账号密码访问Nginx
    nginx_http_ssl_module ssl模块,⽤于加密的http连接,如https
    5.Nginx内置变量
    $request_method: 请求⽅法, GET POST PUT DELET
    6.Nginx编译安装
    安装依赖 prce(重定向⽀持)和openssl(https⽀持,如果不需要https可以不安装。
    yum install -y pcre-devel
    yum -y install gcc make gcc-c++ wget
    yum -y install openssl openssl-devel
    下载 wget http://nginx.org/download/nginx-1.23.3.tar.gz

解压压缩包

tar zxf nginx-1.23.3.tar.gz
Nginx编译安装
cd nginx-1.23.3
./configure --prefix=/usr/local/nginx
--with-http_ssl_module
--with-http_v2_module
--with-http_realip_module
--with-http_gzip_static_module
--with-http_stub_status_module
--with-stream_ssl_module
--with-stream_realip_module
--with-pcre
--with-pcre-jit
--with-threads
--with-file-aio
--with-http_sub_module
安装报错误的话⽐如:“C compiler cc is not found”,这个就是缺少编译环境,安装⼀下就可以了 yum -y install
gcc make gcc-c++ openssl-devel
如果没有error信息,就可以执⾏下边的安装了:
make
make install
7.nginx测试
cd /usr/local/nginx/sbin/
./nginx -t
./nginx -V
设置全局nginx命令:
将下⾯内容添加到 /etc/profile ⽂件中
PATH=$PATH:$HOME/bin:/usr/local/nginx/sbin/
运⾏命令 source /etc/profile 让配置⽴即⽣效。
8.开机⾃启动的两种方式
(1)开机⾃启动⽅法⼀:
编辑 vi /usr/lib/systemd/system/nginx.service ⽂件,没有创建⼀个 touch nginx.service 然后将如下内容根
据具体情况进⾏修改后,添加到nginx.service⽂件中:
cat > /usr/lib/systemd/system/nginx.service <<EOF
[Unit]
Description=nginx
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
PrivateTmp=true
[Install]
WantedBy=multi-user.target
EOF

systemctl daemon-reload
设置开机启动,使配置⽣效:

启动nginx服务

systemctl start nginx.service

停⽌开机⾃启动

systemctl disable nginx.service

查看服务当前状态

systemctl status nginx.service

查看所有已启动的服务

systemctl list-units --type=service

重新启动服务

systemctl restart nginx.service

设置开机⾃启动

systemctl enable nginx.service
(2)开机⾃启动⽅法⼆:
vi /etc/rc.local

在 rc.local ⽂件中,添加下⾯这条命令

/usr/local/nginx/sbin/nginx
如果开机后发现⾃启动脚本没有执⾏,你要去确认⼀下rc.local这个⽂件的访问权限是否是可执⾏的,因为rc.local
默认是不可执⾏的。修改rc.local访问权限,增加可执⾏权限:

/etc/rc.local是/etc/rc.d/rc.local的软连接,

chmod +x /etc/rc.d/rc.local
9.⼆进制安装
yum install gcc-c++ pcre pcre-devel zlib zlib-devel penssl openssl-devel
tar czf nginx-1.23.3.tar.gz nginx/
tar xf nginx-1.23.3.tar.gz
10.运维Nginx
(1)服务管理

启动

/usr/local/nginx/sbin/nginx

重新配置

/usr/local/nginx/sbin/nginx -s reload

关闭进程

/usr/local/nginx/sbin/nginx -s stop

平滑关闭nginx

/usr/local/nginx/sbin/nginx -s quit

查看nginx的安装信息模块

/usr/local/nginx/sbin/nginx -V
(2)nginx卸载
编译/⼆进制安装卸载

停⽌nginx

nginx -s stop

删除

rm -r /usr/local/nginx
rm /usr/lib/systemd/system/nginx.service //编译安装,删除/usr/local/nginx⽬录即可 如果配置了⾃启动脚本,也需要删除。
yum安装卸载
yum remove nginx

posted @ 2025-02-18 17:08  SRE-DEVOPS  阅读(30)  评论(0)    收藏  举报