文章目录
- 一、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内容请搜索靠谱客的其他文章。
发表评论 取消回复