中间件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.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

浙公网安备 33010602011771号