Web服务器群集--Nginx网站服务(运行控制,访问状态统计,基于授权和客户端的访问控制,基于域名,端口,IP的虚拟web主机访问)
文章目录
- 前言
- 一:Nginx服务基础
- 1.1:Nginx概述
- 1.2:Nginx编译安装(过程)
- 1.3:运行控制(实验过程)
- 1.4:配置文件nginx.conf
- 1.5:Nginx的访问状态统计(实验过程)
- 二:Nginx访问控制
- 2.1:基于授权的访问控制
- 2.2:基于客户端的访问控制
- 三:Nginx虚拟主机
- 3.1:Nginx虚拟主机应用
- 3.2:基于域名的虚拟Web主机
- 3.3:基于端口的虚拟web主机
- 3.4:基于IP的虚拟web主机
前言
- 在各种网站服务器软件中,除了Apache HTTP Server外,还有一款轻量级的HTTP服务器软件–Nginx,其稳定,高效的特性逐渐被越来越多的用户认可
- 其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名
- 其特点是:占有内存少,并发能力强
- 中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。
一:Nginx服务基础
1.1:Nginx概述
一款高性能、轻量级Web服务软件
●稳定性高
●系统资源消耗低
●对HTTP并发连接的处理能力高
●单台物理服务器可支持30 000 ~ 50000个并发请求
●占用内存少,并发能力强
1.2:Nginx编译安装(过程)
安装支持软件
[root@localhost ~]# yum -y install gcc gcc-c++ make pcre-devel zlib-devel
创建运行用户、组
[root@localhost ~]# useradd -M -S /sbin/nologin nginx '//-M 不创建家目录'
编译安装Nginx
先mount.cifs挂载宿主机中的nginx软件包文件夹 [root@localhost ~]# tar zxvf nginx-1.12.2.tar.gz [root@localhost ~]# cd nginx-1.12.0 [root@localhost nginx-1.12.0]# ./configure \ --prefix=/usr/local/nginx \ --user=nginx \ --group=nginx \ --with-http_stub_ status_ module '//开启stub_status状态统计模块' [root@localhost nginx-1.12.0]# make && make install [root@localhost nginx-1.12.0]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin '//nginx命令执行路径优化' [root@locaThost nginx-1.12.0]# ls -l /usr/local/sbin/nginx Irwxrwxrwx 1root root27 5月16 16:50 /usr/local/sbin/nginx ->/usr/local/nginx/sbin/nginx
1.3:运行控制(实验过程)
检查配置文件
[root@localhost ~]# nginx -t '//检查'
启动、重载配置、停止Nginx
[root@localhost ~]# nginx '//启动' [root@localhost ~]# netstat -anpt | grep nginx tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 7180/nginx: master [root@localhost ~]# yum -y install elinks [root@localhost ~]# elinks http://localhost '//显示"Welcome to nginx!"页面,表明Nginx服务已经正常运行' [root@localhost ~]# killall -s HUP nginx '//-S选项指定信号种类,HUP信号表示重载配置' [root@localhost ~]# killall -s QUIT nginx '//QUIT信号表示退出进程'
Nginx添加为系统服务
第一种方法,使用systemctl工具进行管理
[root@localhost ~]# vim /lib/systemd/system/nginx.service '//添加使用systemctl工具进行管理' [Unit] Description=nginx '//描述' After=network.target '//描述服务类别'[Service] Type=forking '//后台运行形势' PIDFile =/usr/local/nginx/logs/nginx.pid '//PID文件位置' ExecStart=/usr/local/nginx/sbin/nginx '//启动服务' ExecReload=/usr/bin/kill -S HUP $MAINPID '//根据PID重载配置' ExecStop=/usr/bin/kill -S QUIT $MAINPID '//根据PID终止进程' PrivateTmp=true[Install] WantedBy=multi-user.target [root@localhost ~]# chmod 754 /lib/systemd/system/nginx.service
第二种方法,添加使用service工具进行管理
[root@localhost ~]# cd /etc/inid.d '//或者添加使用service工具进行管理' [root@localhost init.d]# ls [root@localhost init.d]# vim nginx #!/bin/bash # chkconfig: - 99 20 # description: Nginx Service Control Script PROG="/usr/local/nginx/sbin/nginx" PIDF="/usr/local/nginx/logs/nginx.pid" case "$1" instart)$PROG;;stop)kill -s QUIT $(cat $PIDF);;restart)$0 stop$0 start;;reload)kill -s HUP $(cat $PIDF);;*)echo "Usage: $0 {start|stop|restart|reload}"exit 1 esac exit 0 [root@localhost init.d]# chmod +x nginx [root@localhost init.d]# chkconfig --add nginx [root@localhost init.d]# chkconfig --level 35 nginx on
此时,开启服务,关闭防火墙,就可以访问nginx网址了
[root@localhost init.d]# service nginx start [root@localhost init.d]# systemctl stop firewalld [root@localhost init.d]# setenforce 0 [root@localhost init.d]# netstat -ntap | grep nginx
1.4:配置文件nginx.conf
全局配置
#user nobody; worker_ processes 1; #error_ log logs/error.log; #pid logs/nginx.pid;
1/O时间配置
events {use epoll;worker connections 4096; }
HTTP配置
http {....access_log logs/access.log main;sendfile on;...keepalive_ _timeout 65;server {listen 80;server name localhost;charset utf-8;location / {root html;index index.html index.php; }error_ page 500 502 503 504 /50x.html;location = /50x.html {root html; }} }
1.5:Nginx的访问状态统计(实验过程)
启用HTTP_ STUB_ STATUS状态统计模块
配置编译参数时添加–with-http stub status module
nginx -V查看已安装的Nginx是否包含HTTP_ STUB _STATUS模块
[root@localhost ~]# nginx -V nginx version: nginx/1.12.0 built by gcc 4.8.5 20150623 (Red Hat 4.8.5-11) (GCC) configure arguments: --prefix=/usr/local/nginx --user=nginx -- group= nginx --with-http_ stub_ status_ module
修改nginx.conf配置文件
[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf http{server {listen 80;server name localhost;charset utf-8;location / {root html;index index.html index.php;}location ~/status { '//添加此段'stub_ status on;access_ log off;}} }
查看当前的状态统计信息
二:Nginx访问控制
2.1:基于授权的访问控制
配置步骤与Apache基本一致
●生成用户密码认证文件
●修改主配置文件对相应目录,添加认证配置项
●重启服务,访问测试
生成用户密码认证文件
[root@localhost ~]# yum install -y httpd-tools '//因为没有htpasswd工具,所以需要安装' [root@localhost ~]# htpasswd -c /usr/local/nginx/passwd.db test New password: Re-type new password: Adding password for user test root@localhost ~]# cat /usr/local/nginx/ passwd.db test:$apr1$x.UaSXIM$RRLa2KJcKwsGBVsikGcrR/
修改主配置文件对相应目录,添加认证配置项
[root@localhost ~]# chmod 400 /usr/local/nginx/passwd.db [root@localhost ~]# chown nginx /usr/local/nginx/passwd.db [root@localhost ~]# ll -d /usr/local/nginx/passwd.db -r------- 1 nginx root43 5月16 22:26 /usr/local/nginx/passwd.db
重启服务,访问测试
[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf server {location / {auth_basic "secret";auth_basic_user_file /usr/local/nginx/passwd.db;}
此时访问网页会要求输入账号密码
2.2:基于客户端的访问控制
通过客户端IP地址,决定是否允许对页面访问
配置规则
deny IP/IP段:拒绝某个IP或IP段的客户端访问
allow IP/IP段:允许某个IP或IP段的客户端访问
规则从上往下执行,如匹配则停止,不再往下匹配
配置步骤
修改主配置文件nginx.conf,添加相应配置项
。除主机192.168.195.128之外允许其他客户端访问
[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf server {location/ {deny 192.168.195.128;allow all; }
访问测试,会报错403
三:Nginx虚拟主机
3.1:Nginx虚拟主机应用
Nginx支持的虚拟主机有三种
●基于域名的虚拟主机
●基于IP的虚拟主机
●基于端口的虚拟主机
通过"server{}" 配置段实现
3.2:基于域名的虚拟Web主机
配置步骤
●准备网站目录及测试文件
[root@localhost ~]# mkdir -p /var/www/html/erbao/ [root@localhost ~]# mkdir -p /var/www/html/sanbao/ [root@localhost ~]# echo "this is erbao" >> /var/www/html/erbao/index.html [root@localhost ~]# echo "this is sanbao" >> /var/www/html/sanbao/index.html [root@localhost ~]# yum install bind -y '//以下是配置DNS服务过程,具体内容不再赘述,如果不懂,翻阅我之前博客' [root@localhost ~]# vim /etc/named.conf [root@localhost ~]# vim /etc/named.rfc1912.zones [root@localhost ~]# cp -p /var/named/named.localhost /var/named/erbao.com.zone [root@localhost ~]# vim /var/named/erbao.com.zone [root@localhost ~]# cp -p /var/named/erbao.com.zone /var/named/sanbao.com.zone [root@localhost ~]# systemctl start named
●调整nginx.conf配置文件
server {listen 80;server name www.erbao.com;charset utf-8;access_log logs/www.erbao.access.log;location/ {root /var/www/html/btcom;...... }
这个简单,和通过域名访问即可
3.3:基于端口的虚拟web主机
配置步骤
修改配置文件
[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf server {listen 192.168.9.158:6666;server name 192.1 68.9.1 58:6666;......} server {listen 192.1 68.9.158:8888;server name 192.1 68.9.158:8888;......}
3.4:基于IP的虚拟web主机
配置步骤
主机配置两个IP地址
修改配置文件
[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf server {listen 192.168.9.1 58:80;server name 192.168.9.158:80;....} server {listen 192.168.9.1 10:80;server name 192.168.9.110:80;....}
Web服务器群集--Nginx网站服务(运行控制,访问状态统计,基于授权和客户端的访问控制,基于域名,端口,IP的虚拟web主机访问)相关推荐
- Web服务器群集——Nginx企业级优化
Nginx企业级优化 Nginx企业级优化 隐藏版本号 修改用户和组 配置网页缓存时间 日志切割 设置连接超时 更改进程数 配置网页压缩 配置防盗链 FPM参数优化 Nginx企业级优化 nginx. ...
- 四章——Nginx网站服务(应用——linux防护与群集)
三期总目录链接 目录 一.Nginx服务 1.安装及运行控制 2.配置文件nginx.conf 2.1全局配置 解释: 2.2 I/O事件配置 解释: 2.3 HTTP配置 解释: 3 ...
- 企业常用的Nginx网站服务相关配置
目录 一,内容概述 Nginx Apache 二,Apache三种工作模式 三,Linux的I/O 四,编译安装Nginx服务 五,认识 Nginx 服务的主配置文件 nginx.conf 六,访问状 ...
- Nginx网站服务与LNMP架构部署(详解)
Nginx网站服务与LNMP架构部署 1.Nginx服务基础 2.编译安装Ngiax 3.Nginx的运行控制 4.配置文件nginx.conf 5.Nginx虚拟主机 6.LNMP架构部署 1.源码 ...
- 回顾Nginx网站服务配置
Nginx简介 Nginx ("engine x") 是一个高性能的 HTTP 和反向代理服务器.Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.r ...
- nginx 根据目录指定root_部署Nginx网站服务实现访问状态统计以及访问控制功能
Nginx专为性能优化而开发,最知名的优点是它的稳定性和低系统资源消耗,以及对HTTP并发连接的高处理能力,单个物理服务器可支持30000-50000个并发请求. Nginx的安装文件可以从官方网站h ...
- 【Nginx网站服务】
安装Nginx服务 1.先去官网下载软件包 2.关闭防火墙,将安装nginx所需软件包传到/opt目录下 systemctl stop firewalld systemctl disable fire ...
- Nginx网站服务(安装nginx、平滑升级nginx、nginx各种访问配置)
文章目录 一.Nginx概述 1.什么是nginx? 2.Nginx应用场景 3.Nginx应用企业 4.nginx的HTTPD七层代理和四层代理 二.Nginx和Apache的区别 三.编译安装Ng ...
- Nginx网站服务配置(Nginx服务基础,访问状态统计,访问控制,虚拟主机)
编译安装Nginx服务 关闭防火墙,将安装 ngnix 所需的软件包上传到 /opt 目录下 安装依赖包 编译安装Nginx 创建运行用户.组 检查.启动.重载配.停止Nginx 增加Nginx系统服 ...
最新文章
- java spring 配置词典_java之spring mvc之拦截器
- python中最基本的系列_Python中最基本的10个内容
- 能留住女友的,都是王者
- relocation R_X86_64_PC32 against symbol lua_newstate can not be used when making a shared object
- 小米wifi 苹果驱动安装教程macOS Mojave 10.14,Sierra 10.12测试通过
- 电视无线dns服务器,电信电视dns遭到劫持,无线网络DNS被劫持了,怎么解决
- python 读excel每行替换_Python使用openpyxl读写excel文件
- 岗位、职位、职级、职务的区别
- Camera Tuning-高通平台总结
- 施耐德PLC初始IP地址计算
- RJ45接头接法(转)
- 北大核刊最新版2020目录_2021年一建教材出来了?最新版考点速记手册,早备考早通关...
- canvas画板之画笔的多种效果
- 华为平板 M3(青春版)ROOT教程 华为平板 M3一键root步骤
- JS实现右键拖动元素
- 一分钟学会看k线图_一分钟怎样学会看k线图(纯干货)散户必备!
- python爬虫 模拟登录人人网过程解析
- 电脑桌面计算机总是自动打开,电脑开机后自动打开很多软件怎么办
- 目标检测中NMS和mAP指标中的的IoU阈值和置信度阈值
- Blender UV 打直