Nginx虚拟主机的配置步骤过程全解


Posted in Servers onMarch 31, 2022

一、Nginx虚拟主机的配置

虚拟主机:通常情况下,为了使每个服务器可以供更多用户使用,可以将一个服务器分为很多虚拟的子服务器,每个子服务器都是互相独立的。这些服务器是根据虚拟化技术分出来的,这样,一台服务器就可以虚拟成很多台子服务器。我们把子服务器叫做虚拟主机。我们搭建好Nginx服务器之后,此时只有一台Nginx服务器,这时如果我们对这台服务器进行虚拟主机配置,就可以将一台Nginx服务器分割为多台独立的子服务器。

Nginx中配置虚拟主机的步骤主要有两个:

1、创建虚拟主机IP

通过ifconfig查看自己的主机ip,然后根据主机ip创建虚拟主机Ip。

命令: ifconfig eth1:2 121.42.41.145 broadcast 121.42.43.255 netmask 255.255.252.0

执行后如图:

Nginx虚拟主机的配置步骤过程全解

2、是绑定IP地址与虚拟主机。

nginx.conf:该文件是nginx的系统配置文件,建议不要在这上边改动。我们一般采用自定义文件,然后加载该文件,从而达到相同的效果。  

建立配置文件在 /usr/local/nginx/conf目录下创建 xnzj.conf。

#========工作衍生进程数(建议设置成与cpu核数相同或者2倍)==========
worker_processes  1;
#===========设置最大连接数==============
events {
    worker_connections  1024;
}
#============http协议的相关信息==============
http {
    server {
        #===========要监听虚拟主机的IP地址与端口==========
        listen 121.42.41.144:80;
        #===========该虚拟主机的名称===========
        server_name  121.42.41.144;
        #===============该虚拟主机服务器的日志文件=========
        access_log  logs/server144.access.log  combined;
        #============== 默认请求资源=============
        location / {
            root   html/server144;
            #===== nginx会先找index.html 如果没找到就找index.htm
            index  index.html index.htm;
        }
    }
    server {
        #===========要监听虚拟主机的IP地址与端口==========
        listen 121.42.41.145:80;
        #===========该虚拟主机的名称===========
        server_name  121.42.41.145;
        #===============该虚拟主机服务器的日志文件=========
        access_log  logs/server145.access.log  combined;
        #============== 默认请求资源=============
        location / {
            root   html/server145;
            index  index.html index.htm;
        }
    }
}

在 /usr/local/nginx/html下创建对应的虚拟主机默认资源

/usr/local/nginx/html/server144/index.html  ;/usr/local/nginx/html/server145/index.html  

让Nginx加载我么自定义的配置文件(我的配置文件:xnzj.conf)     

执行命令:/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/xnzj.conf    

二、日志的配置

Nginx服务器在运行的时候,会有各种操作,这些关键的操作信息会记录到文件中,这些文件叫做日志文件。日志文件的记录是有格式的,我们可以按系统默认的格式去记录,也可以按我们自定义的格式去记录。我们可以使用log_format指令来设置Nginx服务器的日志文件的记录格式。

配置方式:打开nginx.conf 文件,开启注释的下端代码。

#combined:日志输出格式 
     #remote_addr 客户端请求地址 
     #remote_user:客户端用户名  
     #request:请求的地址(服务器资源位置) 
     #status:用户的请求状态 
     #body_bytes_sent:服务器响应的资源大小(字节数),  
     #http_referer:源网页    
     #http_user_agent:客户端浏览器信息  
     #http_x_forwarded_for:客户端Ip地址  
    log_format  combined  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                     '"$http_user_agent" "$http_x_forwarded_for"';
    #==================日志文件  access_log:off;表示关闭日志===========
    access_log  logs/access.log  combined;

日志切割:

