Linux笔记
概念
服务器就是一个性能超强的计算机
linux是一个操作系统,centos7的发行版
linux命令是什么,就是一个可执行的二进制程序
python first.py python是解释文件中的代码
golang
go run fitst.go golang去读取解释一个文件
go build fist.go 将first.go文件代码编译成一个可执行文件,fitst 这个命令
.java .rb(ruby) .c .exe(windows可执行文件)
增
touch 创建文本
mkdir 创建文件夹
vi 编辑文本的
vim vi的加强版,我们得需要自己下载:yum -y install vim
删
rm 删除文件,文件夹
rm -r 带有提示
rm -rf 不带提示的,直接删除,慎用!!!
rmdir 删除空的文件夹
改
mv 改名
mv one.txt two.txt
mv 移动文件,文件夹
mv /root/s15/two.txt /root/s16/nan/
cd 更换目录
. 当前工作目录
.. 代表上一级工作目录
- 代表上一次的工作目录
~ 当前用户家目录
查
ls 查看文件夹内容
cat 读取文本文件内容
pwd 打印当前工作目录
ip a 查看ip
linux命令的学习
远程连接的操作,虚拟机查看ip:ip a
xshell工具:ssh root@ip 或者 ssh ip(ssh 192.168.13.168)
linux文件目录结构
linux通过正斜杠区分目录,像个树一样
/var 存放经常变化的文件
/home 普通用户家目录
/home/xiaoliu 小刘同学的用户家目录
/etc 存放配置文件的目录
/etc/my.cnf mysql的配置文件,可以修改mysql的中文编码支持
/bin binary二进制 存放可执行文件,存放了一堆命令
/root 超级用户的家目录
/opt 存放第三方软件的目录
/opt/mysql
/opt/nginx
/opt/python3.6
添加用户
useradd li #创建用户li
passwd li 123456 #给li用户创建密码,不指定用户默认给当前登录用户修改密码
删除用户:
userdel -r li#完全删除,用这个就可以
注意的是如果用命令(su - root)进行用户的切换,再进行删除用户需要exit退出,完全退出则可以删除
查看隐藏文件
ls -la
参数-l 以列表形式显示文件
-a 显示所有隐藏的文件
linux以.开头的文件或者文件夹,都是隐藏的
创建文件夹
mkdir -p 递归创建文件夹
mkdir -p /tmp/chaogedir
mkdir ./s15/nvtongxue/{alex,wupeiqi,zhao} 一次性创建多个文件夹
环境变量
linux的环境变量 PATH
在linux上也装python3的时候
/opt/python36/bin/python3.6
[root@localhost /]# echo $PATH
/usr/local/sbin:
/usr/local/bin:
/usr/sbin:
/usr/bin:
/root/bin:
/opt/python36/bin/python3.6:
/opt/nginx/bin/nginx
当我输入python3.6的时候,它会按照path的顺序,自上而下的查找python
linux的路径
只要从根目录开始的查找,就是绝对路径
/home/s15/nvtongxue/chaoge 绝对路径
我当前在nantongxue目录下
../../s15/nvtongxue/juange
例子
2.创建/tmp/chaogeLinux.txt,用绝对路径方式与相对路径两种方法
绝对路径
touch /tmp/chaogelinux.txt
相对路径的写法
cd tmp
touch ./chaogelinux.txt
echo 命令
显示echo给定的值
echo "赵一宁nb" > yining.txt
w 覆盖写入新内容
a 追加模式,从文件末写入新内容
> 重定向输出符,
>> 重定向追加输出符
<< 重定向写入符
cat filename.txt -n 查看文本内容 且显示行号
vim
vim one.txt #进入one.txt文本中
:set nu 显示行号
粘贴复制前提是命令模式,也就是按下ESC后
在光标所在行 yy 复制这一行:5yy 复制5行
在光标所在行 dd 删除这一行:5dd 删除5行
python.py报错问题
在脚本文件的第一行,写一个 #coding:utf8
#coding:utf8
print("halo 我认得")
more 用于查看大文件
linux的man手册 查看命令的帮助
everything的软件--------->电脑查找文件的软件
cp拷贝命令
cp 目标文件 考到哪里路径(cp /root/s15/nv/one.txt /root/s16/nan/)
cp -r 递归拷贝文件夹 及上
find查找文件
find 从哪找 找什么
find / -name 文件名
找到你服务器的/opt目录下的 settings.py (find /opt -name settings.py)
-type 文件类型
f是文件
d是目录
linux管道命令
可以将命令1的结果 传递给命令2 去执行
将cat命令的结果,丢给grep再次处理
cat settings.py | grep "STA*"
grep命令
查找字符串的命令
#从settings.py中查找出 STA*开头的那一行
grep "STA*" settings.py
#查找出除了 dqw*开头的一行,其他的内容,且输出行号
grep -v "dqw*" settings.py -n
tail head 命令
head 默认显示前十行(注意!必须切到绝对路径下!pwd看一下是不是有/root/)
head -5 /root/s15/nv/one.txt (显示前5行)
tail /root/s15/nv/one.txt 默认显示后10行
tail -f 实时监控的命令
alias别名命令
alias查看命令。注意rm='rm -i'
设置rm别名:
当用户输入rm的时候给它提示:别删!
alias rm="echo 别删!"
取消别名
unalias rm #alias查看的时候注意这里没有rm,rm -r你在删除文件的时候不会有提示,我们还得手动的去设置 alias rm='rm -i'
scp 远程传输命令
#自己的文件路径 目标ip的地址以及传到的路径
scp /root/s15/one.txt [email protected](目标地址):/home/
python 补漏
*args 位置参数,接收到一个元祖
**kwargs 关键词传参,接收一个字典
linux文件夹大小的命令
ls -h
du -h
du -sh 查看文件夹大小的合计
linux查看时间
data 查看系统时间,如果不对我们需要自己下载ntp:yum -y install ntp,
之后进行设置时间:ntpdate ntp aliyum.com
wget下载资源的命令
linux如何与windows传输文件
通过一个lrzsz的工具包
#安装软件
yum install lrzsz -y
id查看用户组信息
id root 查看root的用户id(uid 超级用户) 以及组id(gid 添加的用户 gourp id 组的成员)
id xiaobai(查看用户的用户组信息)
/etc/passwd 存放用户信息
/etc/group 存放用户组信息
通过id命令查看用户信息
su 切换用户
su - lizhiqiang(切换到lizhiqiang用户)#注意 su后边的 - 加上-代表完全切换,包括环境变量
root用户切换普通用户 不要密码反之需要输入root密码
xshell快捷键
ctrl + l 清屏
ctrl + d 退出登录
ctrl + shift + r 快速登录
退出登录 exit logout
文件和目录的权限
1.认识名词
r read 可读
w write 可写
x 可执行
-rw-r--r--. 1 root root 712819 Dec 7 08:17 girl.gif -是文件
drwxr-xr-x. 2 root root 6 Dec 26 20:49 nb d是文件夹
权限相关 软连接数 属于哪个用户 属于哪个组 文件大小 日期 文件名
文件夹的权限
d rwx(user) r-x(group) r-x(others)
root这个用户 属于root组里的 other权限
2.linux读写操作
可读 cat vi more less head tail tac
可写 echo vi >重定向符号啦
可执行 二进制程序,可以运行的程序
3.修改文件的权限
chmod o+x li.txt #(给li.txt文件加上other权限的可执行进入权限)
chmod o-w li.txt #(给li.txt文件去掉other权限的可写的权限)
4.修改文件的属主
chown lizhiqiang li.txt #(把li.txt文件改成属于lizhiqiang用户,-rw-r--r-x. 1 lizhiqiang root 10 Dec 27 23:33 li.txt)
5.修改文件的属组
chgrp lizhiqiang li.txt #(把li.txt文件改成属于lizhiqiang用户组,-rw-r--r-x. 1 lizhiqiang lizhiqiang 10 Dec 27 23:33 li.txt)
软连接和环境变量
两者类似,区别是软连接类似快捷方式,环境变量在系统文件中添加属于自己的执行文件的上一级也就是bin目录
tar压缩解压
lrzsz 上传下载的小工具
xftp 文件传输工具
-c 压缩参数
-x 解压参数
-v 显示过程
-f 指定文件 这个参数要写在最后
语法
压缩文件
tar -cf s15.tar * 压缩当前文件目录的s15所有的文件#(tar -cf 压缩文件名.tar 想压缩的内容)
解压文件
tar -xf s15.tar 解压s15压缩包的文件#(tar -xf 压缩文件名)
ps -ef 查看进程
ps -ef 查看进程,还可以结合grep一起用
pa -ef | grep python #查看和python相关的进程
kill杀死进程
kill 123 #杀死进程号是123的进程
kill -9 123 #如果123进程死活杀不死加上-9参数,强制干死和进程相关的依赖
killall nginx #杀死nginx所有的进程
netstat查看网络信息
netstat -tunlp |grep 8000 过滤出 django的8000端口是否存货
netstat [选项]
-t或--tcp:显示TCP传输协议的连线状况;
-u或--udp:显示UDP传输协议的连线状况;
-n或--numeric:直接使用ip地址,而不通过域名服务器;
-l或--listening:显示监控中的服务器的Socket;
-p或--programs:显示正在使用Socket的程序识别码和程序名称;
-a或--all:显示所有连线中的Socket;
防火墙
1.SELinux(内置的防火墙)ssh连不上机器多数是因为这个,不多说,直接上关闭方法
查询selinux状态
getenforce
暂时停止selinxu
setenforce 0
永久关闭selinux
vi /etc/selinux/conf
# enforcing - SELinux security policy is enforced. 开启
# permissive - SELinux prints warnings instead of enforcing. 临时关闭
# disabled - No SELinux policy is loaded. 永久关闭
修改如下行
SELINUX=disabled
重启机器,使得selinx永久关闭
2.软件的防火墙
systemctl status firewalld #查看防火墙状态
systemctl stop firewalld #关闭防火墙
systemctl disable firewalld#关闭防火墙开机启动
systemctl is-enabled firewalld.service#检查防火墙是否启动
3查看防火墙状态
iptables -L
查看系统字符编码
echo $LANG
df命令
用于显示磁盘分区上的可使用的磁盘空间。默认显示单位为KB
df -h
设置主机名
hostnamectl set-hostname li(把主机名改成li)
定时任务
crontab -l 查看任务
crontab -e 编辑任务
#每个星期一的上午8点到11点的第3和15分钟执行命令
分 时 日 月 周
* * * * *
3,15 8-11 * * 1 执行命令
#每月的1,10,22日的4:45重启nginx
分 时 日 月 周
* * * * *
45 4 1,10,22 * * /usr/bin/systemctl restart nginx
linux下载软件格式
1.源码包格式
2.rpm二进制包格式(这种安装方式,需要手动解决依赖关系,有可能装一个mysql,装个俩小时)
3.yum源安装(yum工具,自动的搜索下载rpm包,且安装,且解决依赖关系,自动处理下载其他的依赖rpm包)
yum国内仓库环境的搭建
yum源的仓库路径在/etc/yum.repos.d/然后这个目录底下,只有 以 .repo结尾的文件,才会被识别为yum仓库
1.在/etc/yum.repos.d/目录底下,定制我们自己的repo仓库文件
2.我们自己没有yum仓库,我们就去拿阿里巴巴的yum仓库
3.https://opsx.alibaba.com/mirror 这就是阿里巴巴的镜像站
4.下载阿里巴巴的yum仓库文件
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
wget下载文件后,-O参数,指定放到某个目录,且改名
5.清除yum缓存
yum clean all
6.生成新的阿里云的yum软件缓存
yum makecache
再配置epel额外的仓库源,这个仓库里就存放了很多第三方软件,例如redis mysql nginx
1.配置epel仓库
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
2.最好再生成yum缓存
yum makecache
3.请随心所欲的使用 yum工具
python环境的搭建
1.切换到我们的opt目录下,opt我们存放我们的第三方的软件
cd /opt
2.直接输入命令进行下载python源码
wget https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tgz
3.这里需要说一下记住!python3的依赖包,我们必须先下载好依赖包,否则后期会出现一些问题
yum install gcc patch libffi-devel python-devel zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel -y
4.解压源码
tar -xvf Pthon3.6.2.tgz
5.切换源码包目录
cd Python-3.6.2.tgz
6.进行编译安装
释放编译的文件makefile:./configure --prefix=/opt/python36/
#--prefix 指定软件的安装路径
7。开始编译python3
make
8.编译和安装(这一步完成之后才会出现/opt/python36)
make install
9.配置环境的变量
echo $PATH(查看环境变量) #/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
10.变量的赋值
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/opt/python36/bin
11.linux有一个全局个人配置文件(/etc/profile)
vim /etc/profile
写入:PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/opt/python36/bin
12.读取文件让她生效
source /etc/profile
13.测试能否进行运行
13.1安装django
pip3 install django
13.2建django项目
django-admin startproject mysite
13.3建django应用
django-admin startapp app01
13.4编写视图函数
13.5注意修改setting.py的allow_hosts文件[]里加上"*"
14.启动django项目
python3 manage.py runserver 0.0.0.0:8000
15.需要说明一下的是当我们在网上访问的时候注意不要是0.0.0.0这个ip,应该是我们虚拟机的ip+8000端口号
,还有就是如果访问不了记得看一下防火墙是不是关闭
查看防火墙:iptables -L
关闭防火墙:systemctl stop firewalld
安装virtualevn
1.下载virtualenv工具(在豆瓣安装)
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple virtualenv
2.安装完成后你的linux就多了一个virtualenv命令
3.创建虚拟环境venv1
virtualenv --no-site-packages --python=python3 s15venv1
#--no-site-packages 这是构建干净,隔离的模块的参数
#--python=python3 这个参数是指定虚拟环境以哪一个物理解释器为基础的
4.进入虚拟环境激活虚拟环境
找到你的虚拟环境目录bin地下的activate文件
source myenv/s15venv1/bin/activate
激活虚拟环境,原理就是修改了PATH变量,path是有顺序执行的
echo $PATH 检查环境变量
which python3
which pip3 检查虚拟环境是否正常
5.退出虚拟换的命令:deactivate
保证本地开发和测试一样的环境
我们新建一个虚拟的环境,里边有我们需要的各种环境和安装包,现在我们要转移到另一台虚拟环境运行,我们需要一样的依赖包,
1.命令:pip3 freeze > requirements.txt(把当前虚拟环境的依赖包打印在requirements.txt文件中)
2.在另一台虚拟环境中命令:pip3 install -r requirements.txt 这样我们就安装了一样的依赖包
virtualenvwrapper虚拟环境管理工具(就是管理虚拟环境的工具)
1.前提:必须是在物理解释器下(不是其中的一个虚拟环境)
pip3 install virtualenvwrapper
2.注意:path的配置,需要将物理解释器的python,放在path最前面(查找有顺序)
[root@localhost ~]# echo $PATH
vim /etc/profile/(总得环境配置文件)
#/opt/python36/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin
3.编辑用户家目录的.bashrc文件(用户登陆的时候就会读取这个文件)
3.1进入用户的家目录:vim ~/.bashrc
3.2添加字符串:
export VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--no-site-packages'
#添加virtualenvwrapper的参数,生成干净隔绝的环境
export VIRTUALENVWRAPPER_PYTHON=/opt/python36/bin/python3
#指定python解释器
source /opt/python34/bin/virtualenvwrapper.sh
#执行virtualenvwrapper安装脚本,这个是virtualenvwrapper.sh的安装路径(查看安装路径:which virtualenvwrapper.sh)
3.3 :x (相当于:wx!)
3.4 退出:logout
3.5重新登录:ssh ...
4.如果正确则会使用virtualenvwrapper工具
5.mkvirtualenv li (创建li的虚拟环境且激活虚拟环境)
6.workon li (切换li的虚拟环境)
7.deactivate (退出虚拟环境)
9.cdvirttualenv(进入当前激活的虚拟环境所在的目录(这里建我们的项目app))
10.cdsitepackages (进入当前激活的虚拟环境的,python包的目录(下载第三方软件包))
8.rmvirtualenv li(删除li的虚拟环境)
redis的安装
1.进入/opt/目录下:cd /opt/
2.源码包安装:wget http://download.redis.io/releases/redis-4.0.10.tar.gz
3.解压当前目录:tar -zxf redis-4.0.10.tar.gz
4.进入源码包编译安装:make && make install
5.执行redis-servre #启动redis
6.找到redis.conf 找到 daemonize 把no改成yes#后台运行
7.启动:redis-servre redis.conf #制定配置文件启动,并且后台运行
8.启动客户端:redis-cli
9.客户端:ping #返回结果是PONG 代表成功
10 top#查看进程和CPU占用率
11.为了安全我们需要更改我们的默认端口,进程安全
11.1 ps -ef|grep redis #查看redis的进程之后杀死
11.2进入redis.conf -->bind=0.0.0.0 #远程访问
11.3进入redis.conf更改默认端口:port=6379 -->6380
11.4进入redis.conf更改密码:requirepass =123456
11.5 grep 123456 redis.conf#查看刚刚设置的密码
11.6指定配置文件启动:redis-servre redis.conf#刚刚设置的文件开始生效
11.6.1启动服务端:redis-cli -p 6380 #设置的端口号必须加上否则报错
11.6.2 auth 123456#跟上密码 (#keys * #redis-servre redis.conf)
11.6.3 keys *#现在就可以了
12.通过登录redis,用命令查看redis的密码
config set requirepass 新的密码 #设置新密码
config get requirepass #获取当前的密码
mysql安装
1.安装的三种方式
yum
源码
rpm
区别
1.路径区别-yum安装的软件是他自定义的,源码安装的软件./configure --preifx=软件安装的绝对路径
2.yum仓库的软件,版本可能比较低,而源码编译安装,版本可控
3.编译安装的软件,支持第三方功能扩展./configure 这里可以加上很多参数,定制功能
2.源码安装
1.mariadb官网
1.手动创建 mariadb.repo仓库文件
touch /etc/yum.repos.d/mariadb.repo
然后写入如下内容
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.1/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
1.1.如果下载速度太慢,请删除 mariadb.repo,只是为了使用阿里云的yum源中的mariadb
rm -rf /etc/yum.repos.d/Mariadb.repo
然后清空yum 缓存
yum clean all
2.阿里安装
yum install mariadb-server mariadb -y
3.安装完成后,启动mariadb服务
systemctl start/stop/restart/status mariadb
systemctl enable mariadb 开机启动mariadb
4.mysql初始化
mysql_secure_installation 这条命令可以初始化mysql,删除匿名用户,设置root密码等等....
详情见:https://www.cnblogs.com/pyyu/p/9467289.html
5.设置mysql的中文编码支持,修改/etc/my.cnf
1.
vi /etc/my.cnf
在[mysqld]中添加参数,使得mariadb服务端支持中文
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
2.重启mariadb服务,读取my.cnf新配置
systemctl restart mariadb
3.登录数据库,查看字符编码
mysql -uroot -p
输入 \s 查看编码
6.输入查看状态:systemctl status mariadb# Active: active (running)启动
7.查看进程:[root@localhost yum.repos.d]# pa -ef | grep mariadb
8.启动:[root@localhost yum.repos.d]# mysql -uroot -p123456(密码)
9.mysql常用命令:
desc 查看表结构
create database 数据库名
create table 表名
show create database 库名 查看如何创建db的
show create table 表名; 查看如何创建table结构的
#修改mysql的密码
set password = PASSWORD('redhat');
#查询mysql数据库中的用户信息
use mysql;
select host,user,password from user;
3.数据库的安全设置
1.创建普通用户:
create user erduan@'%' identified by 'erduan666'#创建用户erduan在所有设备登录密码是erduan666
2.root给二短用户添加权限
grant all privileges on *.* to 账户@主机名 #对所有库和所有表授权所有权限
grant all privileges on *.* to erduan@'%'; #给yining用户授予所有权限
flush privileges; #刷新授权表
3.当你在window中登录mysql数据库root用户需要做
3.1root用户:
grant all privileges on *.* to root@'%' ident ified by '123456';#对所有数据库下和表在root用户下可操作通过密码123456
flush privileges;#刷新权限表
3.2window用户:
mysql -uerduan -p -h 192.168.13.86(服务器的地址)
4.数据的备份:
[root@master ~] mysqldump -u root -p --all-databases > /tmp/db.dump#linux命令,必须退出mysql
5.数据的恢复;
mysql -uroot -p < /tmp/db.dump #在linux系统,退出mysql
6.mysql主从配置:
博客:https://www.cnblogs.com/pyyu/p/9467289.html
1.准备主库的配置文件 /etc/my.cnf
写入开启主库的参数
[mysqld]
server-id=1 #标注 主库的身份id
log-bin=s15mysql-bin #那个binlog的文件名
2.重启mairadb,读取配置文件
systemctl restart mariadb
3.查看主库的状态
mysql -uroot -p
show master status; #这个命令可以查看 日志文件的名字,以及数据起始点
4.创建用于主从数据同步的账户
create user 'yuanhao'@'%' identified by 'yuanhaobuxitou';
5.授予主从同步账号的,复制数据的权限
grant replication slave on *.* to 'yuanhao'@'%';
6.进行数据库的锁表,防止数据写入
flush table with read lock;
7.将数据导出
mysqldump -u root -p --all-databases > /opt/zhucong.dump
8.然后将主库的数据,发送给从库
scp /opt/zhucong.dump root@从库:/opt/
9.此时去从库的mysql上,登录,导入主库的数据,保持数据一致性
mysql -uroot -p
source /opt/zhucong.dump
2.从库的配置
1.写入my.cnf,从库的身份信息
vi /etc/my.cnf
[mysqld]
server-id=10
2.检查一下主库和从库的 参数信息
show variables like 'server_id';
show variables like 'log_bin';
3.通过一条命令,开启主从同步
change master to master_host='192.168.13.78',
master_user='yuanhao',
master_password='yuanhaobuxitou',
master_log_file='s15mysql-bin.000001',
master_log_pos=571;
4.开启从库的slave同步
start slave;
5.查看主从同步的状态
show slave status\G;
6.查看两条参数 ,确保主从正常
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
nginx
1.需要了解
有钱的技术栈:apache web服务器 + java + tomcat应用服务器 + oracle + memcached + redhat 企业版linux + svn(代码管理工具)
没钱的技术站:nginx(负载均衡) + python(virtualenv) + uwsgi (python的应用服务器,启动了10个进程处理django drf 请求)
+ mysql (阿里云的rds主从复制)
+redis的主从赋值
+git
+vue前端代码服务器
+linux(阿里云的centos7)
2.nginx下载:
2.1下载所有的nginx依赖包:
yum install gcc patch libffi-devel python-devel zlib-devel bzip2-devel openssl-devel
ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel openssl openssl-devel -y
2.2安装配置nginx软件(源码)
wget -c https://nginx.org/download/nginx-1.12.0.tar.gz
2.3解压编译和安装
tar -zxvf nginx-1.12.0.tar.gz#解压
切换源码目录:./configure --prefix=/opt/nginx112/
编译安装:make && make install
2.4进入·nginx目录
cd /opt/nginx112
2.5查看里边信息:ls
conf 配置文件目录
html 网页根目录,你的index.html就放在这里,然后通过域名访问 pythonav.cn/index.html html/index.html
logs 日志
sbin 存放nginx可执行命令的
3.利用nginx做网站
3.1修改/opt/nginx112/html/index.html index.html是nginx网页根文件,清空内容写入自己的html标签
3.2进入:/opt/nginx112/sbin 执行./nginx #执行当前的nginx
3.3页面访问:https:// 192.168.86.130 (ip)
nginx主要学习
学习博客:https://www.cnblogs.com/pyyu/p/9276851.html?tdsourcetag=s_pcqq_aiomsg
1.nginx学的主要就是他的配置文件,这里不多说,主要的说一下
2.现在我们一个电脑搭建两个web服务器
2.1修改本地的windows本地的测试域名 C:\Windows\System32\drivers\etc\hosts文件
192.168.13.79 www.s15rihan.com
192.168.13.79 www.s15oumei.com
2.2找到我们的nginx配置文件,或者自己配置环境变量(echo ¥PATH)
2.3炸到配置 cd /conf
2.4查看配置:vim nginx.conf
2.5 别的先不看,找到http下的server
2.6 listen 80表示开放的端口号,server_name表示主机名,这里写上我们
的域名:www.s15rihan.com,charset utf8这是编码,
location 下面的root就是走上边域名的时候去哪里找的绝对路径
,index可以理解返回的数据
'''
server{
listen 80;
server_name www.s15oumei.com;
charset utf-8;
location /{
root /opt/myserver/oumei/;
index index.html;
}
}
'''
2.7我们要两个服务端,所以我们需要写两个server
2.8创建root返回的绝对路径(oumei,eihan)切换到opt目录下创建文件夹
创建各自的index.html
2.9现在杀死进程之后启动服务,在地址栏上输入www.s15oumei.com可以了
3.负载均衡
1.负载均衡说白了就是压力平摊
2.环境:nginx1 -->负载均衡器;nginx2-->web服务;nginx3-->web服务
3.nginx2和nginx3html中区分开启动web服务
4.nginx1修改ngnx.conf在server上--->upstream(关键字) s15webserver(自定义) {server 192.168.13.79(nginx2的ip) ;server 192.168.13.24(nginx3的ip) ;}
5.主机中添加反向代理,把请求发给负载均衡池
server {
listen 80;
#当我的请求来自于 192.168.13.121时,走这>个虚拟主机
server_name 192.168.13.121;#就访问这一个主机ip
#charset koi8-r;
#access_log logs/host.access.log main;
#核心配置,就在这,一条proxy_psss参数即可
location / {
proxy_pass http://s15webserver;
#root html;
#index index.html index.htm;
}
}
6.启动负载均衡nginx服务,现在就可以测试了,默认是轮询分发机制,当然还有weight(权重)还有ip_hash(权重哈希不能一起用)