Nginx实现多虚拟主机配置

Nginx实现多虚拟主机配置

Nginx为什么要进行多虚拟主机配置呢?what?
Nginx实现多虚拟主机配置的主要原因是,一个服务器可能会承载多个网站或应用程序,这些网站或应用程序需要使用不同的域名或IP地址来进行访问。如果只有一个虚拟主机配置,只能处理一个域名或IP地址的请求,无法满足多个网站或应用程序的需求。

通过实现多虚拟主机配置,可以使得Nginx能够处理多个域名或IP地址的请求,每个虚拟主机配置都可以有不同的配置信息,例如根目录、日志文件、SSL证书等,从而能够为不同的网站或应用程序提供定制化的服务。

此外,通过使用Nginx作为反向代理服务器,可以将多个应用程序部署在同一台服务器上,并通过不同的虚拟主机配置进行访问,从而提高服务器的利用率和性能。

那就首先来看一下Nginx的配置文件:

worker_processes  1;  #全局指令,在整个nginx中有效
events {worker_connections  1024; #括号内为局部指令,只对当前括号内的内容有效
}
#user  nobody;         #nginx启动用户
worker_processes  1;   #nginx工作进程数#error_log  logs/error.log  info;   #nginx错误日志记录位置#pid        logs/nginx.pid;         #nginx进程日志记录位置events {                            #nginx工作进程配置use epoll;                      #使用epoll的I/O 模型  worker_connections 20000;	    #工作进程的最大连接数量client_header_buffer_size 4k;   #客户端请求头部的缓冲区大小open_file_cache max=2000 inactive=60s; #为打开文件指定缓存,默认是没有启用的,max指定缓存最大数量,建议和打开文件数一致,inactive是指经过多长时间文件没被请求后删除缓存 open_file_cache_valid 60s;             #这个是指多长时间检查一次缓存的有效信息。open_file_cache_min_uses 1;            #open_file_cache指令中的inactive参数时间内文件的最少使用次数,如果超过这个数字,文件描述符一直是在缓存中打开的,如果有一个文件在inactive时间内一次没被使用,它将被移除。}http {include       mime.types;                  #引入其他文件default_type  application/octet-stream;    #默认文件类型,默认为text/plain#指定日志格式#log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '#                  '$status $body_bytes_sent "$http_referer" '#                  '"$http_user_agent" "$http_x_forwarded_for"';#指定日志位置#access_log  logs/access.log  main;sendfile        on;  #开启高效文件传输#tcp_nopush     on;  #用来提升网络包的传输'效率',sendfile开启才可开启#keepalive_timeout  0;keepalive_timeout  65;  #连接保持时间#gzip  on;             #文件压缩模式server {			  #一个服务模块listen       80;   #占用端口号server_name  localhost; #虚拟服务器的识别标志#charset koi8-r;    #设置编码集#该服务模块的日志位置#access_log  logs/host.access.log  main;#请求路径匹配location / {root   html;index  index.html index.htm;}#error_page  404              /404.html; #错误页面展示error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}}
}

多虚拟机配置

基于多端口的虚拟主机配置
  1. 修改nginx配置文件
[root@localhost /]# vi /tmp/tngx/conf/nginx.conf  

#在配置文件添加如下信息

   #添加一个server模块,表示nginx启动之后占用两个端口分别为9999和80server {listen    9999;charset utf-8;location /{root /baihzi;}}server {listen      80;server_name  localhost;location / {root   html;index  index.html index.htm;}error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}}
  1. 重启nginx
[root@localhost /]# /tmp/tngx/sbin/nginx -s reload
#访问测试

基于多ip的虚拟主机配置

  1. 为主机添加vip(详细介绍可以看本人另一篇mycat快速搭建)

在这里插入图片描述

  1. 修改配置文件
server {listen    192.168.157.101:80;charset utf-8;location /{root /baihzi;}
}
server {listen      192.168.157.111:80;server_name  localhost;location / {root   html;index  index.html index.htm;}error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}
}
  1. 重启nginx
[root@localhost /]# /tmp/tngx/sbin/nginx -s reload
  1. 访问nginx

多虚拟主机的日志配置

  1. 修改配置文件
server {listen    192.168.157.101:80;access_log  logs/zhangsan/access.log #仅对当前服务生效的日志配置charset utf-8;location /{root /baihzi;}
}
server {listen      192.168.157.111:80;server_name  localhost;access_log  logs/lisi/access.log #仅对当前服务生效的日志配置location / {root   html;index  index.html index.htm;}error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}
}
  1. 重启nginx
