请解释一下什么是Nginx?
Nginx是一个 web 服务器和反向代理服务器,用于HITP、HITPS、SMTP、POP3和IMAP协议。
Nginx的安装
- 随便启动一个nginx实例,只是为了复制出配置
docker run -p80:80 --name nginx -d nginx:1.10
- 在你所创建的文件夹中例如opt创建nginx文件夹
- 在nginx文件中创建html logs conf文件夹
mkdir html
mkdir logs
mkdir conf
- 将容器内的配置文件拷贝到/opt/nginx/conf/ 下
docker container cp nginx:/etc/nginx/ /opt/nginx/conf/
- 由于拷贝完成后会在config中存在一个nginx文件夹,所以需要将它的内容移动到conf中
mv /opt/nginx/conf/nginx/ /opt/nginx/conf/
rm -rf /opt/nginx/conf/nginx
- 终止原容器
docker stop nginx
- 删除容器
docker rm nginx
- 创建新的Nginx,执行以下命令
docker run -p 80:80 --name nginx \
-v /opt/nginx/html:/usr/share/nginx/html \
-v /opt/nginx/logs:/var/log/nginx \
-v /opt/nginx/conf/:/etc/nginx \
-d nginx:1.10
- 设置开机启动nginx
docker update nginx --restart=always
- 创建“/opt/nginx/html/index.html”文件,测试是否能够正常访问
<h1>Hello Nginx!</h1>
访问:http://ngix所在主机的IP
至此,证明成功!
基于Nginx实现反向代理(搭建本地域名访问微服务)
微服务举例说明:
- 首先在C:\Windows\System32\drivers\etc 找到hosts文件
- 修改地址映射
前边是虚拟机地址 后边是要在浏览器中访问的地址
这样只要在浏览器访问feifei.com 浏览器就会直接找虚拟机
地址端口为80的nginx服务进行代理映射
- 修改nginx.conf文件
vim nginx.conf
添加以下代码块
直接代理给gateway(网关微服务)
- 进入conf.d文件夹下 拷贝default.conf --> feifei.conf
cp default.conf feifei.conf
- 编辑feifei.conf
vim feifei.conf
修改一下代码
执行流程:
- 当浏览器访问feifei.com时本机会定向到虚拟机的nginx服务
- nginx监听到访问此服务就会找是否是feifei.com
- 确认无误后会进行路径映射 location下的proxy_pass
- 又会负载均衡到
最后又返回请求我们的网关地址,进行负载均衡到商品微服务
最终结果:
Nginx实现微服务的动静分离
为什么要实现动静分离?
Nginx实现动静分离主要是为了减轻本地微服务tomcat的压力,只让tomcat处理动态请求,静态资源全部交给nginx来管理(假设有100万个请求静态资源有600万动态有400万那么只让本地微服务tomcat只处理400万的动态请求剩下的600万交给Nginx来处理)
实现步骤:
- 找到项目的静态资源文件夹
将整个文件夹的内容上传到虚拟机中路径为:
然后在你项目中的需要引用静态资源的地方修改路径即可
简单展示
以上整个Nginx实现反向代理完成!