理论操作:Nginx网站服务(访问状态统计,基于授权和客户端的访问控制,基于域名、端口、IP的虚拟主机访问)------------------好家伙

news/2024/5/19 17:47:41/文章来源:https://blog.csdn.net/Hero_V/article/details/109454173

Nginx网站服务

  • 前言
    • 一:Nginx服务基础
      • 1.1:Nginx概述
      • 1.2:Nginx编译安装
    • 二:配置统计页面
    • 三:配置虚拟主机
      • 3.1:Nginx虚拟主机应用
      • 3.2:基于域名的虚拟Web主机
      • 3.3:基于端口的虚拟Web主机
      • 3.4:基于IP的虚拟主机配置
    • 四:Nginx访问控制
      • 4.1:基于授权的访问控制
      • 4.2:基于客户端的访问控制

前言

  • 在各种网站服务器软件中,除了Apache HTTP Server外,还有一款轻量级的HTTP服务器软件–Nginx,其稳定,高效的特性逐渐被越来越多的用户认可
  • 其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名
  • 其特点是:占有内存少,并发能力强
  • 中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。

一:Nginx服务基础

1.1:Nginx概述

  • 一款高性能、轻量级Web服务软件

    ●稳定性高

    ●系统资源消耗低

    ●对HTTP并发连接的处理能力高

    ●单台物理服务器可支持30 000 ~ 50000个并发请求

    ●占用内存少,并发能力强

1.2:Nginx编译安装

安装环境

CentOs 7.6 Nginx 1.15
mark

  • 安装支持软件
[root@localhost opt]# iptables -F
[root@localhost opt]# setenforce 0
[root@localhost opt]# mkdir LNMP
[root@localhost opt]# cd LNMP/
#把包移到opt目录中
[root@localhost LNMP]# rz -E
rz waiting to receive.
[root@localhost LNMP]# ls
Discuz_X3.4_SC_UTF8.zip    nginx-1.12.2.tar.gz
mysql-boost-5.7.20.tar.gz  php-7.1.10.tar.bz2
ncurses-5.6.tar.gz
[root@localhost LNMP]# tar zxvf nginx-1.12.2.tar.gz -C /opt
  • 安装环境依赖包
[root@localhost nginx-1.12.2]# yum -y install gcc gcc-c++ zlib-devel pcre pcre-devel 
  • 创建用户、组进行管理
-M:不创建家目录  -s:用于登录shell
[root@localhost nginx-1.12.2]# useradd -M -s /sbin/nologin nginx
[root@localhost nginx-1.12.2]# id nginx
uid=1001(nginx) gid=1001(nginx)=1001(nginx)
  • 编译安装
[root@localhost nginx-1.12.2]# ls
auto     CHANGES.ru  configure  html     man     src
CHANGES  conf        contrib    LICENSE  README
[root@localhost nginx-1.12.2]# ./con
conf/      configure  contrib/   
[root@localhost nginx-1.12.2]# ./configure \
> --prefix=/usr/local/nginx \                 #设置安装路径
> --user=nginx \                              #运行用户和组设为nginx
> --group=nginx \
> --with-http_stub_status_module             #启动模块来支持状态统计
#编译
[root@localhost nginx-1.12.2]# make && make install
  1. 路径优化
  • 为了是Nginx服务器的运行更加方便,可以为主程序nginx创建软链接文件,以便于管理员执行“nginx”命令就可以调用Nginx的主程序
[root@localhost nginx-1.12.2]# ln -s /usr/local/nginx/sbin/nginx /usr/local/bin/
[root@localhost nginx-1.12.2]# ls /usr/local/bin/
nginx
#测试语法是否正确
[root@localhost nginx-1.12.2]# nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
##查看主配置文件
[root@localhost nginx-1.12.2]# cd /usr/local/nginx/
[root@localhost nginx]# ls
client_body_temp  html        sbin
conf              logs        scgi_temp
fastcgi_temp      proxy_temp  uwsgi_temp
[root@localhost nginx]# cd conf/
#nginx.conf就是主配置文件
[root@localhost conf]# ls
fastcgi.conf            nginx.conf
fastcgi.conf.default    nginx.conf.default
fastcgi_params          scgi_params
fastcgi_params.default  scgi_params.default
koi-utf                 uwsgi_params
koi-win                 uwsgi_params.default
mime.types              win-utf
mime.types.default
#html是主页文件
[root@localhost conf]# cd ..
[root@localhost nginx]# ls
client_body_temp  html        sbin
conf              logs        scgi_temp
fastcgi_temp      proxy_temp  uwsgi_temp
[root@localhost nginx]# cd html/
[root@localhost html]# ls
50x.html  index.html
[root@localhost html]# netstat -anpt | grep nginx
##服务没有开启
  • 启动服务

  • 直接运行Nginx即可启动Nginx服务器