[root@localhost lisi]# /tmp/tngx/sbin/nginx -s reload

再补充一下比较常用的nginx.conf的配置

静态资源压缩

#配置文件中开启如下参数gzip on;gzip_http_version 1.1;gzip_comp_level 4;gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;

目录浏览

location / {root /shuaihui;# index index.html   #默认访问网页,必须没有此配置,并且指定目录中也不能有index.htmlautoindex on; #添加此内容
}

状态页配置

nginx提供的状态查询模块,用于检测nginx当前状态

该功能需要在编译nginx时添加–with-http-stud-status_module才能使用

在配置文件中添加如下配置server{listen 85; #监听85端口location / {stub_status on; #开启状态页access_log off; #关闭日志 }
}

location匹配机制

根据用户请求的地址,进行不同的处理

location的不相同写法
location [=|~*|^~] url {相应的处理
}匹配符  匹配规则            优先级(数值越小优先级越高)=     精确匹配				 1^~    以某开头,不支持正则	 2 ~*    支持正则				 3空    路径匹配       		4/     通配				  5
#案例
server {listen 83;location / {return 401;}location = /zhangsan {return 402;}location /lisi/ {return 403;}location ^~ /wangwu/ {return 404;}location ~* \.(gif|jpg|jpeg)$ {return 500;}}

URL重写

将用户请求的路径再次跳转到指定路径

#语法    rewrite  用户请求路径  跳转路径  匹配规则server {listen 90;server_name _;location / {rewrite ^/(.*) http://www.baidu.com/$1 permanent;}
}

rewrite结尾参数如下:

  1. last 匹配完成后,继续向下匹配
  2. break 匹配完成后,不再匹配
  3. redirct 临时重定向,浏览器展示跳转之后的url,爬虫不会更新
  4. permanent 永久重定向,浏览器展示跳转之后的url,爬虫会会更新

Nginx访问认证

nginx提供访问认证,用户访问时需做登陆验证

#使用linux生成验证文件
[root@localhost /]# yum install -y httpd-tools #下载http工具包[root@localhost /]# htpasswd -bc 文件位置  用户名 密码
#修改nginx配置
server {listen 95;server_name _;location / {root /shuaihui;auth_basic "test auth";auth_basic_user_file 上面生成的文件位置;}
}

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

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

相关文章

ctfhub技能树_web_web前置技能_HTTP

目录 一、HTTP协议 1.1、请求方式 1.2、302跳转 1.3、Cookie 1.4、基础认证 1.5、响应包源代码 一、HTTP协议 1.1、请求方式 注:HTTP协议中定义了八种请求方法。这八种都有:1、OPTIONS :返回服务器针对特定资源所支持的HTTP请求方法…

通过查看ThreadLocal的源码进行简单理解

目录 为什么要使用ThreadLocal? 简单案例 ThreadLocal源码分析 断点跟踪 为什么要使用ThreadLocal 在多线程下,如果同时修改公共变量可能会存在线程安全问题,JDK虽然提供了同步锁与Lock等方法给公共访问资源加锁,但在高并发…

力扣 --- H指数

题目描述: 给你一个整数数组 citations ,其中 citations[i] 表示研究者的第 i 篇论文被引用的次数。计算并返回该研究者的 h 指数。 根据维基百科上 h 指数的定义:h 代表“高引用次数” ,一名科研人员的 h 指数 是指他&#xff…

【HDFS】调试慢节点pipiline ack信息

Client - DN1 - DN2 - DN3 DN3 send ack:[0][d3]。 DN2 send ack: [从dn2入队到收到dn3的ack耗时,0] [d2,d3]。 DN1 send ack: [pkt从dn1入队到收到dn2的ack耗时,pkt从dn2入队到收到dn3的ack耗时,0] [d1,d2,d3]。 Client receive: 就是DN1发送过来数据。 客户端收到的第一个…

【论文笔记】Universal Guidance for Diffusion Models

Abstract 典型的扩散模型经过训练以接受特定形式的条件作用(最常见的是文本),并且如果不经过重新训练就不能接受其他形式的条件的作用。 这项工作中提出了一种通用制导算法(universal guidance algorithm),使扩散模型能够通过任意…

python弹球小游戏

import pygame import random# 游戏窗口大小 WIDTH 800 HEIGHT 600# 定义颜色 WHITE (255, 255, 255) BLACK (0, 0, 0) RED (255, 0, 0) GREEN (0, 255, 0) BLUE (0, 0, 255)# 球的类 class Ball:def __init__(self):self.radius 10self.speed [random.randint(2, 4),…

