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实现反向代理
Sep 20 Servers
fastdfs+nginx集群搭建的实现
Mar 31 Servers
Nginx实现高可用集群构建(Keepalived+Haproxy+Nginx)
May 27 Servers
配置nginx负载均衡
May 06 Servers
详解Nginx的超时keeplive_timeout配置步骤
May 25 Servers
Linux服务器离线安装 nginx的详细步骤
Jun 16 Servers
解决Git推送错误non-fast-forward的方法
Jun 25 Servers
教你nginx跳转配置的四种方式
Jul 07 Servers
详解apache编译安装httpd-2.4.54及三种风格的init程序特点和区别
Jul 15 Servers
centos环境下nginx高可用集群的搭建指南
Jul 23 Servers
Centos7 Shell编程之正则表达式、文本处理工具详解
Aug 05 Servers
教你使用RustDesk 搭建一个自己的远程桌面中继服务器
Aug 14 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显示MySQL数据的三种方法
2008/06/05 PHP
PHP表单验证的3个函数ISSET()、empty()、is_numeric()的使用方法
2011/08/22 PHP
PHP设计模式 注册表模式(多个类的注册)
2012/02/05 PHP
总结的一些PHP开发中的tips(必看篇)
2017/03/24 PHP
PHP设计模式之原型模式定义与用法详解
2018/04/03 PHP
jquery实现居中弹出层代码
2010/08/25 Javascript
juqery 学习之三 选择器 子元素与表单
2010/11/25 Javascript
javascript对数组的常用操作代码 数组方法总汇
2011/01/27 Javascript
js模拟select下拉菜单控件的代码
2013/05/08 Javascript
javascript多行字符串的简单实现方式
2015/05/04 Javascript
javascript实现延时显示提示框特效代码
2016/04/27 Javascript
jQuery EasyUI datagrid在翻页以后仍能记录被选中行的实现代码
2016/08/15 Javascript
JavaScript中push(),join() 函数 实例详解
2016/09/06 Javascript
jQuery内容过滤选择器用法示例
2016/09/09 Javascript
原生js图片轮播效果实现代码
2016/10/19 Javascript
Bootstrap基本插件学习笔记之标签切换(17)
2016/12/08 Javascript
微信小程序实现简单input正则表达式验证功能示例
2017/11/30 Javascript
Angularjs 根据一个select的值去设置另一个select的值方法
2018/08/13 Javascript
JavaScript闭包与作用域链实例分析
2019/01/21 Javascript
vue+element创建动态的form表单及动态生成表格的行和列
2019/05/20 Javascript
layui使用数据表格实现购物车功能
2019/07/26 Javascript
JavaScript中变量提升机制示例详解
2019/12/27 Javascript
一篇超完整的Vue新手入门指导教程
2020/11/18 Vue.js
JavaScript 中的六种循环方法
2021/01/06 Javascript
python插入排序算法实例分析
2015/07/03 Python
在PyTorch中Tensor的查找和筛选例子
2019/08/18 Python
基于python的itchat库实现微信聊天机器人(推荐)
2019/10/29 Python
python科学计算之narray对象用法
2019/11/25 Python
Python使用shutil模块实现文件拷贝
2020/07/31 Python
小蚁科技官方商店:YI Technology
2019/08/23 全球购物
简单而又朴实的个人求职信分享
2013/12/12 职场文书
标准离婚协议书(2014版)
2014/10/05 职场文书
联谊活动总结范文
2015/05/09 职场文书
毕业感言怎么写
2015/07/31 职场文书
创业者如何撰写出一份打动投资人的商业计划书?
2019/07/02 职场文书
JavaScript原始值与包装对象的详细介绍
2021/05/11 Javascript