大型商城:Nginx-搭建域名访问环境(nginx网站配置)

Docker安装Nginx

新建要用的Nginx

开放80端口

访问虚拟机ip,80端口不用加,默认就是80端口,会出现403 Forbidden,这是因为nginx的静态资源文件夹下没有文件可读取。在/mydata/nginx/html文件夹下创建一个index.html 即可正常打开

整体示意图

大型商城:Nginx-搭建域名访问环境(nginx网站配置)

反向代理配置

修改host文件:C:\Windows\System32\drivers\etc

新增:192.168.56.10 mall.com

Nginx的配置文件

我们将docker的nginx等文件挂载到了虚拟机,其中/mydata/nginx/conf/nginx.conf就是配置文件。配置文件主要分如下几个部分

  • 全局块:主要配置用户组,worker process的数量、pid存档路径和日志存放路径等
  • Event块:主要设置每个worker process的最大连接数(默认1024),这部分的配置对 Nginx 的性能影响较大,在实际中应该灵活配置。
  • Http块:这算是 Nginx 服务器配置中最频繁的部分,代理、缓存和日志定义等绝大多数功能和第三方模块的配置都在这里。需要注意的是:http 块也可以包括 http 全局块、server 块
大型商城:Nginx-搭建域名访问环境(nginx网站配置)

conf.d文件夹下有一个default.conf配置文件,这个就是一个server块

大型商城:Nginx-搭建域名访问环境(nginx网站配置)

配置代理

在 conf.d文件夹下新建一个 gulimall.conf,http会自动引入,作为server块

负载均衡到网关

nginx负载均衡给网关,网关再负载均衡到对应的服务。(分布式中最重要的一点就是保证高可用,所以处处都要考虑集群)

http全局块中配置upstream

大型商城:Nginx-搭建域名访问环境(nginx网站配置)

server块负载均衡配置

nginx代理给网关的时候会丢失请求的host信息,所以不要忘记加上proxy_set_header Host $host;如果不加后面网关通过Host断言机制会失效

大型商城:Nginx-搭建域名访问环境(nginx网站配置)

gateway网关配置

现在我们访问mall.com发现404,这是因为网关没有配置路由规则,不知道路由到哪里。

注意,这里按照Host的断言一定要放到最后面,如果放在最前面,我们通过域名+/api/xxx等接口都会被屏蔽。因为网关会优先匹配Host,他会直接路由给我们商品服务,而商品服务中是没有/api这个请求路径的,需要过滤。

nginx代理给网关的时候会丢失请求的host信息,所以在配置转发的时候,要设置添加Host信息。

正文完
 0