Linux安装配置反向代理Nginx

本文涉及的产品
传统型负载均衡 CLB,每月750个小时 15LCU
网络型负载均衡 NLB,每月750个小时 15LCU
应用型负载均衡 ALB,每月750个小时 15LCU
简介: 应用场景 对于一个大型网站来说,负载均衡是永恒的话题,顾名思义,负载均衡即是将负载分摊到不同的服务单元,既保证服务的可用性,又保证响应足够快,给用户很好的体验。

应用场景

对于一个大型网站来说,负载均衡是永恒的话题,顾名思义,负载均衡即是将负载分摊到不同的服务单元,既保证服务的可用性,又保证响应足够快,给用户很好的体验。随着硬件技术的迅猛发展,越来越多的负载均衡硬件设备涌现出来,如F5 BIG-IP、Citrix NetScaler、Radware等等,虽然可以解决问题,但其高昂的价格却往往令人望而却步,因此负载均衡软件仍然是大部分公司的不二之选。Nginx作为webserver的后起之秀,其优秀的反向代理功能和灵活的负载均衡策略受到了业界广泛的关注。

Nginx进程基于Master + Slave(worker)多进程模型,自身具有非常稳定的子进程管理功能。在Master进程分配模式下,Master进程永远不进行业务处理,只是进行任务分发,从而达到Master进程的存活高可靠性。

Keepalived是Linux下面实现VRRP 备份路由的高可靠性运行件。基于Keepalived设计的服务模式能够真正做到主服务器和备份服务器故障时IP瞬间无缝交接。二者结合,可以构架出比较稳定的软件负载均衡方案。

操作步骤

1. Nginx安装配置

1.1 系统基础配置

关闭selinux
 # vi /etc/selinux/config
……
SELINUX=disabled
……

关闭防火墙,在Centos6.5中
 # service iptables stop
 # chkconfig iptables off

关闭防火墙,在Centos7中
 # systemctl stop firewalld
 # systemctl disable firewalld

修改系统文件打开限制数量,增加在配置文件最后
 # vi /etc/security/limits.conf
* soft noproc 65535
* hard noproc 65535
* soft nofile 409600
* hard nofile 409600

重启机器
 # reboot

1.2 设置时间同步

安装ntpdate , ntpd
 # yum install -y ntpdate ntp pcre-devel pcre

复制时区至本地时区
 # cp /usr/share/zoneinfo/Asia/Shanghai  /etc/localtime

时间同步,ip请改成可用的时间服务器的ip地址,并写入时间戳
 # ntpdate ip  
 # hwclock -w

开启ntpd服务,在Centos6中
 # service start ntpd
 # service enable ntpd

开启ntpd服务,在Centos7中
 # systemctl start ntpd
 # systemctl enable ntpd

1.3 安装软件包

安装包下载地址
http://pan.baidu.com/s/1hrUHlOw
安装依赖组件
 # yum install zlib zlib-devel
 # yum install pcre-devel

将安装包中的文件拷贝到服务器,并解压缩安装包
 # tar -zxvf nginx-1.8.1.tar.gz

然后进入目录进行安装
 # cd nginx-1.8.1
 #./configure --prefix=/opt/nginx1.8.1
 # make
 # make install
 # ln  -sf  /opt/nginx1.8.1  /usr/local/nginx
 # echo 'export PATH=/usr/local/nginx/sbin:$PATH' >> /etc/profile && source /etc/profile

1.4 配置服务

创建启动脚本
将启动脚本文件夹中的nginx文件发送到服务器中并
 # cp nginx  /etc/init.d/
 # chmod +x /etc/init.d/nginx

修改用户权限
 # useradd -r -M nginx
 # mkdir  -p  /var/log/nginx
 # chown nginx  -R /var/log/nginx

注册启动服务
 # chmod a+x /etc/init.d/nginx
 # chkconfig --add nginx
 # chkconfig nginx on

1.5 启动服务

 # service nginx start

2. 配置高可用

注:在主备两台Nginx服务器上都要安装Keepalived。

2.1 安装Keepalived

安装依赖包,将keepalived6(Centos6环境中) 或 keepalived7(Centos7中)传送到服务器
 # tar zxvf keepalived6.tar.gz     或tar zxvf keepalived7.tar.gz
 # yum localinstall keepalived/*.rpm -y

将软件源中的keepalived-1.2.16.tar.gz传送到服务器并解压
 # tar zxvf keepalived-1.2.16.tar.gz

编译安装
 # cd keepalived-1.2.16
 # ./configure
 # make
 # make install

配置服务
 # cp /usr/local/sbin/keepalived /usr/sbin/
 # cp /usr/local/etc/rc.d/init.d/keepalived /etc/init.d/
 # cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/
 # chmod +x /etc/init.d/keepalived
 # chkconfig --add keepalived
 # chkconfig keepalived on
 # mkdir /etc/keepalived

2.2 配置主服务器

创建配置文件
 # vi /etc/keepalived/keepalived.conf

修改配置文件并保存
! Configuration File for keepalived
global_defs {
   notification_email {
     #abc@example.com
   }
   #notification_email_from admin@example.com
   #smtp_server smtp.example.com
   #smtp_connect_timeout 30
   router_id nginx_master
}
vrrp_script chk_http_port {
    script "</dev/tcp/127.0.0.1/80" #监控本地Nginx端口
    interval 1
    weight -10
}

