Web服务器群集--Nginx网站服务(运行控制,访问状态统计,基于授权和客户端的访问控制,基于域名,端口,IP的虚拟web主机访问)

news/2024/5/10 18:40:02/文章来源:https://blog.csdn.net/CN_TangZheng/article/details/103620640

文章目录

  • 前言
  • 一: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
    

    mark

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;}}
    }
    
  • 查看当前的状态统计信息

    mark

二: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;}
    
  • 此时访问网页会要求输入账号密码

  • mark

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

      mark

三: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;....}
    

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_726572.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

tomcat上部署网站的三种方式

一、利用webapps文件夹自动部署 这是最简单的方式,只要将网站直接拷贝到:tomcat根目录下的webapps文件夹里 举例:helloworld文件夹下创建里index.html文件,然后把helloworld文件夹移动到tomcat根目录下webapps文件夹里&#xff…

使用Python爬取itcast网站的视频

一:准备工作 安装requests模块确定目标的url二:完成代码 requests的模块的get方法中,stream参数设置为True,对于获取响应的res,就可以使用iter_content函数iter_conten()函数能返回可以迭代的内容该方法多用于抓取视频&#xf…

网站优化seo最终详解_上海网站seo优化公司,网站seo优化推广外包

SEO搜索引擎优化是一种利用搜索引擎的搜索规则来提高目前网站在有关搜索引擎内的自然排名的方式。seo搜索优化具体长期稳定流量,推广费用极低的优势,所以长久以来seo一直被各大企业网站所青睐,把网站关键词搜索排名做好了,后面就可…

google搜索从入门到精通v4.0_SEO新手,如何提升关键字的Google排名

在做Google SEO的过程中,有一些刚入门的SEOer经常会查询某个关键字看自己网站有没有排名,可是结果都是让人失望,在这个关键字排名里根本看不到自己网站。 明明自己每天都在很努力地去做SEO了,可当你在搜索这个关键词的时候却没有自…

红帽启动mysql_启动与停止 - 红帽企业版Linux3下Mysql5数据库的安装方法_数据库技术_Linux公社-Linux系统门户网站...

启动与停止1、启动MySQL安装完成后启动文件mysql在/etc/init.d目录下,在需要启动时运行下面命令即可。[roottest1 init.d]# /etc/init.d/mysql start2、停止/usr/bin/mysqladmin -u root -p shutdown3、自动启动1)察看mysql是否在自动启动列表中[roottest1 local]# …

Java水果商城PPT_java毕业设计_springboot框架的水果销售购物商城网站

这是一个基于java的毕业设计项目,毕设课题为springboot框架的水果销售购物商城网站, 是一个采用b/s结构的javaweb项目, 开发工具eclipsei/eclipse, 项目框架jspspringbootmybatis, 水果销售购物商城网站采用mysql进行数据存储, 并基于mybatis进行了orm实体关系映射, 该水果销售…

C/C++/Linux「学习必备」珍藏多年的学习网站分享 | 工欲善其事必先利其器

这里分享的是C/C学习阶段所需网站,经博主自用使用频率较高的几个网站。废话不多说,直接看正文。 ps:初学者可以从菜鸟教程、w3school 在线教程等网站学习一遍基础知识,再结合本篇文章提供的网站食用更佳。 文章目录一、参考手册C…

很好的英文资料书籍下载网站

https://freebookcentre.net/ 很好的英文资料书籍下载,

自学宝典:10个学习Android开发的网站推荐

本文作者Tikitoo总结自己在学习Android开发过程中发现的好网站,包括Android Developers、GitHub等,以给初学者一些建议,少走一些弯路。1. Android Developers 作为一个Android开发者,官网的资料当然不可错过,从设计&am…

从云服务器购买到宝塔linux搭建web服务到域名绑定到HTTPs绑定再到可视化网站搭建,零基础教程一文搞定(图文解说)

简介 由于疫情原因,二狗子被困家中已经数月,不过二狗子发现了疫情期间的诸多优惠政策,于是便有了今天这篇文章。对于想要拥有个人网站又没有硬核技术与经济实力的草根群众而言,本文可以在很大程度上提供零基础教程和基本思路&…

