服务器之家:专注于服务器技术及软件下载分享
分类导航

云服务器|WEB服务器|FTP服务器|邮件服务器|虚拟主机|服务器安全|DNS服务器|服务器知识|Nginx|IIS|Tomcat|

服务器之家 - 服务器技术 - Nginx - Centos7.2安装Nginx实现负载平衡的方法

Centos7.2安装Nginx实现负载平衡的方法

2021-12-21 19:00淅淅沥沥 Nginx

这篇文章主要介绍了Centos7.2安装Nginx实现负载平衡的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

下载Nginx

到官网下载源码文件,地址:http://nginx.org/en/download.html,选择最新版本。本人下载的地址为:http://nginx.org/download/nginx-1.10.2.tar.gz,可用wget命令下载,也可以在windows系统上下载好再传到linux上。

卸载httpd

如果系统默认安装了httpd服务,卸载之。不卸载也没关系,这里只是方便默认80端口的处理。

?
1
yum -y remove httpd

解压

?
1
tar -xzvf nginx-xxxxxx.tar.gz

安装编译器和依赖库

?
1
yum install gcc gcc-c++ zlib-devel pcre-devel openssl-devel openssl-libs openssl -y

如果已经安装,就不必了

安装前配置

cd命令转到解压后的目录下。

?
1
./configure --prefix=/usr/local/nginx

这样安装时系统就会把Nginx安装到/usr/local/nginx目录下。

编译

?
1
make

安装

?
1
make install

安装完成,接下来配置环境变量以后就不用使用绝对路径来操作Nginx了:

?
1
vim /etc/profile.d/http.sh

加入以下内容:

?
1
export PATH=/usr/local/nginx/sbin:$PATH

生效配置:

?
1
source !$

启动Nginx

?
1
nginx

nginx -s 后跟stop、reload来关闭和重载nginx,直接运行nginx则启动服务。  如果启动时提示端口被占用,则需要找出被占用的进程,或者更改/usr/local/nginx/conf/nginx.conf文件里的侦听端口。

访问Nginx

在浏览器上输入 http://ip:port 如果出现“Welcome to nginx!”字样,则证明安装成功。如果访问不了,先确认防火墙是否禁止相应端口了。

负载平衡配置示例

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
#user nobody;
worker_processes 2;
 
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
 
#pid    logs/nginx.pid;
 
 
events {
  accept_mutex on; #设置网路连接序列化,防止惊群现象发生,默认为on
  multi_accept on; #设置一个进程是否同时接受多个网络连接,默认为off
  worker_connections 1024;#最大连接数
}
 
 
http {
  include    mime.types;#文件扩展名与文件类型映射表,此映射表主要用于部署在本nginx上的静态资源
  default_type application/octet-stream;
 
  #日志格式
  log_format main '$remote_addr - $remote_user [$time_local] "$request" '
           '$status $body_bytes_sent "$http_referer" '
           '"$http_user_agent" "$http_x_forwarded_for"';
 
  access_log logs/access.log main;
 
  sendfile    on;
  #tcp_nopush   on;
 
  #keepalive_timeout 0;
  keepalive_timeout 65;#连接超时时间
 
  gzip on;
 
  #反向代理
 
  #【配置1】此配置是[配置4]和[配置5]的结合
  #此配置将请求转发到两个WEB服务器,根据客户端IP分配目标主机,同时按权重分配流量
  upstream app1 {
    ip_hash;
    server 192.168.14.132:8080 weight=5;
    server 192.168.14.133:80 weight=3;
  }
 
  #【配置2】
  #默认负载平衡配置,nginx应用HTTP负载平衡来分发请求。
  #upstream app1 {
  #  server 192.168.14.132:8080;
  #  server 192.168.14.133:80;
  #}
 
  #【配置3】
  #最小连接负载平衡配置,nginx将尽量不使用繁忙的服务器,而是将新请求分发给不太忙的服务器。
  #upstream app1 {
  #  least_conn;
  #  server 192.168.14.132:8080;
  #  server 192.168.14.133:80;
  #}
 
  #【配置4】
  #会话持久性配置,使用ip-hash,客户端的IP地址用作散列密钥,
  #以确定应为客户端请求选择服务器组中的哪个服务器。
  #此方法确保来自同一客户端的请求将始终定向到同一服务器,除非此服务器不可用。
  #upstream app1 {
  #  ip_hash;
  #  server 192.168.14.132:8080;
  #  server 192.168.14.133:80;
  #}
 
  #【配置5】
  #加权负载平衡配置,通过使用服务器权重进一步影响nginx负载平衡算法。
  #未配置权重的服务器,意味着所有指定的服务器被视为对特定负载平衡方法同等资格。
  #upstream app1 {
  #  ip_hash;
  #  server 192.168.14.132:8080 weight=3;
  #  server 192.168.14.133:80 weight=2;
  #  server 192.168.14.134:80;
  #  server 192.168.14.135:80;
  #}
 
 
  server {#可配置多个server以监听不同IP和不同端口
    listen    80;#监听的端口
    server_name localhost;#监听的服务器
 
    #charset koi8-r;
 
    #access_log logs/host.access.log main;
 
    #反斜杆代表所有连接,此配置目的是将所有连接交给名为app1的upstream代理,实现负载平衡
    location / {
      proxy_pass http://app1;
    }
 
    #图片文件路径,一般来说,静态文件会部署在本机以加快响应速度
    #可配置多个这样的location,满足各种需求
    location ~\.(gif|jpg|png)$ {
      root /home/root/images;
    }
 
    location ~\.(iso|zip|txt|doc|docx)$ {
      root /home/root/files;
    }
 
 
    #error_page 404       /404.html;
 
    # redirect server error pages to the static page /50x.html
    #
    error_page  500 502 503 504 /50x.html;
    location = /50x.html {
      root  html;
    }
 
 
    # FastCGI是CGI全称是“公共网关接口”(Common Gateway Interface)
    #对于我来说,使用Tomcat代替即可,请忽略此配置。
    #location ~ \.php$ {
    #  root      html;
    #  fastcgi_pass  127.0.0.1:9000;
    #  fastcgi_index index.php;
    #  fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
    #  include    fastcgi_params;
    #}
 
    # 添加黑名单,禁止某某访问特定文件
    # concurs with nginx's one
    #
    #location ~ /\.ht {
    #  deny all;
    #}
  }
 
 
  # another virtual host using mix of IP-, name-, and port-based configuration
  #
  #server {
  #  listen    8000;
  #  listen    somename:8080;
  #  server_name somename alias another.alias;
 
  #  location / {
  #    root  html;
  #    index index.html index.htm;
  #  }
  #}
 
 
  # HTTPS server
  #
  #server {
  #  listen    443 ssl;
  #  server_name localhost;
 
  #  ssl_certificate   cert.pem;
  #  ssl_certificate_key cert.key;
 
  #  ssl_session_cache  shared:SSL:1m;
  #  ssl_session_timeout 5m;
 
  #  ssl_ciphers HIGH:!aNULL:!MD5;
  #  ssl_prefer_server_ciphers on;
 
  #  location / {
  #    root  html;
  #    index index.html index.htm;
  #  }
  #}
 
}

