一,Ubuntu的安装以及调试
Ubuntu下载链接:Ubuntu 16.04.7 LTS (Xenial Xerus)
1.1Ubuntu的远程登录问题
Ubuntu初始情况下无法进行ssh登录需要下载更新ssh服务以及修改文件
1.更新源列表
sudo apt-get update
2.安装ssh
sudo apt-get install openssh-server
3.检测ssh服务
sudo ps -e |grep ssh
有sshd,说明ssh服务已经启动,如果没有启动,输入"sudo service ssh start"-->回车-->ssh服务就会启动
4.使用vim修改配置文件"/etc/ssh/sshd_config"
vim /etc/ssh/sshd_config
注释掉 PermitRootLogin without-password //如果不注释,则无法使用密码登陆
增加 PermitRootLogin yes //允许root用户登陆
5重启ssh服务
systemctl restart ssh
二,nginx的安装
1,安装依赖
sudo apt install libgd-dev
下载nginx
注:需要先安装wget初始的Ubuntu没有wget
apt install wget
wget http://nginx.org/download/nginx-1.22.1.tar.gz
解压nginx
tar -zvxf nginx-1.22.1.tar.gz
测试
在`Windows的浏览器中,直接输入Ubuntu的地址访问`Nginx`:
三,负载均衡
1.网页搭建
在 /var/www/html下创建网页
2.设置负载均衡
编辑/etc/nginx/sites-available下的default文件
upstream nginx_boot(这个名字可以自己更改){
# 30s内检查心跳发送两次包,未回复就代表该机器宕机,请求分发权重比为1:2
server 192.168.0.000:8080 weight=100 max_fails=2 fail_timeout=30s;
server 192.168.0.000:8090 weight=200 max_fails=2 fail_timeout=30s;
weight是设置权重决定命中率到达负载均衡的效果
除了权重算法以为还可以通过反向代理算法设置策略
# 这里的IP请配置成你WEB服务所在的机器IP
}
server {
location / {
root html;
# 配置一下index的地址,最后加上index.ftl。
index index.html index.htm index.jsp index.ftl;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# 请求交给名为nginx_boot的upstream上
proxy_pass http://nginx_boot;
}
}
常见的反向代理算法
1.rr轮询(默认)
2.weight(权重),在轮询算法的基础上加上权重(默认是rr+weight)
3.ip_hash
该调度算法可以解决动态网页session共享的问题
缺陷:分配不均
4.fair算法(第三方)
根据后端服务器RS的响应时间来分配请求,响应时间短的优先分配
5.url_hash(第三方)
按访问url的hash结果来分配请求,让每个url定位到同一个后端服务器,后端服务器为缓存服务器时效果明显
6.最少连接数
哪台机器连接数少就分配给哪台
访问
nginx
nginx的工作原理
Nginx采用多进程模型,主进程负责接收客户端的连接请求,然后将连接请求分发给工作进程来处理。每个工作进程可以处理多个客户端连接,采用异步非阻塞的方式来处理连接请求。
个人认为nginx本质上类似于一个反射器将用户的请求先打到nginx服务器上在由nginx服务器分发请求,可以使请求不直接接触服务器达到保护服务器的作用,同时在存在多台路由器的情况下可以检测各台服务器的工作能力选择合适的服务器发放请求。
Nginx的工作流程
客户端向Nginx发送HTTP请求。
Nginx主进程接收到请求,并将请求分发给空闲的工作进程。
工作进程接收到请求,进行请求处理,并将处理结果返回给Nginx主进程。
Nginx主进程将请求结果返回给客户端
nginx的常用功能
静态文件服务:Nginx可以作为静态文件服务器,可以快速响应客户端请求,提供高效的文件服务。
反向代理:Nginx可以作为反向代理服务器,将客户端的请求代理到后端的Web服务器上进行处理,从而提高系统的可靠性和可用性。
负载均衡:Nginx可以进行负载均衡,将客户端请求分发到多个后端服务器上进行处理,从而提高系统的性能和可扩展性。
缓存加速:Nginx可以缓存静态文件和动态内容,提高系统的响应速度和性能。
SSL/TLS加密:Nginx可以提供HTTPS服务,支持SSL/TLS加密,保证数据的安全性。
访问控制:Nginx可以对客户端的请求进行访问控制,包括IP黑白名单、HTTP Basic认证等方式。