DELL EMC unity 存储系统日志收集方法

对于一些非简单的硬件故障,解决故障最有效、最快速的方法就是收集日志,而不是瞎搞。常见的乱搞方法就是 1. reimage系统‘ 2. 更换控制器;3, 重启。 本文详细介绍了图形界面GUI和命令行CLI下如何收集DELL EMC Unity日志的方法和常…

Spring Cloud笔记 —— 什么是Spring Cloud?

引言: 在写这篇博客之前,其实吧,博主很久之前有过一段时间的Spring Cloud的案例项目开发经验,就是一个案例项目开发而已,也说不上有多高大上,那个时候,我其实也是从众而已罢了,毕竟现…

LLM;超越记忆《第 2 部分 》

一、说明 在这篇博客中,我深入研究了将大型语言模型(LLM)提升到基本记忆之上的数学框架。我们探索了动态上下文学习、连续空间插值及其生成能力,揭示了 LLM 如何理解、适应和创新超越传统机器学习模型。 LLM代表了人工智能的重大飞…

基于相关性的四种机器学习聚类方法

在这篇文章中,基于20家公司的股票价格时间序列数据。根据股票价格之间的相关性,看一下对这些公司进行分类的四种不同方式。 苹果(AAPL),亚马逊(AMZN),Facebook(META&…

TCP简介及特性

1. TCP协议简介 TCP是Transmission Control Protocol的简称,中文名是传输控制协议。它是一种面向连接的、可靠的、基于IP的传输层协议。两个TCP应用之间在传输数据的之前必须建立一个TCP连接,TCP采用数据流的形式在网络中传输数据。TCP为了保证报文传输的…

idea汉化

所有的jetbrains 汉化包下载地址, 包括leda ,pycharm /,datagrip 等软件,,所有方法都一样:搜索对应的版本需要的包 下载后,在idea的插件中选择从磁盘加载,然后重启 ,即可…

循环队列的结构设计和基本操作的实现(初始化,入队,出队,判空,获取长度,清空,销毁)

目录 1.队列的定义 2.循环队列的设计图示 3.循环队列的结构设计 4.循环队列的实现 5.循环队列的总结 1.队列的定义 和栈相反,队列(queue)是一种先进先出(first in first out,缩写为FIFO)的线性表.它只允许在表的一端进行插入,而在另一端删除元素. 在队列中,允许插入的一…

根文件系统构建-busybox中文支持

一. 简介 根文件系统里面就是一堆的可执行文件和其他文件组成的?难道我们得一个一个的从网上去下载这些文件?显然这是不现实的!那么有没有人或者组织专门干这个事呢? 他们负责“收集”这些文件,然后将其打包&#xf…

阿里云域名解析到非默认端口处理方式

1.需配置两条解析记录,如下图 2.第一条配置A记录,ip指向部署服务器 3.第二条配置隐形记录,指向第一条的网址,并附带端口号,最终访问第二条的网址就不用带非默认端口号了。 4.最终浏览器访问

[FC][常见Mapper IRQ研究]

本次IRQ研究了如下表所示Mapper的IRQ操作: 卡带名Mapper号VRC373VRC421,23,25VRC624 & 26VRC785MMC34MMC410MMC55Sunsoft FME-769Namco16319Jaleco SS 8800618RAMBO-164 共计11种Mapper的IRQ操作使用例子 代码内有详细注释, 希望能帮助到感兴趣的人. Mapper控制代码(MMC3…

matplotlib学习

显示两个figure 坐标上刻度修改 plt.xlim() 下标范围 plt.xticks() 替换新的下标 图例显示 散点图 subplot多合一显示

docker部署frp穿透内网

文章目录 (1)部署frps服务器(2)部署frpc客户端(3)重启与访问frp(4)配置nginx反向代理 (1)部署frps服务器 docker安装参考文档:docker基本知识 1…

Tmux奇技淫巧

Tmux奇技淫巧 在日常的开发工作中,终端是我们最常用的工具之一。在终端中我们可以调用各种解释器,来执行命令,完成我们的工作。然而,对于只使用终端的默认功能的开发者来说,他们可能会错过一些强大的工具和技巧&#…

【SLAM十四讲-9.3 实践Ceres BA-BAL数据集problem-16-22106-pre.txt分析】

数据集Dubrovnik Dataset 杜布罗夫尼克数据集的链接:Bundle Adjustment in the Large https://grail.cs.washington.edu/projects/bal/ problem-16-22106-pre.txt.bz216 22106 83718(这里是第1行) 0 0 -3.859900e02 3.871200e02&#x…