为了使Nginx的日志文件存储更合理、有序,我们需要将日志文件进行分开存储,比如我们可以按时间来分开,今天的日志文件存储到一个文件中,明天的日志文件则存储到另一个新的文件中等等。这个时候,我们就会用到日志文件的切割操作。

日志切割步骤:

1、创建批处理文件

在/usr/local/nginx/logs目录下 执行 [root@iZ28b4kreuaZ logs]# touch cutlog.sh

2、为该文件添加内容:

D=$(date +%Y%m%d)
mv /usr/local/nginx/logs/access.log ${D}.log
kill -USR1 $(cat /usr/local/nginx/nginx.pid)

3、定时执行批处理文件   执行 crontab -e 命令添加以下内容

    23 59 *** /bin/bash /usr/local/nginx/logs/cutlog.sh

三、Nginx缓存配置

当我们在浏览器中浏览某网页时,我们会把该网页上的一些信息(比如这个网页上的图片)存储到本地,当我们第二次浏览该网页的时候,这个网页上的某些信息就可以从本地加载,这样速度就会快很多。存储到本地的这些信息我们把其称为缓存。但是缓存过多的时候,缓存文件就会非常大,影响我们正常的上网活动。故而缓存需要定期清理。

配置方式:/usr/local/nginx/conf/nginx.conf 配置文件的http{ server{}}中的location下添加如下代码:

#====================缓存配置=============
       location ~.*\.(jpg|png|swf|gif)${
            expires 2d;#两天后清除
       }
       location ~.*\.(css|js)?${
        expires:1h;#
       }

四、Nginx的gzip压缩配置

这里我们提到的压缩功能指的是gzip压缩技术。通过gzip压缩技术,可以使原来的网页的内容大小压缩成原来的30%,这样,用户在访问网页的时候,由于传输的内容比原内容小很多,故而访问速度会快很多。Nginx服务器支持gzip压缩技术,但是,需要进行配置。

配置方式:/usr/local/nginx/conf/nginx.conf 配置文件的http{ }中添加如下代码:

gzip  on;#开启压缩
    gzip_min_lenth 1k;#设置使用压缩的最小单位
    gzip_buffers 4 16k;#创建压缩文件缓存大小
    gzip_http_version 1.1;#使用压缩技术的协议 及其版本
    gzip_vary:on;#开启判断客户端浏览器是否支持压缩技术

五、Nginx自动列目录配置  

  当客户端通过浏览器访问服务器上的某一文件夹的时候,如果该文件夹上有默认的首页文件,比如index.html,那么此时用户就会自动访问到index.html这个网页。但是,当没有index.html这一类默认首页的文件的时候,假设此时该文件夹还有其他文件,在没有配置自动列目录的功能的情况下,用户访问不到我们这个文件夹的内容。但当我们配置好了自动列目录功能之后,我们就可以看到该文件夹下所有文件的一个列表,该列表目录是自动列的。

实现自动列目录需要两个条件:

1.访问的文件夹下不存在index之类的默认首页文件。

2.服务器配置了自动列目录功能。

配置方式:/usr/local/nginx/conf/nginx.conf 配置文件的http{ server{}}中添加 如下代码:

location / {
            root   html;
            index  index.html index.htm;
            autoindex on;#开启自动列目录
        }

以上就是Nginx虚拟主机的配置步骤过程详解的详细内容,更多关于Nginx配置步骤的资料请关注三水点靠木其它相关文章!