vrrp_instance VI_1 {
    state MASTER #主服务器
    interface eth0 #通信网卡,根据实际配置
    virtual_router_id 51 #路由标识,同网段内不可冲突且需与备用服务器一致
    priority 100 #优先级,0-254
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass qwe123!@#
    }

    virtual_ipaddress {
        192.168.202.200 #虚拟IP,可定义多个
    }

    track_script {
        chk_http_port
    }
}

启动服务
 # service keepalived start

2.3 配置备用服务器

创建配置文件
 # vi /etc/keepalived/keepalived.conf

修改配置文件并保存
! Configuration File for keepalived
global_defs {
   notification_email {
     #abc@example.com
   }
   #notification_email_from admin@example.com
   #smtp_server smtp.example.com
   #smtp_connect_timeout 30
   router_id nginx_backup
}

vrrp_script chk_http_port {
    script "</dev/tcp/127.0.0.1/80" #监控本地Nginx端口
    interval 1 #执行间隔
    weight -10 #执行失败,服务优先级-10
}

vrrp_instance VI_1 {
    state BACKUP #备用服务器
    interface eth0 #通信网卡,根据实际配置
    virtual_router_id 51 #路由标识,需与主服务器一致,同网段内不可冲突
    priority 99 #优先级,比主服务器要低,0-254
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass qwe123!@#
    }

    virtual_ipaddress {
        192.168.202.200 #虚拟IP,可定义多个
    }

    track_script {
        chk_http_port
    }
}

启动服务
 # service keepalived start

2.4 安装验证

浏览器访问http://ip出现以下提示说明nginx正常运行

这里写图片描述

查看keepalived绑定虚拟ip的情况
 # ip a
相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
目录
相关文章
|
4月前
|
应用服务中间件 Linux 网络安全
Centos 8.0中Nginx配置文件和https正书添加配置
这是一份Nginx配置文件,包含HTTP与HTTPS服务设置。主要功能如下:1) 将HTTP(80端口)请求重定向至HTTPS(443端口),增强安全性;2) 配置SSL证书,支持TLSv1.1至TLSv1.3协议;3) 使用uWSGI与后端应用通信(如Django);4) 静态文件托管路径设为`/root/code/static/`;5) 定制错误页面(404、50x)。适用于Web应用部署场景。
605 87
|
4月前
|
负载均衡 应用服务中间件 nginx
Nginx配置与命令
Nginx 是一款高性能的 HTTP 和反向代理服务器,其配置文件灵活且功能强大。本文介绍了 Nginx 配置的基础结构和常用指令,包括全局块、Events 块、HTTP 块及 Server 块的配置方法,以及静态资源服务、反向代理、负载均衡、HTTPS 和 URL 重写等功能实现。此外,还提供了常用的 Nginx 命令操作,如启动、停止、重载配置和日志管理等,帮助用户高效管理和优化服务器性能。
|
6月前
|
安全 Linux 开发工具
【Linux】vim使用与配置教程
Vim是一款功能强大的文本编辑器,广泛应用于Linux环境,是开发者和系统管理员的必备工具。本文介绍了Vim的基本操作与简单配置,涵盖命令模式、插入模式和底行模式的使用方法,以及光标定位、复制粘贴、搜索替换等常用技巧。同时,文章还提供了实用的分屏操作和代码注释方法,并分享了通过`.vimrc`文件进行个性化配置(如显示行号、语法高亮、自动缩进等)的技巧,帮助用户提升文本编辑效率。掌握这些内容,能让Vim更好地服务于日常工作与开发需求。
427 3
|
2月前
|
应用服务中间件 网络安全 nginx
配置Nginx以支持Websocket连接的方法。
通过上述配置,Nginx将能够理解WebSocket协议的特殊要求,代理Websocket流量到合适的后端服务器。注意,Websocket并不是HTTP,尽管它最初是通过HTTP请求启动的连接升级,因此保证Nginx了解并能够妥善处理这种升级流程是关键。
509 10
|
3月前
|
安全 应用服务中间件 网络安全
Nginx SSL/TLS协议栈中配置深度解析与实践指南-优雅草卓伊凡
Nginx SSL/TLS协议栈中配置深度解析与实践指南-优雅草卓伊凡
247 0
Nginx SSL/TLS协议栈中配置深度解析与实践指南-优雅草卓伊凡
|
3月前
|
JSON 前端开发 应用服务中间件
配置Nginx根据IP地址进行流量限制以及返回JSON格式数据的方案
最后,记得在任何生产环境部署之前,进行透彻测试以确保一切运转如预期。遵循这些战术,守卫你的网络城堡不再是难题。
185 3
|
2月前
|
存储 安全 Linux
Linux服务器上安装配置GitLab的步骤。
按照以上步骤,一个基础的GitLab服务应该运行并可以使用。记得定期检查GitLab官方文档,因为GitLab的安装和配置步骤可能随着新版本而变化。
233 0
|
4月前
|
关系型数据库 MySQL Java
安装和配置JDK、Tomcat、MySQL环境,以及如何在Linux下更改后端端口。
遵循这些步骤,你可以顺利完成JDK、Tomcat、MySQL环境的安装和配置,并在Linux下更改后端端口。祝你顺利!
332 11
|
3月前
|
Linux 网络安全 开发工具
在Linux下配置gitee与Github的远程仓库
注意,git push后,是输入你的账号与密码。这个步骤可以通过特殊设置省去,但是一开始还是不要太省。
170 0
|
5月前
|
安全 Linux 网络安全
在Linux(CentOS和AWS)上安装更新的git2的方法并配置github-ssh
经过以上这些步骤,你现在就能在GitHub上顺利往返,如同海洋中的航海者自由驰骋。欢迎你加入码农的世界,享受这编程的乐趣吧!
203 10