Vmwaire 安装 Linux
解决启动没有IP地址问题
cd /etc/sysconfig/network-scripts
vi ifcfg-ens33
# 重启linux
reboot
# 再次查看ip
ip addr
Linux 镜像地址下载
ps: 发现阿里有一个工具箱,里面有各种镜像
阿里镜像地址
https://developer.aliyun.com/mirror/
安装nginx
ps: 如果yum 安装nginx 会把nginx 的很多目录拆分开,找起来有点费劲,可以在网上把完整的包下载下来,然后再手动安装,也可以安装自己想要的nginx 模块
Nginx 下载地址
http://nginx.org/download/
Nginx环境依赖安装
cd /usr/local/nginx-1.23.0
./configure
# 更新一下yum源
yum update
# 编译的时候会提示缺少什么依赖
yum install -y gcc
# 安装pcre
yum install -y pcre
yum install -y pcre-devel
# 安装zlib
yum install -y zlib-devel
# 再次编译 指定安装目录 以及指定nginx 需要的模块
./configure --prefix=/usr/local/nginx
# 编译安装
make & make install
# 启动nginx
cd /usr/local/nginx/sbin/
./nginx
# 全局设置使用nginx 命令
vi /etc/profile
# 在最后一行追加
export PATH=/usr/local/nginx/sbin:$PATH
# 重新加载配置文件
source /etc/profile
# 进入到任意目录测试一下nginx 命令
# 设置通过 systemctl 控制nginx
vi /usr/lib/systemd/system/nginx.service
# 设置开启自启
systemctl enable nginx.service
# 通过systemctl启动nginx
systemctl start nginx.service
[ Unit]
Description=nginx - web server
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
ExecQuit=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true
[Install]
WantedBy=multi-user.target
Nginx 功能了解
正向代理
正向代理:如果把局域网外的Internet想象成一个巨大的资源库,则局域网中的客户端要访问Internet,则需要通过代理服务器访问,这种代理服务就称为正向代理
反向代理
反向代理:其实客户端对代理是无感知的,因为客户端不需要任何配置就可以访问,我们只需要将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器获取数据后,在返回给客户端,此时反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理服务器地址,隐藏了真是的服务器IP地址。
负载均衡
负载均衡:将请求分发到各个服务器上,将原来的单个服务器上的情况改为将请求分发到多个服务器上,将负载分发到不同的服务器上。
动静分离
Nginx 配置文件了解 nginx.config
全局块
主要会设置一些影响nginx服务器整体运行的配置指令,主要包括配置运行Nginx服务器的用户(组)、允许生成的worker process数,进程PID存放路径、日志存放路径和类型一级配置文件的引入等。
worker_processes 1;
这是Nginx 服务器并发处理服务的关键配置,worker_processes 值越大,可以支持的并发处理数量也越多,但是会受到硬件、软件等设备的制约。
events
主要是影响Nginx服务器与用户的网络连接,常用的设置包括是否开启对多 work process下网络连接进行序列化,是否允许同时接受多个网络连接,选取那种事件驱动模型来处理连接请求,每个work process 可以同时支持的最大连接数等。
worker_connections 1024;
支持的最大连接数为1024个。
http
包块文件引入,MINME-TYPE定义、日志自定义、连接超时时间、单链接请求数上限等。
server
ps: 这里是匹配的listen监听的端口号 + server_name,server_name 可以配置域名或者ip地址,域名也支持正则匹配。
server_name 正则匹配规则
- 完整匹配 server_name www.bbc.com,www.bba.com
- 通配符匹配 server_name *.bbc.com
- 通配符结束匹配 server_name www.*
- 正则匹配 ~1+.bba.com$
location 正则表达式说明
5. = 用于不包含正则表达式的uri前,要求请求字符串与uri严格匹配,如果匹配成功,就停止继续向下继续搜索,并立即处理请求。
6. ~ 用于表示uri包含正则表达式,并且区分大小写。
7. ~* 用于表示uri包含正则表达式,并且不区分大小写
8. ^~ 用于不含正则表达式的uri前,要求Nginx服务器找到标识uri和请求字符串匹配度最高的location,立即使用此location 处理请求,而不再使用location中的正则uri 和请求字符串匹配。
PS:如果uri 包含正则表达式,则必须要有 ~ 或者 ~* 标识。
location
Nginx 配置高可用(keepalived)
# yum 安装keepalived
yum install keepalived -y
# 修改keepalived 配置文件
# 主要是修改那个为MASTER BACKUP
# 以及配置供以访问的虚拟IP
# 配置网卡 ens33 供绑定虚拟IP
cd /etc/keepalived
vi keepalived.conf
# 启动keepalived
systemctl start keepalived
# 查看启动状态
systemctl status keepalived
启动成功后可以看到已经在ens33 网卡上绑定的虚拟IP
! Configuration File for keepalived
global_defs {
notification_email {
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 192.168.10.1
smtp_connect_timeout 30
router_id LVS_DEVEL
vrrp_skip_check_adv_addr
vrrp_strict
vrrp_garp_interval 0
vrrp_gna_interval 0
}
vrrp_instance VI_1 {
state BACKUP
interface ens33
virtual_router_id 51
priority 90
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.10.200
}
}
0-9 ↩︎