nginx---多个server

1. 介绍

1.1 背景介绍

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

1.2 虚拟主机类型

  • 基于域名的虚拟主机
  • 通过不同的域名区分不同的虚拟主机,是企业应用最广的虚拟主机。
  • 基于端口的虚拟主机
  • 通过不同的端口来区分不同的虚拟主机,一般用作企业内部网站,不对外直接提供服务的后台,例如www.pythonav.cn:9000
  • 基于IP的虚拟主机
  • 通过不同的IP区分不同的虚拟主机,此类比较少见,一般业务需要多IP的常见都会在负载均衡中绑定IP

1.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.dbjapi.com;
        location / {
            # root参数定义网页的根目录,
            root   /opt/api/;
            # 指定首页文件的名字,两个都是,可以删掉一个
            index  index.html;
        }
} 
# 第二个主机
server {
        listen  80;
        server_name  www.dbjwb.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.dbjapi.com;
        location / {
            # root参数定义网页的根目录,
            root   /opt/api/;
            # 指定首页文件的名字,两个都是,可以删掉一个
            index  index.html;
        }
} 
# 第二个主机
server {
        listen  80;
        server_name  www.dbjwb.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 访问对应的域名,即可看见内容

  • www.dbjapi.com
  • www.dbjwb.com

  • 2
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
nacos-server-1.2.0.zip 包是从github上下载的官方源包 Nacos 1.2 踩坑记录 坑1: nacos-mysql.sql 文件中的 permissions 表, 创建的联合唯一键超长, sql文件里是512长度, 导致报 Specified key was too long; max key length is 767 bytes 解决方案1: 直接缩短到255长度 解决方案2: 修改数据库配置, set innodb_large_prefix=on 吐槽一下, 1.2.0版本比1.1.4版本多创建一个数据表, 为甚么前面的sql有引擎,有编码,有注释, 1.2.0新增的表没有这些? 发布之前不做sql的兼容? 强迫症患者表示很难受 坑2: windows版集群部署, 官方文档只交代了简单的配置, 集群模式启动命令中需要加上 -m, 这是在修改startup.cmd看到脚本发现的, 不加-m永远是单机模式... 单机模式: -m standalone 或不配置 -m 集群模式: -m 参数值不等于standalone皆可 压缩包提供了已经修改好的启动文件 startup.cmd, 并支持启动时可附带ip和端口的设置, 支持跨网段集群 下载学习的同学可以对照一下改动位置 linux环境对应修改startup.sh文件, 这个包本身是windows版, 所以我没做sh文件的改动 补充: 集群配置 1、修改 application.properties 末尾追加数据库配置, 用于集群环境下存储 Nacos 配置文件 spring.datasource.platform=mysql db.num=1 db.url.0=jdbc:mysql://ip:port/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true db.user=xxxx db.password=xxxxx 2、复制 cluster.conf.example 并重命名为 cluster.conf, 写入配置, 最少3个节点构成集群 192.168.1.2:8848 192.168.1.2:8849 192.168.1.2:8850 3、nginx反向代理配置, 因为我这里是单台机器 upstream nacos-server { server 127.0.0.1:8848; server 127.0.0.1:8849; server 127.0.0.1:8850; } server { listen 80; server_name localhost; location / { proxy_pass http://nacos-server; } } 4、启动集群, 写个脚本批量启动 startup_all.bat, 脚本代码如下 start startup.cmd -m -i 192.168.1.2 -p 8848 start startup.cmd -m -i 192.168.1.2 -p 8849 start startup.cmd -m -i 192.168.1.2 -p 8850 需要注意启动命令的 -i 和 -p 是我们自己加入的, 配置的ip和端口需要跟 cluster.conf 对应, 缺省127.0.0.1:8848 此时打开Nacos后台,能看到3个节点已构成集群模式: 节点Ip 节点状态 集群任期 Leader止时(ms) 心跳止时(ms) 192.168.1.2:8849 LEADER 1 16736 2500 192.168.1.2:8848 FOLLOWER 1 12510 2500 192.168.1.2:8850 FOLLOWER 1 16397 2500

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

骑猪去兜风z1

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值