高可用笔记(1) nginx

简介: Nginx ("engine x") 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。由Igor Sysoev为俄罗斯访问量第二的Rambler.ru站点开发的。官网是[nginx.org](http://nginx.org)。 Nginx是本次HA方案

Nginx ("engine x") 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。由Igor Sysoev为俄罗斯访问量第二的Rambler.ru站点开发的。官网是nginx.org

Nginx是本次HA方案中使用频率最高的,非常好用。感谢战斗民族!

测试环境

  1. host1 192.168.30.1 (本文都在host1下进行)
  2. host2 192.168.30.2
  3. host3 192.168.30.3

CentOS7 下yum安装Nginx

  • 添加nginx的yum源文件

CentOS7的默认yum源中没有Nginx,所以要新增一个nginx源。
在/etc/yum.repos.d下添加文件nginx.repo:

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1
  • yum安装nginx
$ yum install nginx -y
  • 关闭selinux
$ setenforce 0
  • 启动nginx
$ systemctl enable nginx
$ systemctl start nginx

用浏览器打开 http://192.168.30.1/出现如下欢迎界面,安装完成!
screenshot

http反向代理

  • 部署tomcat项目helloproject

在/var/lib/tomcat/webapps/下创建目录helloproject:

$ mkdir helloproject
$ cd helloproject
$ touch index.html

index.html:

<html>
        <head></head>
        <body>
                <h2>Hello nginx !</h2>
                <h2>I'm host1.</h2>
        </body>
</html>

重启tomcat

$ systemctl restart tomcat

用浏览器打开http://192.168.30.1:8080/hellonginx出现如下界面
screenshot

  • 增加nginx配置文件

在/etc/nginx/conf.d/中增加配置文件
http_proxy.conf:

server {
    listen       80;
    server_name  localhost;


    location /hellonginx{
        proxy_pass http://localhost:8080/hellonginx;
        proxy_set_header  X-Real-IP $remote_addr;
        proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header  Host $http_host;

    }
}
$ nginx -s reload

用浏览器打开http://192.168.30.1/hellonginx,出现如下界面,http反向代理成功。
screenshot

tcp反向代理

  • 源码安装nginx

从nginx-v1.9.0开始,nginx增加了ngx_stream_core_module模块,开始提供对tcp/udp的反向代理功能。
But, 编译时需要带--with-stream参数,yum安装的nginx默认是没有这个功能。So, 我们只能重新通过源码安装了。

开始安装:

# 关闭yum安装的nginx
$ systemctl stop nginx
# 卸载yum安装的nginx
$ yum remove nginx  
# 下载nginx最新稳定版源码包
$ wget http://nginx.org/download/nginx-1.10.2.tar.gz
# 解压缩
$ tar xvf nginx-1.10.2.tar.gz
$ cd nginx-1.10.2
$ ./configure --with-stream
$ make
$ make install

安装完后nginx的主目录在/usr/local/nginx,我们需要改一下环境变量来使nginx命令生效,这里就不叙述怎么改环境变量。

  • 修改nginx.conf

在上文中可以看到,yum安装的nginx有一个配置文件目录/etc/nginx/conf.d,当我们增加一个代理的时候只要在这个目录中增加一个配置文件即可,而不必修改nginx.conf文件。
显然,源码安装的nginx没有,那么只要稍改一下nginx.conf就可以达到这个效果。
修改/usr/local/nginx/conf/nginx.conf如下:

……
http {
    ……
    include /etc/nginx/conf.d/*.conf;
    ……
}

另外,再增加tcp的配置目录:

$ mkdir /etc/nginx/conf_stream.d/

/usr/local/nginx/conf/nginx.conf增加配置如下:

……
stream {
    include /etc/nginx/conf_stream.d/*.conf;
}
  • 配置tcp反向代理

在/etc/nginx/conf_stream.d/中增加配置文件tcp_proxy.conf:


server {
    listen       0.0.0.0:22222;
    proxy_pass 192.168.30.1:22;
}
$ nginx -s reload

在host2下测试ssh通过22222端口连接:

$ ssh -p 22222 root@192.168.30.1

ssh连接成功,tcp反向代理完成。

目录
相关文章
|
2月前
|
负载均衡 应用服务中间件 Linux
高可用系列文章之三 - NGINX 高可用实施方案
高可用系列文章之三 - NGINX 高可用实施方案
|
3月前
|
存储 缓存 负载均衡
Nginx入门笔记
Nginx入门笔记
109 0
|
5月前
|
消息中间件 缓存 应用服务中间件
Nginx系列教程(02) - 高可用与高并发介绍
Nginx系列教程(02) - 高可用与高并发介绍
52 0
|
4月前
|
负载均衡 前端开发 应用服务中间件
NGINX高可用之keepalived+nginx主从模式+主主模式配置实践
NGINX高可用之keepalived+nginx主从模式+主主模式配置实践
115 1
|
4月前
|
负载均衡 网络协议 应用服务中间件
当当网266买来的1399页Nginx笔记,原来我入门都不算
Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日。
当当网266买来的1399页Nginx笔记,原来我入门都不算
|
5月前
|
应用服务中间件 Shell nginx
Nginx + keepalived 实现高可用 + 防盗链 + 动静分离(二)
Nginx + keepalived 实现高可用 + 防盗链 + 动静分离
|
5月前
|
负载均衡 NoSQL 应用服务中间件
Nginx + keepalived 实现高可用 + 防盗链 + 动静分离(一)
Nginx + keepalived 实现高可用 + 防盗链 + 动静分离
|
5月前
|
Kubernetes 应用服务中间件 Linux
suse 12 编译部署Keepalived + nginx 为 kube-apiserver 提供高可用
suse 12 编译部署Keepalived + nginx 为 kube-apiserver 提供高可用
51 0
|
6月前
|
负载均衡 应用服务中间件 nginx
71分布式电商项目 - nginx高可用以及lvs+nginx负载均衡(资料)
71分布式电商项目 - nginx高可用以及lvs+nginx负载均衡(资料)
40 0
|
6月前
|
应用服务中间件 nginx
nginx详细笔记
nginx详细笔记