Nginx 是⼀款⾼性能的 http 服务器/反向代理服务器及电⼦邮件(IMAP/POP3)代理服务器。
主要应用场景:
-
http 服务器Nginx 是⼀个 http 服务可以独⽴提供 http 服务。可以做⽹⻚静态服务器。
-
虚拟主机可以实现在⼀台服务器虚拟出多个⽹站。例如个⼈⽹站使⽤的虚拟主机。
-
反向代理,负载均衡当⽹站的访问量达到⼀定程度后,单台服务器不能满⾜⽤户的请求时,需要⽤多台服务器集群可以使⽤ nginx 做反向代理。并且多台服务器可以平均分担负载,不会因为某台服务器负载⾼宕机⽽某台服务器闲置的情况.
Nginx静态网站的部署
1.安装nginx
参考 https://blog.csdn.net/shz_123/article/details/123271750
2.静态网站部署
将静态网页存放在~/nginx/html/目录下,就可以访问
访问结果
3.虚拟主机的配置
- 上传静态网站
#在~/nginx/下创建首页目录index,注册目录regist
mkdir index
mkdir regist
-
分别在index,regist下存放静态页面index.html regist.html
-
将/资料/静态⻚⾯/index⽬录上传⾄ /usr/share/nginx/index下,将/资料/静态⻚⾯/regist⽬录上传⾄ /usr/share/nginx/regist下
cp ~/nginx/index c_nginx:/usr/share/nginx/ cp ~/nginx/registe c_nginx:/usr/share/nginx/
-
修改Nginx 的配置⽂件:~/nginx/config.d/port.conf
server { listen 81; # 监听的端⼝ server_name 192.168.126.138; # 域名或ip location / { # 访问路径配置 root /usr/share/nginx/index;# 根⽬录 index index.html index.htm; # 默认⾸⻚ } error_page 500 502 503 504 /50x.html; # 错误⻚⾯ location = /50x.html { root html; } } server { listen 82; # 监听的端⼝ server_name 192.168.126.138; # 域名或ip location / { # 访问路径配置 root /usr/share/nginx/regist;# 根⽬录 index regist.html; # 默认⾸⻚ } error_page 500 502 503 504 /50x.html; # 错误⻚⾯ location = /50x.html { root html; } }
-
访问测试
地址栏输⼊http://192.168.126.138/:81 可以看到⾸⻚⾯
地址栏输⼊http://192.168.126.138/:82 可以看到注册⻚⾯
4.域名绑定
-
将/资料/静态⻚⾯/cart·⽬录上传⾄ /usr/share/nginx/cart下,将/资料/静态⻚⾯/search⽬录上传⾄ /usr/share/nginx/search下(具体步骤参考虚拟主机配置)
-
修改Nginx 的配置⽂件:~/nginx/config.d/domain.conf
vim ~/nginx/config.d/domain.conf
-
将如下代码复制到domain.conf中
server {
listen 80;
server_name www.song.com;
location / {
root /usr/share/nginx/cart;
index cart.html;
}
}
server {
listen 80;
server_name regist.song.com;
location / {
root /usr/share/nginx/search;
index search.html;
}
}
- 使用SwitchHosts将IP与域名绑定
地址栏输⼊www.song.com
地址栏输⼊regist.song.com
Nginx的反向代理
在这里我们用tomcat来作为例子,进行反向代理测试
-
在docker中安装号一个tomcat,IP:192.168.126.138 端口:8080
-
在tomcat中存放静态页面 ,内容为
-
修改Nginx 的配置⽂件:~/nginx/config.d/proxy.conf ,配置反向代理
upstream tomcat-song{ server 192.168.126.138:8080; } server { listen 80; # 监听的端⼝ server_name www.hong.com; # 域名或ip location / { # 访问路径配置 # root index;# 根⽬录 proxy_pass http://tomcat-song; index index.html index.htm; # 默认⾸⻚ } }
-
重新启动Nginx 然后⽤浏览器测试:http://www.hong.com
Nginx的负载均衡
-
使⽤docker创建3个tomcat容器,端⼝分别为8080 ,8081,8082 ,并启动
-
修改Nginx 的配置⽂件:~/nginx/config.d/lb.conf ,配置负载均衡
upstream tomcat-song { server 192.168.126.138:8080; server 192.168.126.138:8081; server 192.168.126.138:8082; } server { listen 80; # 监听的端⼝ server_name www.load.com; # 域名或ip location / { # 访问路径配置 # root index;# 根⽬录 proxy_pass http://tomcat-song; index index.html index.htm; # 默认⾸⻚ } error_page 500 502 503 504 /50x.html; # 错误⻚⾯ location = /50x.html { root html; } }
-
地址栏输⼊http:// www.load.com / 刷新观察每个⽹⻚的标题,看是否不同
经过测试,三台服务器出现的概率各为33.3333333%,交替显示 -
如果其中⼀台服务器性能⽐较好,想让其承担更多的压⼒,可以设置权重,配置如下
upstream tomcat-song { server 192.168.126.138:8080; server 192.168.126.138:8081 weight=2; server 192.168.126.138:8082; }
8081端口服务器出现次数就是其他的2倍