Day11:Linux基础:nginx
提供一种网络配置服务,安装步骤根前面的samba安装进程大致一致,都需要指定安装环境、安装软件、修改配置文件以、启动程序以及测试
配置nginx
指定安装环境
根前面samba指定的安装环境一致
yum install epel -y安装epel扩展源
yum install nginx -y执行二进制安装软件包
也可以自己下载nginx,然后进行源码安装,源码安装时注意提前安装需要的文件yum gcc -* glibc-* pcre -y.源码安装指定安装环境可以上官网查询,也可以指定默认配置,解压后进入解压后的文件夹后执行./configure —prefix=/usr/local/nginx来指定默认安装配置。安装过程可能需要配置重写功能,按照提示将其关闭
修改配置文件
其安装目录下的sbin目录显示启动文件,logs存放日志文件,html存放网页文件,conf存放配置文件如果要启动程序,直接执行sbin里面的nginx文件
打开其conf/nginx.conf查看参数
- 其中的worker process表示总共有几个worker在干活
- 其中的error logs可以自己设定路径更改
- 其中的evens下的worker_connection表示一个worker一次性可以接多少任务
- 其中的日志格式为log_format是你main格式描述,产生的日志文件access_log存在于/usr/local/nginx/conf/mime.types中,动态访问此文件可以追踪访问机器的相关信息,可以通过自定义main格式描述来更改日志中需要提取的数据
- 使用ll html/a.txt可以查看此文件的权限,服务端也可以修改其heml下的文件访问权限(chomd o-r html/a.txt)来设置访问端的读权限,这是访问短无法通过浏览器来访问a.txt
- server中的listen表示的是默认端口,可以进行自定义修改,server中也有access_log,为局部配置,如果根前面的access_log不一样的话,先访问局部配置
- 以上所有更改如果要生效必须要指定执行/usr/local/nginx/sbin/nginx -s reload来重新加载
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf以配置文件启动程序
ps aux |grep nginx查看启动进程,进程中的master和worker分别表示组织者和劳动者,如果要停掉程序则执行/usr/local/nginx/sbin/nginx -s stop来停止启动服务,也可以执行/usr/local/nginx/sbin/nginx -s reload来重新加载。要查看端口执行netstat -an |grep 80
测试
浏览器中输入http://192.108.0.12:80/a.txt(分别为网络协议,IP地址、端口以及文件)则会直接得到本地的/usr/local/nginx下的a.txt文件,实际上是浏览器根据IP地址访问到机器本身,然后根据端口访问到nginx软件,根据其协议下载了a.txt这个文件
nginx实现负载均衡
基于nginx的负载均衡是一种反向代理的负载均衡,nginx本身可以当做代理服务器去用,也可以当做web服务器去用可以实现把内网及其隐藏起来的效果,也可以实现一个负载均衡的效果
反向代理的配置
准备四台及其,一个当做代理服务器,其他三台当做web服务器
对web服务器进行配置
- 在根目录下创建html目录 mkdir /server1
- 在目录下创建html文件 echo 'server1' > /server1/index.html
- 创建配置文件目录mkdir /nginx_conf
- 复制默认的配置文件到自己的配置文件目录下并改名为web1.conf cp /usr/local/nginx/conf/nginx.conf /nginx_conf/web1.conf
- 修改配置文件 vim web1.conf
挪到server下进行修改- 修改http下的include后改为其绝对路径 /usr/local/nginx/conf/mine.types,注意后面为;
- 修改listen下的端口为8080
- 修改root 后面的网站根目录为/server1
- 修改index 后面的默认找到的文件名 index.html
- 启动程序 /usr/local/nginx/sbin/nginx -c /nginx_conf/web1.conf
- 查看网络端口 netstat -an |grep 8080
对lb服务器进行配置
- 代理服务器不需要网络文件目录
- 在代理服务器下新建配置文件目录 mkdir /nginx_conf
- 复制/usr/local/nginx/conf/nginx.conf到/nginx_conf文件夹下创建lb.conf,打开进行配置
- 将server下的listen 后面改服务器端口为80
- 将http下的 default下新建一下函数
upstream myapp1{ #其中myapp1 可以起任何名字nginx_webs
server 192.123.123.12:8080;
第一台web服务器的IP地址和端口
如果在后面加上weight=2;意思是权重值改为2
同上,第二胎web服务器
同上,第三台服务器
} - 找到下面的location /修改其网络协议
将里面的内容删掉,改为`porxy_pass http://nginx_webs;
- 保存退出
- 运行程序/usr/local/nginx/sbin/nginx -c /nginx_conf/lb.conf
- 测试,浏览器输入代理IP和端口,会分别显示三个web服务器的网络文件