美文网首页
nginx总结

nginx总结

作者: _花 | 来源:发表于2022-02-14 10:44 被阅读0次

    如何找出nginx配置文件的所在位置?

    1、如果程序在运行中
    ps -ef | grep nginx
    结果图:

    image.png
    2、程序并没有运行
    查看软件安装路径
    whereis nginx
    查询运行文件所在路径
    which nginx
    当然还有另外的查询方法
    rpm包安装的,可以用rpm -qa | grep “软件或者包的名字”查询;
    yum方法安装的,可以用yum list installed查找;
    3.启动时指定nginx配置文件

    nginx命令

    1.Mac下nginx启动、关闭与重启命令
    nginx启动

    • 检查nginx语法命令:sudo nginx -t
    • 启动nginx:sudo nginx
    • 关闭nginx:sudo nginx -s stop
    • 重启nginx:sudo nginx -s reload

    1.使用 nginx 报找不到命令,解决方法是配置环境变量
    vim /etc/profile
    export PATH=$PATH:/usr/local/nginx/sbin
    wq! //保存退出
    source /etc/profile //使配置生效
    2.使用 nginx报权限不够,使用sudo nginx 报找不到命令,是因为sudo默认只将系统命令添加root权限,nginx不是系统命令,解决方法是 sudo vim /etc/sudoers,在secure_path中加入/usr/local/nginx/sbin

    nginx配置文件

    1.include mime.type
    当我们打开OSC的一个页面,看到一个PNG格式的图片的时候,Nginx是这样发送格式信息的:

    服务器上有enter_narrow.png这个文件,后缀名是png;
    根据mime.types,这个文件的数据类型应该是image/png;
    将Content-Type的值设置为image/png,然后发送给客户端。
    2.default_type application/octet-stream; #默认文件类型,默认为text/plain
    3.nginx丢失文件头

    • 默认的情况下nginx引用header变量时不能使用带下划线的变量。要解决这样的问题只能单独配置underscores_in_headers on;
    • 默认的情况下会忽略掉带下划线的变量。要解决这个需要配置ignore_invalid_headers off。

    4.access_log off; #取消服务日志
    5.client_body_temp_path /home/caros/odp_keel/webserver/cache/client_body;
    的client_body_temp_path是制定post上传的$_FILES上传的文
    件地址
    6.FastCGI是一个可伸缩地、高速地在HTTP server和动态脚本语言间通信的接口。
    fastcgi_connect_timeout # 指定NGINX与后端FastCGI server连接超时时间
    fastcgi_temp_path path #fastcgi临时文件存放路径
    7.proxy_pass http://192.168.8.5:8080/uri #配置反向代理
    proxy_temp_path /tmp/proxy_temp #在一个指定的本地目录来缓存较大的代理请求。一般都设置在临时目录中

    server{
            listen       80;
            server_name  172.24.228.63;
            location ~ /8083/ {
                proxy_pass http://172.24.228.63:8083;
            rewrite "^/8083/(.*)$" /$1 break;
            }
            location ~ /8003/ {
                proxy_pass http://172.24.228.63:8003;
            rewrite "^/8003/(.*)$" /$1 break;
            }
            location ~ /8081/ {
                proxy_pass http://172.24.228.63:8081;
            rewrite "^/8081/(.*)$" /$1 break;
            }
        location ~ /8008/ {
                proxy_pass http://172.24.228.63:8008;
            rewrite "^/8081/(.*)$" /$1 break;
            }
        }
    

    8.gzip on #打开gzip,可以见效网页下载体积,加快网页的加载速度
    gzip_min_length 1k; # 启用gzip压缩的最小文件,小于设置值的文件将不会压缩

    1. policy_frame off;
    Nginx 中 include 指令使用

    1、应用场景:
    当存在多个域名时,如果所有配置都写在 nginx.conf 主配置文件中,难免会显得杂乱与臃肿。
    为了方便配置文件的维护,所以需要进行拆分配置。
    2、在 nginx 的 conf 目录下 创建 vhost 文件夹:

    负载均衡

    1.在http模块新加

    • 不添加则表示按照时间依次轮询;
    upstream myserver{
      server 192.168.8.5:8080;
      server 192.168.8.5:8081 ;
    }
    
    • weight 标识按照权重分配
    upstream myserver{
      server 192.168.8.5:8080 weight=10;
      server 192.168.8.5:8081 weight=5;
    }
    
    • iphash 将发请求的IP地址hash编码,每个编码对应一个server,这样可以保证session不变
    upstream myserver{
      iphash
      server 192.168.8.5:8080;
      server 192.168.8.5:8081;
    }
    
    • fair 按照服务器访问时间来处理请求,响应时间短的优先分配
    upstream myserver{
      server 192.168.8.5:8080;
      server 192.168.8.5:8081;
      fair
    }
    

    2.在server模块改动

    sercer_name  192.168.8.5
    location / {
      proxy_pass  http://myserver;
    }
    
    

    动静分离

    1.把静态资源单独拿出来放在单独的域名下

    location / www/{
      root /data/;
      index index.html index.html;
    }
    location / image/{
      root /data/;
     autoindex on;#列出文件目录
    }
    

    高可用(防止nginx宕机,可设置多台Nginx)

    keepalived + 虚拟IP + 两台nginx服务器
    1.yum install keepalived -y
    2.两台服务器都需要安装,安装之后,在etc里面生成目录keepalived,有文件keepalived.conf,更改keepalived.conf配置文件中的属性

    Nginx原理

    Nginx启动后有两个进程一个master,一个worker(争抢)
    一个master对应多个worker
    nginx -s reload,利于热部署机制
    每个worker都是独立的进程,如果其中一个worker出问题,其余worker可以继续工作
    worker数量和CPU数量最好一致
    worker_connection为2个或者4个
    有4个worker,每个worker支持1024个连接数据,那worker支持最大并发数是多少? 41024/2 或者 41024/4

    正向代理和反向代理

    1.正向代理即是客户端代理, 代理客户端, 服务端不知道实际发起请求的客户端.
    客户端需要配置代理服务器和最终要访问的服务器

    2.反向代理即是服务端代理, 代理服务端, 客户端不知道实际提供服务的服务端
    客户端不需要任何操作,只要访问最终要访问的服务器端就可以了。


    正向代理和反向代理.png

    相关文章

      网友评论

          本文标题:nginx总结

          本文链接:https://www.haomeiwen.com/subject/djuakrtx.html