内存占用少,并发能力强
nginx专为性能优化而开发, 在高连接并发的情况下,能够支持高达 50000 个并发连接数的响应
Tomcat仅支持500左右
nginx支持热部署, 可以在不间断服务的情况下,对软件版本进行升级
http服务器
可以做网页静态服务器
虚拟主机
实际开发时实现了一台服务器虚拟出多个网站(不同域名/端口号)
反向代理,负载均衡
正向代理:正向代理代理的是客户端, 服务端不知道实际发起请求的客户端
反向代理:代理服务器接收客户端的请求,然后将请求转发给网站内部应用服务器,并将从服务器上得到的结果返回给客户端
单台服务器不能满足用户的请求时,需要用多台服务器集群,可以使用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
在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
相关概念
.com
、.org
、.cn
baidu.com
、zhihu.com
www.baidu.com
、www.zhihu.com
配置域名映射的方式
可以在本机上配置域名和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作为反向代理服务器安装在服务端,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.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