概念
Nginx* (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务 , 其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。
应用场景
自己理解
nginx 就是一个和TomCat一样的http服务器,在分布式,微服务当中用来
- 放前端的静态资源.
- 可以虚拟多台主机
- 反向代理(负载均衡),可以承受很高的并发量.
静态服务器结构图:
负载均衡:
nginx 配置文件介绍
http {
...
#服务(主机),nginx的其中一个服务,可以配置多个.
server {
# 端口
listen 86;
# 域名/ip
server_name 127.0.0.1;
# / 表示拦截该域名和端口下的所有请求
location / {
# 资源目录
root hrm-user;
# index 的页面
index index.html index.htm;
}
}
Nginx 虚拟主机
自己理解
虚拟主机就是把一台电脑(一个ip),虚拟出多个域名出来.
如 jd.com
miaosha.jd.com
访问的都是同一个ip,从域名上看,感觉是访问的两台服务器.
nginx 虚拟主机配置
...
server {
listen 80;
server_name user.hrm.com;
location / {
root hrm-user;
index index.html index.htm;
}
}
server {
listen 80;
server_name www.hrm.com;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root hrm-home;
index index.html index.htm;
}
...
修改host文件
127.0.0.1 www.hrm.com
127.0.0.1 user.hrm.com
nginx负载均衡(反向代理)
在zuul(网关)做了集群的情况下(处理高并发),需要由nginx来做请求分发(不知道nginx有不有限流的作用). nginx默认采用的分发策略是轮询,其他的还有hash(同一个ip访问固定服务器).
nginx负载均衡配置方法
编写配置文件
http:{
...
upstream myservers{
ip_hash; # 负载均衡算法
server 127.0.0.1:1010; # zuul 集群
server 127.0.0.1:1011;
}
server {
listen 55;
server_name 127.0.0.1;
location / {
proxy_pass http://myservers; # 代理
index index.html index.htm;
}
}