Nginx 代理多个服务器(多个server方式)

1.介绍

1.1 背景介绍

  • 如果每台linux服务器只运行了一个小网站,那么人气低,流量小的草根站长需要承担高额的服务器租赁费,也造成了硬件资源浪费。
  • 虚拟主机就是将一台服务器分割成多个“虚拟服务器”,每个站点使用各自的硬盘空间,由于省资源,省钱,众多网站都使用虚拟主机来部署网站。
  • 虚拟主机的概念就是在web服务里的一个独立的网站站点,这个站点对应独立的域名(IP),具有独立的程序和资源目录,可以独立的对外提供服务。
  • 这个独立的站点配置是在nginx.conf中使用server{}代码块标签来表示一个虚拟主机。
  • Nginx支持多个server{}标签,即支持多个虚拟主机站点。
  • 虚拟主机定义了网站的端口,域名,网页内容存放路径

1.2 虚拟主机类型

  • 基于域名的虚拟主机
  • 通过不同的域名区分不同的虚拟主机,是企业应用最广的虚拟主机。
  • 基于端口的虚拟主机
  • 通过不同的端口来区分不同的虚拟主机,一般用作企业内部网站,不对外直接提供服务的后台,例如www.pythonav.cn:9000
  • 基于IP的虚拟主机
  • 通过不同的IP区分不同的虚拟主机,此类比较少见,一般业务需要多IP的常见都会在负载均衡中绑定IP1.3 多虚拟主机 使用基于域名
  • nginx可以自动识别用户请求的域名,根据不同的域名请求服务器传输不同的内容,只需要保证服务器上有一个可用的ip地址,配置好dns解析服务。
  • /etc/hosts是linux系统中本地dns解析的配置文件,同样可以达到域名访问效果

2.多虚拟主机案例(基于IP)

2.1 环境准备

基于多域名的虚拟主机实现,其实就是读个server标签   

环境准备,
1个linux服务器, ip地址:10.0.0.129

安装好nginx软件

在windows中写入2个hosts假的域名
找到如下文件,编辑写入域名对应关系(C:\windows\System32\drivers\etc\hosts)

10.0.0.129 www.dbjwb.com
10.0.0.129 www.dbjapi.com

2.2 修给nginx.conf的配置,

  • 实现多虚拟主机,多个server{}标签是同级的关系

2.2.1 server

# 第一个主机,域名部分替换为你自己的域名,此处是随意写的
server {
        # 监听的端口号 
        listen       80;
        server_name  www.yourdomain1.com;
        location / {
            # root参数定义网页的根目录,
            root   /opt/api/;
            # 指定首页文件的名字,两个都是,可以删掉一个
            index  index.html;
        }
} 
# 第二个主机
server {
        listen  80;
        server_name  www.yourdomain2.com;
        location / {
            root   /opt/wb/;
            index  index.html;
        }
}   

2.2.2 完整配置

# 进程数
worker_processes  1;
events {
    worker_connections  1024;
}
# 核心代码
http {
    include       mime.types;
    default_type  application/octet-stream;
    # 定义nginx访问日志的格式 
    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;
    # 推图片等静态文件压缩,提升传输效率
    gizp  on;
    #server被称为虚拟主机,可以有多个
    # 第一个主机
    server {
        # 监听的端口号 
        listen       80;
        server_name  www.yourdomain1.com;
        location / {
            # root参数定义网页的根目录,
            root   /opt/api/;
            # 指定首页文件的名字,两个都是,可以删掉一个
            index  index.html;
        }
} 
# 第二个主机
server {
        listen  80;
        server_name  www.yourdomain2.com;
        location / {
            root   /opt/wb/;
            index  index.html;
        }
}   
}

2.2.3 创建文件夹/index.html

新建文件夹  
mkdir -p /opt/{api,wb}

各自新建一个index.html,写入内容,随便找一个html
vim index.html

2.3 重启nginx

nginx -s reload

2.4 访问对应的域名,即可看见内容

文章来源:https://www.cnaaa.net,转载请注明出处:https://www.cnaaa.net/archives/5124

(4)
安屠生的头像安屠生
上一篇 2022年6月22日 下午3:12
下一篇 2022年6月24日 下午3:42

相关推荐

  • DM工作笔记-DATEADD(指定日期添加n个时间段)函数和其他时间函数

    达梦官方文档已经说得很清楚了,在此仅记录下笔记,方便以后进行查阅。 DATEADD对应的相关文档如下: 这里说明下CREATE_TIME是TIMESTAMP类型。 如下例子: 运行截图如下: 现在有个需求,让CREATE_TIME添加,2秒,2分钟,2小时,2年。 对应的SQL如下: 运行截图如下: 如果再有这样的一个需求,离现在(当前时刻)2小时外的数据是…

    2023年12月27日
    2.6K00
  • Linux访问远程FTP服务器并下载文件

    一、安装ftp客户端工具 二、客户端连接ftp服务器 三、上传下载文件 1、下载文件 备注: ①文件都下载到了linux 主机的当前目录下。比如,在 /home/ftp下运行的ftp命令,则文件都下载到了/home/ftp 下。②如果想制定下载路径,需要在ftp用到 lcd 命令 2、上传文件 备注: 上传文件都来自于主机的当前目录下。比如,在 /home/…

    2023年11月8日
    1.6K00
  • nginx配置负载均衡–实战项目(适用于轮询、加权轮询、ip_hash)

    两台服务器: 业务需求:有两台服务器,一台供于线上使用(172.16.10.10),一台供于研发使用(172.16.10.20) 如果线上的服务器挂了,需要将所有请求转移到研发的机器上,以确保线上服务正常使用; 正常时间还是线上使用线上的服务器,研发用研发的服务器;只有在线上服务器挂了的时候才会使用备用的研发服务器; 需求实现:使用nginx负载均衡来实现;…

    2023年12月25日
    1.1K00
  • 轻松搭建DHCP服务器

    DHCP(Dynamic Host Configuration Protocol)动态主机配置协议 DHCP(Dynamic Host Configuration Protocol),动态主机配置协议,是一个应用层协议。当我们将客户主机ip地址设置为动态获取方式时,DHCP服务器就会根据DHCP协议给客户端分配IP,使得客户机能够利用这个IP上网。DHCP的…

    2023年12月6日
    1.1K00
  • 实用Word技巧分享:快速且批量删除空格、空行 word如何批量删除空格行

    今天我们来聊聊Word查找替换技巧,介绍一下批量删除空格、空行的方法,快来看看吧! 在日常工作中我们经常会碰到以下2个困扰: 如,很多网上下载或拷贝到Word的纯文本形式的资料,最烦的莫过于文档中有一大堆空格或空行(回车符),格式非常混乱,完全不符合排版要求,如图所示。如果要一行一行的删除它们,费时费力。 为了快速让文本规范整洁,效果如图所示。 接下来,教大…

    2024年5月7日
    1.8K00

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

在线咨询: QQ交谈

邮件:712342017@qq.com

工作时间:周一至周五,8:30-17:30,节假日休息

关注微信