Nginx常用命令及使用场景

1常用命令

cd  ./nginx/sbin

#查看nginx版本号

./nginx -v

#启动nginx

./nginx

#停止nginx

./nginx -s stop

#重新加载nginx,使配置项生效

./nginx -s reload

2 配置文件nginx.conf

#配置默认文件位置

cd ./nginx/conf/nginx.conf

3 nginx使用场景

3.1跨域(反向代理+静态文件配置)

Nginx跨域在前后台项目中被广泛使用,用于保证前后台的接口的连通性。

  server {

    listen       511;

        server_tokens off;

        #add_header X-Frame-Options SAMEORIGIN;

   #前端静态文件配置

    location / {

      root   /usr/share/nginx/html/web;

      index  index.html index.htm;

      try_files $uri $uri/ /index.html;

    }

   #跨域(反向代理)配置

    location /api/ {

      proxy_pass http://gateway:9007/;

      proxy_connect_timeout 30s;

      proxy_send_timeout 60s;

      proxy_read_timeout 60s;

      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

      proxy_set_header HTTP_CLIENT_IP $remote_addr;

    }

  }

静态文件配置关注点

  1. 静态文件的路径要确保正确

在容器化的nginx服务中,静态文件的路径应是容器内部的静态文件路径

反向代理配置关注点

(1)proxy_pass地址要确保正确

在前后台分离的项目中,proxy_pass应是gateway的地址

若项目部署在k8s时,首先查询一下kube-dns插件(或coreDns)是否安装

kubectl -n kube-system get svc | grep dns

   存在kube-dns插件,则proxy_pass:协议://deploymentName:gatewayPort

若不存在kube-dns插件(或coreDns)

则proxy:协议://宿主机:gatewayPort的对外端口

若项目是docker部署时,首先查询一下,docker-compose-xxx.yml文件的网络格式

network_mode: host 表示共有宿主机网络空间,proxy_pass:协议://宿主机IP:容器内部端口;

network_mode:bridge,或容器都在同一个docker-network下时,容器名称可以自动解析为容器IP,则proxy_pass:协议://容器名称:容器内部端口

3.2 正向代理

Nginx 服务器作为客户端代理,转发客户端发起的请求到目标服务器,并将目标服务器的响应返回给客户端的过程。简单来说,正向代理隐藏了真实的客户端,使得客户端可以通过代理服务器访问其他服务器或资源。

http {

    server {

        listen 8088;

        server_name 192.168.2.43;

        location / {

# 使用Google的DNS解析器,你也可以替换成其他可用的DNS解析器

            resolver 8.8.8.8; 

            proxy_pass $scheme://$host$request_uri;

            proxy_set_header Host $host;

            proxy_set_header X-Real-IP $remote_addr;

            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

            proxy_connect_timeout 10s;

            proxy_read_timeout 30s;

        }

    }

}

3.3 负载均衡

项目中的负载均衡主要体现在高并发情况下的读写分离、均衡web服务器集群负载、均衡应用服务集群负载等

以简单的后台接口均衡举例:

http {

    include       mime.types;

    default_type  application/octet-stream;

         sendfile        on;

      # 反向代理配置

#配置一:指定权重

         upstream server_list{

            # 业务接口

        # 权重weight值越高,代表请求的频率越频繁

            server 192.168.2.44:8084 weight=1;

            server 192.168.2.44:8085 weight=2 backup; #backup 代表先不使用,等其他节点都不可用后再使用

         }

#配置二:根据IP的hash来为请求者固定分配一个服务端,主要用于保持session

         upstream server_list{

            # 业务接口

            ip_hash; #还有其他第三方插件,应根据实际需求选择

            server 192.168.2.44:8084;

            server 192.168.2.44:8085 dwon; #down 代表 该节点不可用,不在接收请求

         }





         server {

                 listen       8089;

                 server_name  localhost;

                 location / {

                                   proxy_pass http://server_list;  

                   proxy_redirect default;                               

                 }

        

                 error_page   500 502 503 504  /50x.html;

                 location = /50x.html {

                     root   html;

                 }

             }



}

4、使用注意事项

4.1 关闭 server_tokens,避免在错误界面返回nginx版本

4.2nginx.conf配置修改应及时重载配置

有些参数的配置在nginx重启后,并不生效,需要手动重载配置,
如:add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";

重新加载nginx.conf

nginx -s reload

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值