4 Linux 网站架构服务介绍

Linux

1 综合架构组成部分和服务规划

网站架构一般从两方面考虑问题:

  1. 用户访问网站
  2. 网站管理者访问网站
1.1 用户访问网站
1.1.1 静态集群架构
  1. 当用户访问网站时,先通过DNS服务器对网址进行解析处理,再向解析得到的地址发送请求;
  2. 请求发送到网站设备上,一般需要经过防火墙设备。防火墙设备会对所有的请求进行过滤,阻止非法请求,并对合法请求进行映射,将其发送到架构内部的服务器上;
  3. 首先到达负载均衡服务器,负载均衡服务器主要用于解决高并发问题,将所有请求按照一定的策略分发给不同的web服务器。
    解决高并发,一般采用集群的思路,多台web服务器构建成静态集群架构,可以在面对大量用户访问时实现快速响应,极大地提升了并发访问量;
  4. 如果只提供一台负载均衡服务器,可能会出现单点故障,为了提升架构的冗余能力,架构中会额外提供备用的负载均衡服务器;
    为了分担主负载均衡服务器的访问压力,一般会对主的和备用的负载均衡服务器的资源进行调整,实现负载均衡中的双主配置。(类似于社团中的双话事人制度)
  5. 一般网站提供的图片、音频、视频、附件等资源不直接存储于web服务器中,而是存储于存储服务器中;
    传统的存储服务器称为本地存储服务器,web服务器中存储了资源的挂载点目录,当用户需要访问资源时,通过web服务器中的挂载点访问本地存储服务器中的资源,这样做便于数据统一管理;
    如果需要访问大量数据,本地存储服务器会产生大量的磁盘IO操作,使得访问速度下降。为了解决这一问题,目前主流的存储方案是分布式存储。分布式存储中存在许多存储节点来连接多台存储服务器,数据会分别存储于不同的服务器中。来自web服务器的访问会达到管理节点,管理节点通过各个管理节点对不同的服务器中的数据进行整合,实现数据高效存取。
1.1.2 动态集群架构

动态集群架构可以提供动态请求服务,不同类型语言的动态请求对应不同的服务部署。

php => php-fpm
java => tomcat
python => uwsgi

动态集群架构中的存储服务器是数据库服务器,数据库服务器包括主数据库服务器和从数据库服务器,从数据库服务器会对主数据库服务器中的数据进行实时同步。从服务器一般处理读数据的请求,主数据库服务器一般处理写数据的请求,这样就实现了读写分离的架构。

1.1.3 缓存服务器

缓存服务器一般存在与web服务器与存储服务器之间,主要用于减缓存储服务器的压力。存储服务器会将一些热门资源数据存储于缓存服务器中。
读操作,即读取缓存服务器中的数据 — redis
写操作,一般写到缓存服务器中的缓存中 — 队列服务器

1.1.4 备份服务器

备份服务器一般用于定时或实时地对架构中的重要数据进行备份。
备份服务器的架构思路主要是两地三中心,为了进一步保证数据安全。

1.2 网站管理者访问网站
  1. VPN服务器
    网站管理者一般通过网络远程管理服务器,利用VPN服务器建立外网主机与网站服务器之间的虚拟专用通路。
  2. 跳板机/堡垒机服务器
    VPN服务器后一般会配备跳板机/堡垒机服务器,主要用于对网站管理者的访问权限进行管理控制,以及记录管理者的操作行为,定位责任。
  3. 监控服务器
    监控服务器主要用于监控各个服务器的运行状况,以便管理者及时做出调整。
  4. 批量管理服务器
    对架构中的多台服务器进行批量管理。
  5. 日志审计服务器
    运营部门需要收集数据以便分析处理,日志审计服务器提供日志收集、过滤筛选以及数据展示等功能。
  6. 业务分配服务
    用于为工作人员(主要是运维人员)分配任务,记录工作状态和结果。
  7. 资源共享服务器
    用于工作人员进行资料资源共享。

在这里插入图片描述

2 架构网站服务应用

2.1 网站nginx服务部署过程

