我用Nginx解决哪些问题【实操总结】

大小型项目服务器的必选,大项目用它的负载均衡,小项目用它的反向代理,所有项目用它的缓存静态,管理证书,跨域问题

什么是反向代理

社会复杂,担心有些陌生人还没合作,就去公司闹事,所以我将一些第一次接待,第一次面试放到了共享办公室,共享办公室有我的宣传册,有公共会议室。通过这些,我给公司做了一层保险,这个保险就是反向代理。

任何访问我后台的客户端,我先通过这个反向代理,做个基础接待,符合要求的,我才会转发给我的后台服务器

什么是负载均衡

共享办公室业务量增加,接待业务许多,按照以往经验,我制定规范,不同业务的人员去不同的服务器,缓解公司总部接待量的压力,我也设置了多个子公司

经典代码

# 反向代理[经典]
server {
          listen 80;      # 标准 HTTP 协议
          listen 443 ssl; # 标准 HTTPS 协议
          server_name example.com;
          location / {
            proxy_pass http://127.0.0.1:3000;
            proxy_redirect      off;
            proxy_set_header    Host $host;
          }
}
#  我共享办公室叫:example.com,所有接口我全部转发给127.0.0.1:3000这个服务器
# 负载均衡【我实现制定好】
upstream node_js {
      server 0.0.0.0:3000;
      # 其中 0.0.0.0:3000 是绑定在 
      # 0.0.0.0端口3000 列表上的 Node.js 服务器
}
server {
      listen 80;
      server_name example.com;

      location / {
        proxy_pass http://node_js;
      }
}

# 8080端口的访问量我设置了9,8081的权重量我设置了1 
# 负载均衡【我让他们自由竞争】
upstream backend {
          ip_hash;
          fair;
          server localhost:8080;
          server localhost:8081;
}
# 哪个子公司空闲,我优先思考
# 负载均衡【按照客户端的标记自动划分】
upstream backend {
          hash $request_uri;
          hash_method crc32;
          server localhost:8080;
          server localhost:8081;
}
# 带着关系过来的,不同的人去不同的公司
# 负载均衡【专门对一类人开放的后门】
location /folder/ { 
          proxy_pass http://127.0.0.1:3000/;
          proxy_redirect      off;
          proxy_set_header    Host            $host;
          proxy_set_header    X-Real-IP       $remote_addr;
          proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;
}
# 有些人自带光环,我为他专门开了个岗位

全部好了,我得安排个自己的仓库,静态资源

server {
        listen 80;
        server_name example.com;
        root /path/to/website;
        # root /path/to/website/   示例,如果里面没有'root',它将寻找 /path/to/website/index.html
        location / {
        }
        location /images/ { # 如果里面没有“root”,它将寻找 /path/to/website/images/index.html
        }
        location /videos/ { # 由于里面有“root”,它会寻找 /www/media/videos/index.html
            root /www/media;
        }
}

跨域问题

共享办公室得装修一下,带着宠物的不能进来,下次不带宠物可以进来

server {
  listen 80;
  server_name api.xxx.com;
    
  add_header 'Access-Control-Allow-Origin' '*';
  add_header 'Access-Control-Allow-Credentials' 'true';
  add_header 'Access-Control-Allow-Methods' 'GET,POST,HEAD';

  location / {
    proxy_pass http://127.0.0.1:3000;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host  $http_host;    
  } 
}

….
还有许多,全部写完太长了,感兴趣的关注一下,共同成长

© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
评论 共1条

请登录后发表评论