概述
文章目录
- 一、Nginx 简介
- 二、Docker 安装 Nginx
- 三、Nginx 基本代理配置
- 四、Nginx 负载到网关
- 五、Nginx 动静分离
一、Nginx 简介
Nginx
是一款高性能的HTTP
服务器/反向代理服务器及电子邮件(IMAP
/POP3
)代理服务器。由俄罗斯的程序设计师Igor Sysoev
所开发,官方测试Nginx
能够支支撑5万并发链接,并且CPU
、内存等资源消耗却非常低,运行非常稳定。
正向代理、反向代理的概念:
Nginx 应用场景:
HTTP
服务器:Nginx
是一个HTTP
服务可以独立提供HTTP
服务。可以做网页静态服务器;- 虚拟主机:可以实现在一台服务器虚拟出多个网站。例如个人网站使用的虚拟主机;
- 反向代理,负载均衡:当网站的访问量达到一定程度后,单台服务器不能满足用户的请求时,需要用多台服务器集群可以使用
Nginx
做反向代理。并且多台服务器可以平均分担负载,不会因为某台服务器负载高宕机而某台服务器闲置的情况。
二、Docker 安装 Nginx
① 首先我们需要使用外部配置文件,先运行一个Nginx
实例,复制配置文件
[root@rich ~]# docker run -p 80:80 --name nginx -d nginx:1.10
[root@rich ~]# mkdir -p /mydata/nginx
# 复制配置文件至新建nginx目录下
[root@rich nginx]# docker cp nginx:/etc/nginx . && mv nginx conf
② 运行Nginx
,并使用外部配置
[root@rich ~]# docker run -p 80:80 --name nginx
-v /mydata/nginx/html:/usr/share/nginx/html
-v /mydata/nginx/logs:/var/log/nginx
-v /mydata/nginx/conf:/etc/nginx
-d nginx:1.10
③ 在/mydata/nginx/html
目录下新建一个index.html
,内容为
<h1>Hello Nginx</h1>
④ 访问服务ip
三、Nginx 基本代理配置
需求:我们需要将请求发往Nginx
服务并自动跳转到目标服务器(通常域名和Nginx
的ip
绑定)
Nginx.conf
的配置如下:
查看Nginx.conf
最后一行include /etc/nginx/conf.d/*.conf;
代表着/etc/nginx/conf.d
下的配置会加载到这里,所以我们只需要在conf.d
下配置即可。
修改default.conf
内容如下图
[root@mall conf.d]# vim default.conf
重启Nginx
,访问Nginx
服务
四、Nginx 负载到网关
需求:我们需要将请求发往Nginx
服务先跳转到网关然后跳转到目标服务器。
① 修改Nginx.conf
配置文件
对Nginx
的请求代理给网关,网关整个上游服务器的名字就叫nginxTest
,动态找到上游服务器组然后动态的转出去,相当于负载均衡的配置。
② 修改具体配置文件test.conf
这里的proxy_pass
即前面配好的上游服务器名;由于Nginx
在代理给网关的时候会丢失host
信息,这里需要设置请求头的host
信息
③ 路由配置(Gateway
)
配置网关路由规则参考网址
spring:
application:
name: gateway-service
cloud:
gateway:
routes:
- id: test_host_route
uri: lb://test-service
predicates:
- Host=**.test999.com
④ 访问域名,已实现Nginx
->网关->服务的跳转
五、Nginx 动静分离
在Web
开发中,通常来说,动态资源其实就是指那些后台资源,而静态资源就是指HTML
,JavaScript
,CSS
,img
等文件。
一般来说,都需要将动态资源和静态资源分开,将静态资源部署在Nginx
上,当一个请求来的时候,如果是静态资源的请求,就直接到nginx
配置的静态资源目录下面获取资源,如果是动态资源的请求,nginx
利用反向代理的原理,把请求转发给后台应用去处理,从而实现动静分离。
在使用前后端分离之后,可以很大程度的提升静态资源的访问速度,同时在开过程中也可以让前后端开发并行可以有效的提高开发时间,也可以有些的减少联调时间。
需求:
添加nginx
的配置:
location /static/ {
root /usr/share/nginx/html;
}
此时我们在/mydata/nginx/html/static/css
下添加一个color.css
:
#title {
color:red;
}
然后我们在index.html
中引入这个css
:<link rel="stylesheet" href="/static/css/color.css"/>
。
此时我们再访问:
此时发送的css
请求已经经过了nginx
。
最后
以上就是认真短靴为你收集整理的Nginx的使用一、Nginx 简介二、Docker 安装 Nginx三、Nginx 基本代理配置四、Nginx 负载到网关五、Nginx 动静分离的全部内容,希望文章能够帮你解决Nginx的使用一、Nginx 简介二、Docker 安装 Nginx三、Nginx 基本代理配置四、Nginx 负载到网关五、Nginx 动静分离所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复