第一期 操作系统基础,web基础
OpenEuler 目录
- 学习系统常用应用(Apache + Nginx + DNS + MySQL)
- 服务器集群架构(HAProxy, Nginx, LVS,keepalived)
- 存储管理(GlusterFS,NAS,SAN)
- 自动化基础(Ansible,SaltStack)
- Shell脚本基础(变量,语法,函数,正则,awk,sed,grep)
- 系统安全加固,内核参数配置介绍,Selinux
- Zabbix监控 & A-Ops(openEuler自带)
- 综合项目部署搭建(Zabbix监控 + LVS/nginx/Keepalived 集群部署 + GlusterFS 分布式存储 + Mysql主备集群 + ansible 部署 + ordPress 应用)
文章目录
- [第一期 操作系统基础,web基础](#第一期 操作系统基础,web基础)
系统常用应用(www,Apache + Nginx + DNS + MySQL)
www 万维网
- 万维网三要素: URI(uniform resource locator) + HTML(HyperText Markup Language) + HTTP(HyperText Transfer Protocol)
- HTTP版本:
- 0.9 仅支持GET方法
- 1.0 新增POST、HEAD方法,单次连接
- (稳定常用)1.1 新增PUT,PATCH,OPTIONS,DELETE方法,新增持久连接
- 2.0 新增多路复用, header信息压缩,乱序传输
- 3.0 改用TCP 为UDP
- https 和 http
- 默认端口 http 为 80,https为443
- https 新增证书验证,校验域名与IP的对应关系,并通过证书对传输的数据进行加密
- https 牺牲少量效率提高网站的安全性
- Web服务常用状态码
- 200 正常
- 403 访问拒绝,未登录或已登录权限不够
- 401 未登录
- 404 地址错误,资源不存在
- 301 重定向地址
- 500及500+ 错误
Apache
- 历史悠久的web服务器,能代理静态资源(图片,文档,html)等,也能代理网络服务请求
- 与下面的nginx 功能非常相似,apache拥有很丰富的插件,功能定制
- apache 的三种处理模式
- prefork, 多进程处理,一个进程处理一个请求
- worker,多进程 + 多线程,一个进程中有多个线程,一个线程处理一个请求
- Event,在Worker模式下,新增一个监听进程,接收并转发请求给实际工作的线程
- 配置apache 部署一个简单的前端网站
- 安装apache,
yum install -y httpd
- 配置文件:/etc/httpd/conf/httpd.conf
- 启动服务:systemctl enable --now httpd
- 默认端口为80,如果冲突,修改配置文件
- 打开防火墙(linux系统,宝塔,云服务商) 的80端口
- 为主页添加内容:
echo "Hello Apache!" > /var/www/html/index.html
- 打开浏览器访问 "http://ip", 此处IP需要更换为你的实际IP地址,本地访问可使用 "http://127.0.0.1"
- 安装apache,
- Apache Httpd功能介绍
- 虚拟主机:多端口,多域名访问,多IP地址访问(一台机器有多张网卡时)
- 权限控制
- 访问优化(压缩,长连接,进程/线程数量)
- 访问记录(服务日志,错误日志,调整日志输出)
Nginx
- nginx 是一个功能强大,轻量化的代理服务器,可部署前端页面,代理后端端口,实现负载均衡以及故障切换功能
-
nginx 的特性
- 高并发
- 内存消耗低
- 高扩展性
- 高可靠性
-
nginx架构
- Master + worker
- 抢占机制 + 异步非阻塞模式
-
nginx 可实现功能
- 反向代理
- 本地资源访问
- 负载均衡
- 故障切换
-
nginx 部署一个简单的网站
-
安装nginx,
yum install -y nginx
-
运行nginx,
systemctl start nginx
-
配置文件:
/etc/nginx/nginx.conf
-
写入自己的内容:
echo "Hello Nginx" > /usr/share/nginx/html/index.html
-
打开地址
http://ip
或者 "http://127.0.0.1"
-
-
nginx 常用命令
- 检查配置
nginx -t
- 重新启动
nginx -s reload
- 关闭
nginx -s quit
- 检查配置
-
常用配置说明
全局配置
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
include /usr/share/nginx/modules/*.conf;最大连接数
events {
worker_connections 1024;
}虚拟主机,类似地还有Stream
http -> server -> location
http {
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 /var/log/nginx/access.log main;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 4096;
include /etc/nginx/mime.types;
default_type application/octet-stream;
include /etc/nginx/conf.d/*.conf;server { listen 8777; # ipv4 端口 server_name _; root /usr/share/nginx/html; # 静态文件根路径 include /etc/nginx/default.d/*.conf; error_page 404 /404.html; location = /404.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } }
}
-
常用的就是对于location进行配置
-
代理静态文件
location / {
root /var/www/html;
index index.html index.htm;
}location /api {
# 反向代理地址,可用于跨域
proxy_pass http://www.baidu.com;
}
- DNS 服务
- bind
- named
- dig
- nslookup
- host
- Mysql数据库
- Mysql是一款开源,拥有免费版和商业版的数据库,支持关系型数据库,使用C/S 架构访问(Client / Server)远程访问
- 安装
yum install -y mysql
- 启动
systemctl enable --now mysql
- 初次登录:
mysql
- 修改密码:
alter user root@'localhost' identified by 'Hznga@12@4';
- 创建数据库:
create database mydb;
- 查看数据库:
show databases;
- 使用密码登录:
mysql -u root -p
, 然后输入密码,输入时屏幕无反应
LAMP & LNMP
- LAMP : Linux + Apache + Mysql + Php
- LNMP :Linux + Nginx + Mysql + php