配置完后,记得执行以下命令生效配置

?
1
nginx -s reload

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

延伸 · 阅读

精彩推荐
  • Nginxnginx rewrite 伪静态配置参数和使用例子

    nginx rewrite 伪静态配置参数和使用例子

    nginx下伪静态配置参数详细说明,使用nginx的朋友,nginx rewrite 伪静态配置参数和使用例子 附正则使用说明 ...

    服务器之家3102019-10-08
  • Nginx通过Nginx规则重写URL去掉index.php不显示index.php

    通过Nginx规则重写URL去掉index.php不显示index.php

    Nginx不仅占用内存少,并发能力强,而且拓展功能丰富,可以通过安装模板来强化功能,也能通过规则优化,优化服务器并发处理能力,是建站的不二之选...

    Genius日记5872020-10-16
  • Nginx如何优化Nginx的处理性能

    如何优化Nginx的处理性能

    Nginx是一个很强大的高性能Web和反向代理服务,它具有很多非常优越的特性,在连接高并发的情况下,Nginx是Apache服务不错的替代品。其特点是占有内存少,...

    Dockone.io5142020-12-11
  • Nginxnginx ssl免密码重启教程详解

    nginx ssl免密码重启教程详解

    这篇文章给大家介绍了nginx 如何启动以及nginx ssl 免密码重启 的方法,非常不错,具有参考借鉴价值,需要的朋友参考下吧 ...

    mrr4272019-11-19
  • NginxNginx动静分离实现案例代码解析

    Nginx动静分离实现案例代码解析

    这篇文章主要介绍了Nginx动静分离实现案例代码解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参...

    盗哥泡茶去了3382020-09-27
  • NginxNginx Rewrite使用场景及代码案例详解

    Nginx Rewrite使用场景及代码案例详解

    这篇文章主要介绍了Nginx Rewrite使用场景及代码案例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可...

    盗哥泡茶去了11862020-09-27
  • NginxNginx location 和 proxy_pass路径配置问题小结

    Nginx location 和 proxy_pass路径配置问题小结

    本文是基于 location 的匹配末尾是否配置 / 和 proxy_pass 末尾是否配置 / ,进行测试,完全还原了整个测试过程,本文给大家介绍Nginx location 基本配置及相关配...

    自由早晚乱余生18742021-09-24
  • Nginx利用nginx和腾讯云免费证书制作https的方法

    利用nginx和腾讯云免费证书制作https的方法

    这篇文章主要介绍了利用nginx和腾讯云免费证书制作https的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧 ...

    dalaoyang5992019-12-30