前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >手把手教你,嘴对嘴传达------Nginx网站服务(访问状态统计,基于域名,端口,IP的虚拟web主机访问)

手把手教你,嘴对嘴传达------Nginx网站服务(访问状态统计,基于域名,端口,IP的虚拟web主机访问)

作者头像
不吃小白菜
发布2020-09-03 10:19:23
9410
发布2020-09-03 10:19:23
举报

一、Nginx简介

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

二、Nginx服务基础

1、Nginx概述

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

●稳定性高

●系统资源消耗低

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

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

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

2、Nginx编译安装(过程)

安装支持软件

代码语言:javascript
复制
[root@localhost ~]# yum -y install gcc gcc-c++ make pcre-devel zlib-devel

创建运行用户、组

代码语言:javascript
复制
[root@localhost ~]# useradd -M -S /sbin/nologin nginx  '//-M 不创建家目录'

编译安装Nginx ,将软件包提前下载好

代码语言:javascript
复制
[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

运行控制(实验过程) 检查配置文件

代码语言:javascript
复制
[root@localhost ~]# nginx -t	'//检查'

启动、重载配置、停止Nginx

代码语言:javascript
复制
[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工具进行管理

代码语言:javascript
复制
[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工具进行管理

代码语言:javascript
复制
[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" in
  start)
   $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网址了

代码语言:javascript
复制
[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
在这里插入图片描述
在这里插入图片描述

3、Nginx的访问状态统计

启用HTTP_ STUB_ STATUS状态统计模块

配置编译参数时添加–with-http stub status module

nginx -V查看已安装的Nginx是否包含HTTP_ STUB _STATUS模块

代码语言:javascript
复制
[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
代码语言:javascript
复制
修改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访问控制

1、基于授权的访问控制

配置步骤与Apache基本一致

●生成用户密码认证文件

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

●重启服务,访问测试

生成用户密码认证文件

代码语言:javascript
复制
[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/

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

代码语言:javascript
复制
[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

重启服务,访问测试

代码语言:javascript
复制
[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf
server {
	location / {
		auth_basic "secret";
		auth_basic_user_file /usr/local/nginx/passwd.db;
	}
在这里插入图片描述
在这里插入图片描述

2、基于客户端的访问控制

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

配置规则

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

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

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

修改主配置文件nginx.conf,添加相应配置项

代码语言:javascript
复制
[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf
server {
	location/ {
		deny 192.168.110.132;
		allow all; 
    }

四:Nginx虚拟主机

1、Nginx虚拟主机应用

Nginx支持的虚拟主机有三种

●基于域名的虚拟主机

●基于IP的虚拟主机

●基于端口的虚拟主机

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

2、基于域名的虚拟Web主机

配置步骤

●准备网站目录及测试文件

代码语言:javascript
复制
[root@localhost ~]# mkdir -p /var/www/html/shang/
[root@localhost ~]# mkdir -p /var/www/html/zhen/
[root@localhost ~]# echo "this is shang" >>
/var/www/html/shang/index.html
[root@localhost ~]# echo "this is zhen" >>
/var/www/html/zhen/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/shang.com.zone
[root@localhost ~]# vim /var/named/shang.com.zone
[root@localhost ~]# cp -p /var/named/shang.com.zone /var/named/zhen.com.zone
[root@localhost ~]# systemctl start named

调整nginx.conf配置文件

代码语言:javascript
复制
vim /usr/ local/ nginx/ conf/ nginx. conf   //进入主配置文件  
    server {
        listen       80;
        server_name  www.shang.com;
        charset utf-8;
        access_log  logs/www.shang.com.log;
        location / {
            root   /var/www/html/shang;
            index  index.html index.htm;
        }
       error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
}

    server {
        listen       80;
        server_name  www.zhen.com;
        charset utf-8;
        access_log  logs/www.zhen.com.access.log;
        location / {
            root   /var/www/html/zhen;
            index  index.html index.htm;
        }


       error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
}
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3、基于IP地址访问

代码语言:javascript
复制
[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf
server {
	listen	192.168.110.132:80;
	server name 192.168.110.132:80;
	....}
server {
	listen	192.168.132.133:80;
	server name 192.168.110.133:80;
	....}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-08-09 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、Nginx简介
  • 二、Nginx服务基础
    • 1、Nginx概述
      • 2、Nginx编译安装(过程)
        • 3、Nginx的访问状态统计
        • 三、Nginx访问控制
          • 1、基于授权的访问控制
            • 2、基于客户端的访问控制
            • 四:Nginx虚拟主机
              • 1、Nginx虚拟主机应用
                • 2、基于域名的虚拟Web主机
                  • 3、基于IP地址访问
                  相关产品与服务
                  轻量应用服务器
                  轻量应用服务器(TencentCloud Lighthouse)是新一代开箱即用、面向轻量应用场景的云服务器产品,助力中小企业和开发者便捷高效的在云端构建网站、Web应用、小程序/小游戏、游戏服、电商应用、云盘/图床和开发测试环境,相比普通云服务器更加简单易用且更贴近应用,以套餐形式整体售卖云资源并提供高带宽流量包,将热门开源软件打包实现一键构建应用,提供极简上云体验。
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档