Servers 相关文章推荐
Nginx解决前端访问资源跨域问题的方法详解
Mar 31 Servers
Nginx配置并兼容HTTP实现代码解析
Mar 31 Servers
Mac环境Nginx配置和访问本地静态资源的实现
Mar 31 Servers
Nginx URL重写rewrite机制原理及使用实例
Apr 01 Servers
JVM上高性能数据格式库包Apache Arrow入门和架构详解(Gkatziouras)
May 26 Servers
Nginx虚拟主机的搭建的实现步骤
Jan 18 Servers
如何通过cmd 连接阿里云服务器
Apr 18 Servers
阿里云国际版 使用Nginx作为HTTPS转发代理服务器
May 11 Servers
基于docker安装zabbix的详细教程
Jun 05 Servers
winserver2019安装软件一直卡在应用程序正在为首次使用做准备
Jun 10 Servers
win server2012 r2服务器共享文件夹如何设置
Jun 21 Servers
本地搭建minio文件服务器(使用bat脚本启动)的方法
Jul 15 Servers
Tomcat用户管理的优化配置详解
Kubernetes关键组件与结构组成介绍
配置Kubernetes外网访问集群
CKAD认证中部署k8s并配置Calico插件
Mar 31 #Servers
使用kubeadm命令行工具创建kubernetes集群
Mar 31 #Servers
Minikube搭建Kubernetes集群
Apache Pulsar结合Hudi构建Lakehouse方案分析
You might like
php对大文件进行读取操作的实现代码
2013/01/23 PHP
php类中的$this,static,final,const,self这几个关键字使用方法
2015/12/14 PHP
php生成Android客户端扫描可登录的二维码
2016/05/13 PHP
多选列表框动态添加,移动,删除,全选等操作的简单实例
2014/01/13 Javascript
javascript实现2048游戏示例
2014/05/04 Javascript
基于BootStrap Metronic开发框架经验小结【一】框架总览及菜单模块的处理
2016/05/12 Javascript
jquery ajax结合thinkphp的getjson实现跨域的方法
2016/06/06 Javascript
JavaScript中获取时间的函数集
2016/08/16 Javascript
JavaScript中原型链存在的问题解析
2016/09/25 Javascript
JS实现拖动滚动条评分的效果代码分享
2016/09/29 Javascript
jQuery插件版本冲突的处理方法分析
2017/01/16 Javascript
Nodejs多站点切换Htpps协议详解及简单实例
2017/02/23 NodeJs
详解vue前后台数据交互vue-resource文档
2017/07/19 Javascript
详解vue 不同环境配置不同的打包命令
2019/04/07 Javascript
支付宝小程序实现省市区三级联动
2020/06/21 Javascript
[00:33]DOTA2上海特级锦标赛 CDEC战队宣传片
2016/03/04 DOTA
Python 基础教程之str和repr的详解
2017/08/20 Python
python文档字符串(函数使用说明)使用详解
2019/07/30 Python
互斥锁解决 Python 中多线程共享全局变量的问题(推荐)
2020/09/28 Python
python+appium+yaml移动端自动化测试框架实现详解
2020/11/24 Python
详解CSS3中使用gradient实现渐变效果的方法
2015/08/18 HTML / CSS
html5 Canvas画图教程(4)—未闭合的路径及渐变色的填充方法
2013/01/09 HTML / CSS
Peter Alexander新西兰站:澳大利亚领先的睡衣设计师品牌
2016/12/10 全球购物
Under Armour安德玛法国官网:美国高端运动科技品牌
2018/06/29 全球购物
小米俄罗斯授权商店:Xiaomi俄罗斯
2019/12/08 全球购物
Dr. Martens马汀博士法国官网:马丁靴鼻祖
2020/01/15 全球购物
电子信息工程专业推荐信
2014/02/14 职场文书
给小学生的新年寄语
2014/04/04 职场文书
关于保护环境的标语
2014/06/09 职场文书
《比尾巴》教学反思
2016/02/24 职场文书
详解JS WebSocket断开原因和心跳机制
2021/05/07 Javascript
简单总结SpringMVC拦截器的使用方法
2021/06/28 Java/Android
mysql分表之后如何平滑上线详解
2021/11/01 MySQL
python中出现invalid syntax报错的几种原因分析
2022/02/12 Python
idea下配置tomcat避坑详解
2022/04/12 Servers
python中validators库的使用方法详解
2022/09/23 Python