这里利用官方源进行部署。

  1. 需要配置好yum源文件
vim /etc/yum.repos.d/nginx.repo 

[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
  1. 安装软件程序
yum install -y nginx
  1. 启动软件程序
systemctl start nginx 
systemctl enable nginx
  1. 测试
    使用浏览器访问服务器地址,是否能看到nginx服务欢迎页面。
2.2 网站nginx服务目录结构
rpm -ql nginx
/etc/nginx				--- nginx服务配置文件信息
/etc/nginx/conf.d 		--- nginx服务扩展配置文件信息
/usr/share/nginx/html/	--- nginx服务默认站点目录
/var/log/nginx			--- nginx服务默认日志件信息

/usr/sbin/nginx			--- nginx服务管理命令文件
	-t:test configuration and exit 
		对配置文件做语法检查
	-s signal:send signal to a master process: stop, quit, reopen, reload
		接收信号信息,包括stop-停止,reload-重启
2.3 网站nginx服务配置说明
cat /etc/nginx/nginx.conf
user  www;										 --- 用户信息,默认是系统worker进程用户信息 
ps -ef|grep nginx
	master process:服务运行状态主进程,保证服务处于运行状态
	worker process:服务运行主要用于处理访问网站请求

worker_processes  1;							 --- 定义worker进程数量,默认1个worker进程只能承载3万并发量
                                                     可以调整worker进程数,从而提高网站并发量
error_log  /var/log/nginx/error.log notice;		 --- 记录服务错误日志信息
pid        /var/run/nginx.pid;					 --- 记录服务运行pid文件
events {
    worker_connections  1024;					 --- 定义worker单进程并发建立连接数量
}
http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for" "$http_x_real_ip"'; 
												 --- 设置nginx日志格式信息 log4j
    access_log  /var/log/nginx/access.log  main;
												 --- 定义访问日志文件路径
    keepalive_timeout  65;						 --- 定义TCP长链接超时时间		
    include /etc/nginx/conf.d/*.conf;			 --- 默认还会加其他文件信息

# cat /etc/nginx/conf.d/bbs.conf 
server {
  listen  80;									 --- 指定监听网络端口信息
  server_name bbs.oldboy.com;					 --- 定义网站域名信息
  client_max_body_size 10m;						 --- 定义客户端可以在指定页面上传大于10m数据
  location / {
      root /html/bbs;							 --- 指定站点目录信息
      index index.php index.html index.htm; 	 --- 指定首页文件信息
  }
  location ~ \.php$ {
      root /html/bbs;
      fastcgi_pass  127.0.0.1:9000;				 --- 如果是python代码程序  需要使用uwsgi实现动态请求处理
      include fastcgi_params;
  }
  location = /status {
      stub_status;
  }
}
2.4 网站nginx服务企业应用
2.4.1 静态资源网站构建过程
  1. 获取静态代码信息
  2. 编写配置文件信息
vim /etc/nginx/conf.d/www.conf

server {
	listen     80;
	server_name www.oldboy.com;
	location / {
	    root /html/www;
	    index index.html index.htm;
	}
}
  1. 上传代码信息
mkdir  /html/www
mv game/*  /html/www/
  1. 重启nginx服务
systemct restart nginx
2.4.2 动态资源网站构建过程
  1. 获取代码信息 github/码云
  2. 需要安装好python依赖包
yum需要进行安装依赖:
(1) yum install -y python-pip git mysql-devel redis python-devel 
(2) 需要手动升级python程序  centos7默认2.7 => 3.7

pip需要进行安装依赖:
根据自己代码情况进行安装依赖模块
  1. 安装和配置uwsgi信息
pip install uwsgi
pip3 install uwsgi

vim uwsgi
启动uwsgi服务
  1. 编写nginx服务配置文件
server {
    listen     80;
    server_name www.oldboy.com;
    location / {
        root /html/www;
        index index.html index.htm;
    }
	location /dynamic/ {
	    root /html/www;
		include uwsgi_params;
		uwsgi_pass 127.0.0.1:8000;
	}
  }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值