centos php 网站配置,centos PHP环境配置

‍‍‍‍1、检测系统是否已经安装Apache‍‍ #rpm -qa|grep httpd出现如下:‍‍‍‍ 卸载:rpm -e httpd-2.2.3-43.el5.centos --nodeps‍‍‍‍ 注:--nodeps 是强制卸载‍‍‍‍2、请保证你的 Linux 系统中安装了 gcc、g 编译器检查是否安…

icomoon图标_轻松玩转PPT图标,让PPT更精致,还有7大免费图标网站赠送

图标是具有指代意义的具有标识性质的图形,它不仅是一种图形,更是一种标识,它具有高度浓缩并快捷传达信息、便于记忆的特性。而且应用极为广泛。软硬件、网页、社交场所还有公共场所中,可谓无处不在。公共场所的各种标志和交通标志…

编写PHP网页文件,PHP、thinkPHP5.0开发网站文件管理功能(三)编辑文件(示例代码)...

public function edit(){$file iconv(‘UTF-8‘,‘GB2312‘,urldecode(input(‘file‘)));if(empty($file)|| !file_exists($file)){$this->error(‘操作异常‘);}$arr [‘.PHP‘, ‘.CSS‘, ‘.JS‘, ‘.XML‘, ‘.HTML‘, ‘.HTACCESS‘,‘.TXT‘,‘.JSON‘];$exc strt…

网站php怎么升级,怎样进行PHPWEB软件升级

1、查看我已经安装了哪些升级?进入网站管理系统,选择设置->软件升级更新,进入升级界面升级界面分为两栏,上面一栏是没有安装的升级,后面一栏是已经安装的升级2、获取和上传升级包进入官方网站资源分享,下…

网站dns服务器不能用,Win7网络诊断“DNS服务器可能不可用”怎么解决?

Win7旗舰版显示dns配置错误怎么办?相信使用过win7旗舰版的用户可能都或多或少遇到过没有办法正常联网的现象,那么这是因为什么原因呢?通过网络诊断后可以发现是dns配置出错引起的无法上网的问题,不少用户尝试过各种解决方法都无法解决,各种…

java开发常用网站有哪些类型_可以在线编程的学习类网站有哪些?

对于程序员,可能经常听到这样一个段子:大分部伟大的想法都死在配环境上面。我知道对于一个新手来说,配运行环境要比上手写代码要难受的多。所以我就抽时间整了一些在线编程测试的网站,虽然推荐了这些网站,但是还是推荐…

二分类混淆矩阵结构_「混淆矩阵」4.4.2分类模型评判指标(一) - 混淆矩阵(Confusion Matrix) - seo实验室...

混淆矩阵简介混淆矩阵是ROC曲线绘制的基础,同时它也是衡量分类型模型准确度中最基本,最直观,计算最简单的方法。一句话解释版本:混淆矩阵就是分别统计分类模型归错类,归对类的观测值个数,然后把结果放在一个…

请在贵网站的根目录下部署一个文件_利用基于Python的Pelican打造一个自己的个人纯静态网站...

原文转载自「刘悦的技术博客」https://v3u.cn/a_id_100其实呢这么多年以来我一直建议每个有技术追求的开发者都要有写技术博客记笔记的良好习惯,一来可以积累知识,二来可以帮助别人,三来可以把开发中遇到的问题记录用来自省,第四可…

与虫子尾交3d动画网站_三维动画多少钱一秒?

一大清早,有位迪粉就在网站上咨询小迪:你们3d动画多少钱?我要普通一点的做宣传用就可以了,做3-5分钟就可以了。……这样的描述,臣妾办不到给你精准报价啊,亲。这里小迪就要和大家聊聊关于3d动画制作方面的收…

利用python爬取_如何利用Python抓取静态网站及其内部资源

原标题:如何利用Python抓取静态网站及其内部资源 来源: Mask 链接: https://segmentfault.com/a/1190000015880780 遇到的需求 前段时间需要快速做个静态展示页面,要求是响应式和较美观。由于时间较短,自己动手写的话也…