[root@localhost html]# nginx
[root@localhost html]# netstat -anpt | grep nginx
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      90530/nginx: master 
  • 宿主机访问一下

mark

  • 关闭进程可用pkill(关闭所有服务进程)
[root@localhost html]# pkill nginx
[root@localhost html]# netstat -anpt | grep nginx
  • 启动、重载配置、停止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		3显示"Welcome to nginx!"页面,表明Nginx服务已经正常运行'
[root@localhost ~]# killall -s HUP nginx	#-S选项指定信号种类,HUP信号表示重载配置'
[root@localhost ~]# killall -s QUIT nginx	#QUIT信号表示退出进程
  • Nginx添加为系统服务
[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

二:配置统计页面

[root@localhost init.d]# vim /usr/local/nginx/conf/nginx.conf
####添加下面的图片内容#在重启服务
[root@localhost init.d]# service nginx stop
[root@localhost init.d]# service nginx start
[root@localhost init.d]# nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@localhost init.d]# netstat -ntap | grep nginx 
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      90311/nginx: master 

mark

  • 去宿主机测试
  • 刷新会进行统计
    在这里插入图片描述
    mark

三:配置虚拟主机

3.1:Nginx虚拟主机应用

  • Nginx支持的虚拟主机有三种

    ●基于域名的虚拟主机

    ●基于IP的虚拟主机

    ●基于端口的虚拟主机

  • 通过"server{}" 配置段实现

3.2:基于域名的虚拟Web主机

  • 准备网站目录及测试文件
[root@localhost init.d]# cd /var/
[root@localhost var]# ls
account  crash  games     lib    log   opt       spool   yp
adm      db     gopher    local  mail  preserve  target
cache    empty  kerberos  lock   nis   run       tmp
[root@localhost var]# mkdir www
[root@localhost var]# cd www/
#新建两个站点
[root@localhost www]# mkdir shuai mei
[root@localhost www]# ls
mei  shuai
[root@localhost www]# cd shuai/
[root@localhost shuai]# vim index.html
#添加以下内容
<h1>hell</h1>
[root@localhost shuai]# cd ../
[root@localhost www]# ls mei/
[root@localhost mei]# vim index.html
#添加网页内容
<h1>this is mei web</h1>#下载tree
[root@localhost www]# yum -y install tree
[root@localhost www]# tree ./
./
├── mei
│   └── index.html
└── shuai└── index.html2 directories, 2 files

#配置域名解析

[root@localhost www]# vim /etc/named.conf

在这里插入图片描述

#区域配置
在这里插入图片描述
配置区域数据

[root@localhost named]# cp -p named.localhost abc.com.zone
[root@localhost named]# vim abc.com.zone 

mark

[root@localhost named]# cp -p abc.com.zone ab.com.zone
#重启服务
[root@localhost named]# systemctl start named
  • 修改配置文件
[root@localhost named]# vim /usr/local/nginx/conf/nginx.conf

mark

server {server_name www.shuai.com;location / {root /var/www/shuai;index index.html index.php;}}server {server_name www.shi.com;location / {root /var/www/shi;index index.html index.php;}}
  • 重启服务
[root@localhost named]# nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@localhost named]# service nginx stop
[root@localhost named]# service nginx start
  • 客户机测试

mark

mark

3.3:基于端口的虚拟Web主机

  • 配置步骤

  • 修改配置文件

[root@localhost named]# vim /usr/local/nginx/conf/nginx.confserver {server_name 20.0.0.41:8080;     ## 将域名修改为IP地址+端口listen 20.0.0.41:8080;          ## 增加这一行,内容为IP地址+监听端口location / {root /var/www/shuai;index index.html index.php;}}server {server_name 20.0.0.41:80;      ## 同上listen 20.0.0.41:80;           ## 同上location / {root /var/www/shi;index index.html index.php;}}

3.4:基于IP的虚拟主机配置

  • 添加一块网卡并配置一个IP地址(20.0.0.50)

编辑nginx配置文件

[root@localhost /]# vim /usr/local/nginx/conf/nginx.conf    ## 编辑配置文件server {server_name 20.0.0.41:80;     ## IP地址+80端口listen 20.0.0.41:80;          ## IP地址+80端口location / {root /var/www/shuai;index index.html index.php;}}server {server_name 20.0.0.50:80;     ## 另一个IP地址+80端口listen 20.0.0.50:80;          ## 另一个IP地址+监听端口80location / {root /var/www/shi;index index.html index.php;}}

四:Nginx访问控制

4.1:基于授权的访问控制

  • 配置步骤与Apache基本一致

    ●生成用户密码认证文件

    ●修改主配置文件对相应目录,添加认证配置项

    ●重启服务,访问测试

  • 生成用户密码认证文件

[root@localhost shuai]# yum -y install httpd
[root@localhost shuai]# which htpasswd
/usr/bin/htpasswd
#创建用户
[root@localhost shuai]# htpasswd -c /usr/local/nginx/passwd.db liu
New password:                           #输入密码
Re-type new password:                   #再次输入密码
Adding password for user liu
#把账户树组变为nginx
[root@localhost shuai]# chown nginx /usr/local/nginx/passwd.db 
#设置权限
[root@localhost shuai]# chmod 400 /usr/local/nginx/passwd.db 
  • 修改主配置文件对相应目录,添加认证配置项
[root@localhost shuai]# vim /usr/local/nginx/conf/nginx.conf

mark

##验证语法
[root@localhost shuai]# nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
#关闭服务在开启
[root@localhost shuai]# service nginx stop
[root@localhost shuai]# service nginx start

客户机测试

mark

4.2:基于客户端的访问控制

  • 通过客户端IP地址,决定是否允许对页面访问

  • 配置规则

    deny IP/IP段:拒绝某个IP或IP段的客户端访问

    allow IP/IP段:允许某个IP或IP段的客户端访问

    规则从上往下执行,如匹配则停止,不再往下匹配

  • 配置步骤

    • 修改主配置文件nginx.conf,添加相应配置项
[root@localhost shuai]# vim /usr/local/nginx/conf/nginx.conf

mark

mark

mark

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

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

相关文章

Hexo博客Next主题SEO优化方法

本文转自&#xff1a;hoxis’ blog 本文主要介绍Hexo博客的优化方法&#xff0c;以Google搜索为例。 添加站点地图 安装插件 需要安装两个插件来生成 sitemap 文件&#xff0c;前一个是传统的 sitemap&#xff0c;后一个是百度的 sitemap。 npm install hexo-generator-si…

win7下部署个人网站教程

基本说明 本教程能解决的东西 1&#xff0c; 将本地服务项目部署到万网服务器 2&#xff0c; 可以映射到自己的域名 准备 1, 部署所需要的条件 1&#xff0c; 一个健康的系统; 一般安装之后&#xff0c; 能稳定安装部分软件。win7、ubuntu、centos etc; 2, 安装 git 关于这…

VS2008 ASP.NET 网站运行时打开网页失败

VS2008在ASP.net里利用自定义的服务器时无法访问网页。 后来出现下面这个问题&#xff1a; 附&#xff1a; 自定义服务器的方法&#xff1a;在工具—外部工具里添加相应参数

BoIIS -- 免费IIS批量建站工具箱

2012年开发的免费批量建站工具箱&#xff0c;现在放出来给需要的站长们使用。 适用版本&#xff1a;Win2000/XP/Win2003/Win2008/Win2012等 相应IIS环境下运行&#xff08;IIS7及以上请自行开启IIS6兼容模式&#xff09;。 本工具箱对.Net Framework无依赖&#xff0c;不用安…

推荐一个非常不错的Linux资源网站

今天在网上闲逛&#xff0c;发现一个非常不错的网站&#xff0c;&#xff08;或许高手早已知晓也说不定&#xff09;&#xff0c;不敢独享。 Techmint 除了很多有价值的文章外&#xff0c;还有不少免费的电子书籍可以下载。下面是有关Linux的电子书籍页面&#xff0c;还有不…

浅谈web网站架构演变过程

浅谈web网站架构演变过程 http://www.cnblogs.com/junneyang/p/5231849.html 前言 我们以javaweb为例&#xff0c;来搭建一个简单的电商系统&#xff0c;看看这个系统可以如何一步步演变。 该系统具备的功能&#xff1a; 用户模块&#xff1a;用户注册和管理商品模块&#xff1…

选用beeecshop专业性强外贸网店系统建站怎样做图片轮播

如今许多人去选用专业性强外贸网店系统搭建在线商城网店的情况下&#xff0c;老是会在具体的操作流程中遇到各式各样的现象&#xff0c;如选用外贸网店系统怎样开展网店的装潢&#xff0c;外贸网店系统建站假如做图片轮播呢&#xff1f;今日小编依然以自个最了解的beeecshop商城…

电商总结(一)小型电商网站的架构

又是一年年底了&#xff0c;这一年&#xff0c;从传统软件行业进入到电商企业&#xff0c;算是一次转行了吧。刚开始&#xff0c;觉得电商网站没有什么技术含量&#xff0c;也没有什么门槛&#xff0c;都是一些现有的东西堆积木似的堆出来而已。然而&#xff0c;真正进入到这个…

电商总结(八)如何打造一个小而精的电商网站架构

前面写过一些电商网站相关的文章&#xff0c;这几天有时间&#xff0c;就把之前写得网站架构相关的文章&#xff0c;总结整理一下。把以前的一些内容就连贯起来&#xff0c;这样也能系统的知道&#xff0c;一个最小的电商平台是怎么一步步搭建起来的。对以前的文章感兴趣的朋友…

Chrome:您目前无法访问,因为此网站使用了 HSTS。网络错误和攻击通常是暂时的,因此,此网页稍后可能会恢复,问题解决

浏览器输入&#xff1a;chrome://net-internals/#hsts 选择&#xff1a;Domain Security Policy 下拉到最后一项&#xff0c;在输入框输入要访问的域名&#xff0c;点击delete。

JS逆向 模拟抓取 八比特 网站数据(AES加密问题)

网上看到有人要抓这网站&#xff0c;刚有空所以研究下&#xff0c;写下过程&#xff0c;比较简单。 首先老三样&#xff0c;抓包&#xff0c;看参数&#xff0c;可以看到&#xff0c;header中有验证参数. 看了下就这一下验证参数&#xff0c;拿这个参数和body里的参数到postma…

服务器日志法网站分析的原理及优缺点

【前言】 应朋友们的要求&#xff0c;我还是写一篇关于服务器日志法进行网站分析的原理以及它的优缺点是什么。请朋友们注意&#xff0c;网站服务器日志法并不容易进行&#xff0c;初学者&#xff0c;以及在绝大多数情况下&#xff0c;进行以用户行为分析为核心的网站分析&…

Python使用pypcap扩展包,抓取视频网站的视频URL

爬取视频网站的视频URL 前言第一步、安装Python(2.7.13 64位)第二步、安装Python的扩展包pypcapy1.1.2第三步、安装Python的扩展包dpkt(这个没什么特别的&#xff0c;直接装就可以。)第四步、运行以下代码&#xff0c;并打开浏览器观看视频。第五步、打开浏览器开发者network&a…

大型互联网站解决海量数据的常见策略

from: http://www.javabloger.com/article/big-data-architecture.html?sourcerss 有时间试试Moosefs 大型互联网站的数据存储与传统存储环境相比不仅是一个服务器、一个数据库那么简单&#xff0c;而是由网络设备、存储设备、应用服务器、公用访问接口、应用程序 等多个部分…

网站加速--服务器编写篇

from: http://iqalantam.blog.163.com/blog/static/5393552201192711955294/ 提升性能的同时为你节约10倍以上成本 From: http://blog.sina.com.cn/iyangjian 一&#xff0c;如何节约CPU 二&#xff0c;怎样使用内存 三&#xff0c;减少磁盘I/O 四&#xff0c;优化你的网卡 五…

蒙鸟云:网站SEO优化上不去?很可能和你的服务器有关!

新手站长基本上都会遇到一个难题——为什么我的网站权重不高&#xff1f;为什么我的网站收录太低&#xff0c;甚至没有&#xff1f; 大多数站长处理此类问题的解决办法是从网站内链外链、网站标题、关键词、描述语以及网站内容的原创度等等方面去优化&#xff0c;然而他们可能…

还在贪图小便宜吗?不稳定的服务器会给网站带来这些大危害!

服务器购买、租用、托管的渠道很多&#xff0c;价格差异也很大&#xff0c;有的消费者会看重价格&#xff0c;选择使用较便宜的服务器。但正所谓一分价钱一分货&#xff0c;价格太便宜的服务器&#xff0c;很可能硬件性能和软件性能都不好&#xff0c;从而导致服务器运行不稳定…

关于老域名做新网站的利弊问题

关于老域名做新站的问题&#xff0c;是很多站长都碰见过的&#xff0c;很多人觉得用老域名做新站对排名好&#xff0c;可以更快的获得成绩&#xff0c;总是心里痒痒&#xff0c;然而又害怕老域名会不会有一些问题&#xff0c;会不会反而影响新站。比如很多站长关心“老域名之前…

我所熟悉的网站负载均衡技术

DNS轮循 DNS轮循是指将相同的域名解释到不同的IP&#xff0c;随机使用其中某台主机的技术。但其具有明显的缺点&#xff1a;一旦某个服务器出现故障&#xff0c;即使及时修改了DNS设置&#xff0c;还是要等待足够的时间&#xff08;刷新时间&#xff09;才能发挥作用&#xff0…