nginx
2022/4/5 7:19:03
本文主要是介绍nginx,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
nginx
目录- nginx
- 一、nginx概述
- 1. nginx简介
- 2. nginx特点
- 3. nginx应用场景
- 二、nginx使用方式
- 三、配置虚拟主机
- 1. 通过端口区分不同的虚拟主机
- 2. 通过域名区分不同的虚拟主机
- 四、nginx作为反向代理服务器
- 1. 代理概述
- 2. nginx实现反向代理
- 五、nginx作为负载均衡器
- 1. 负载均衡器概述
- 2. nginx实现负载均衡
- 一、nginx概述
一、nginx概述
1. nginx简介
- nginx(发音同 engine x)是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器
2. nginx特点
-
内存占用少,并发能力强
-
nginx专为性能优化而开发, 在高连接并发的情况下,能够支持高达 50000 个并发连接数的响应
Tomcat仅支持500左右
-
nginx支持热部署, 可以在不间断服务的情况下,对软件版本进行升级
3. nginx应用场景
-
http服务器
可以做网页静态服务器
-
虚拟主机
实际开发时实现了一台服务器虚拟出多个网站(不同域名/端口号)
-
反向代理,负载均衡
正向代理:正向代理代理的是客户端, 服务端不知道实际发起请求的客户端
反向代理:代理服务器接收客户端的请求,然后将请求转发给网站内部应用服务器,并将从服务器上得到的结果返回给客户端
单台服务器不能满足用户的请求时,需要用多台服务器集群,可以使用nginx做代理服务器,nginx接收到请求后会将请求转发给后面的应用服务器
多台服务器可以平均分担负载,不会因为某台服务器负载高宕机或者某台服务器闲置的情况
二、nginx使用方式
-
启动
cd /usr/local/nginx/sbin
./nginx
-
关闭
./nginx -s stop
-
查看进程
ps aux | grep nginx
-
启动nginx后在浏览器中访问服务器IP前,需要先关闭防火墙
默认配置了80端口
/sbin/iptables -I INPUT -p tcp --dport 指定的端口号 -j ACCEPT
三、配置虚拟主机
1. 通过端口区分不同的虚拟主机
-
在nginx.conf中配置虚拟主机,一个server代表一个虚拟主机
worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; server { listen 80; server_name localhost; # 配置localhost无需更改host自动映射为本机IP location / { root html; index index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } # 配置新的server server { listen 81; # 修改端口 server_name localhost; location / { root html81; # 重新制定一个目录 index index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } }
-
拷贝一份html文件夹作为新server的root目录
/usr/local/nginx
cp -r html/ html81
-
重新加载nginx
cd /usr/local/nginx/sbin
./nginx -s reload
-
访问当前服务器IP下配置的不同端口号
http://192.168.xxx.xxx 访问第一个server http://192.168.xxx.xxx:81 访问第二个server
2. 通过域名区分不同的虚拟主机
-
相关概念
- 域名级别
- 一级:例如
.com
、.org
、.cn
- 二级:例如
baidu.com
、zhihu.com
- 三级:例如
www.baidu.com
、www.zhihu.com
- 一级:例如
- 域名绑定
- 一个域名对应一个IP地址,一个IP地址可以被多个域名绑定
- 通过DNS服务器去解析域名
- 域名级别
-
配置域名映射的方式
-
可以在本机上配置域名和IP的映射关系,如果hosts文件中配置了域名和IP的对应关系,不需要走DNS服务器
修改window中的hosts文件:(C:\Windows\System32\drivers\etc)
192.168.xxx.xxx www.ng.com
-
也可以使用SwitchHosts修改hosts中域名映射配置(同上面的方法,只是简化hosts文件的修改)
-
-
通过域名区分不同的虚拟主机步骤
-
在nginx.conf中配置虚拟主机,端口号相同,server_name和root目录名不同
worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; server { listen 80; server_name www.t1conycass.com; # 配置后需要在hosts文件中修改该域名对应的IP location / { root html-t1; # 重新制定一个目录 index index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } # 配置新的server server { listen 80; # 修改端口 server_name www.t2conycass.com; # 配置后需要在hosts文件中修改该域名对应的IP location / { root html-t2; # 重新制定一个目录 index index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } }
重新加载nginx配置文件
cd /usr/local/nginx/sbin
./nginx -s reload
-
使用SwitchHosts修改hosts中域名映射配置,两个域名同时绑定一个IP
# nginx 192.168.197.128 www.t1conycass.com 192.168.197.128 www.t2conycass.com
-
四、nginx作为反向代理服务器
1. 代理概述
-
代理(服务器):客户机在发送请求时,不会直接发送给目的主机,而是先发送给代理服务器,代理服务器接受客户机请求之后,再向目的主机发出,并接收目的主机返回的数据再发送给客户机
-
正向代理:正向代理代理的是客户端,服务端不知道实际发起请求的客户端
案例:国内访问谷歌,直接访问访问不到,我们可以通过一个正向代理服务器,先将请求发送到到代理服务器,代理服务器能够访问谷歌,这样由代理去谷歌取到返回数据,再返回给我们,这样我们就能访问谷歌了
-
反向代理:反向代理代理的是服务器,代理服务器接收客户端的请求,将请求转发到网站内部的应用服务器上,并将应用服务器上得到的结果返回给客户端
2. nginx实现反向代理
-
nginx作为反向代理服务器安装在服务端,nginx的功能就是将请求转发给后面的应用服务器
-
实现步骤
-
在服务端启动两个Tomcat服务器端口号分别是8080和8081
./bin/startup.sh
在浏览器中访问两个Tomcat,可查看到Tomcat主页面
http://192.168.xxx.xxx:8080/ http://192.168.xxx.xxx:8081/
-
在nginx.conf中配置反向代理服务器
# 反向代理配置1 upstream ramentherapy01 { # 用server定义HTTP地址 server 192.168.197.128:8080; } server { listen 80; # 修改端口 server_name www.ramentherapy01.com; location / { # proxy可以将请求代理到对应的upstream proxy_pass http://ramentherapy01; # 转发的地址 index index.html index.htm; } } # 反向代理配置2 upstream ramentherapy02 { # 用server定义HTTP地址 server 192.168.197.128:8081; } server { listen 80; # 修改端口 server_name www.ramentherapy02.com; location / { # proxy可以将请求代理到对应的upstream proxy_pass http://ramentherapy02; # 转发的地址 index index.html index.htm; } }
重新加载nginx配置文件
cd /usr/local/nginx/sbin
./nginx -s reload
-
使用SwitchHosts修改hosts中域名映射配置,两个域名同时绑定一个IP
192.168.197.128 www.ramentherapy01.com 192.168.197.128 www.ramentherapy02.com
-
五、nginx作为负载均衡器
1. 负载均衡器概述
- 反向代理服务器中的负载均衡器作用:将大量的请求合理地发送给集群中的不同服务器, 避免临时的网络堵塞
2. nginx实现负载均衡
-
负载均衡策略
- 轮询:默认策略, 每个请求按照时间顺序逐一分配到不同的服务器,如果某一个服务器下线,能自动剔除
- 权重:可以根据服务器的实际情况调整服务器权重,权重越高分配的请求越多,权重越低,请求越少(默认都是1)
-
实现步骤
-
在nginx.conf中配置反向代理服务器(默认策略是轮询)
# 负载均衡 upstream ramentherapy { # 用server定义HTTP地址 server 192.168.197.128:8080; server 192.168.197.128:8081; } server { listen 80; # 修改端口 server_name www.ramentherapy.com; location / { # proxy可以将请求代理到对应的upstream proxy_pass http://ramentherapy; # 转发的地址 index index.html index.htm; } }
在nginx.conf中配置反向代理服务器(权重)
# 负载均衡 upstream ramentherapy { # 用server定义HTTP地址 server 192.168.197.128:8080 weight=1; server 192.168.197.128:8081 weight=10; } server { listen 80; # 修改端口 server_name www.ramentherapy.com; location / { # proxy可以将请求代理到对应的upstream proxy_pass http://ramentherapy; # 转发的地址 index index.html index.htm; } }
-
重新加载nginx配置文件
cd /usr/local/nginx/sbin
./nginx -s reload
-
使用SwitchHosts修改hosts中域名映射配置
192.168.197.128 www.ramentherapy.com
-
这篇关于nginx的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-13用Nginx防范DDoS攻击的那些事儿
- 2024-12-13用Terraform在AWS上搭建简单NGINX服务器指南
- 2024-10-29Nginx发布学习:从入门到实践的简单教程
- 2024-10-28Nginx发布:新手入门教程
- 2024-10-21nginx 怎么设置文件上传最大20M限制-icode9专业技术文章分享
- 2024-10-17关闭 nginx的命令是什么?-icode9专业技术文章分享
- 2024-09-17Nginx实用篇:实现负载均衡、限流与动静分离
- 2024-08-21宝塔nginx新增8022端口方法步骤-icode9专业技术文章分享
- 2024-08-21nginx配置,让ws升级为wss访问的方法步骤-icode9专业技术文章分享
- 2024-08-15nginx ws代理配置方法步骤-icode9专业技术文章分享