• Nginx基本配置 代理(负载均衡) 重定向 跨域 https ssl证书 在windows下常用命令


    常用命令

    查看Nginx的版本号:nginx -V

    启动Nginx:start nginx

    指定配置启动:nginx -c /path/to/nginx.conf

    配置文件修改重新加载命令:nginx -s reload

    检查默认配置是否正确: nginx -t

    检查指定配置: nginx -t -c /path/to/nginx.conf

    快速停止或关闭Nginx:nginx -s stop

    正常停止或关闭Nginx:nginx -s quit

    可以直接杀进程或任务管理器找到 nginx 结束任务

    ps:直接解压出来的没加入环境变量,使用 ./nginx 运行

    nginx: [emerg] CreateDirectory() "H:Nginx/temp/client_body_temp" failed (3: The system cannot find the path specified)

    nginx.exe 同目录添加 temp 文件夹。

    完整配置

    # nginx启动的进程数,通常设置成和cpu的数量相等;可以设置为: auto
    worker_processes    auto;
    
    # errorlog 文件位置, 有debug、info、notice、warn、error、crit几种
    # error_log   logs/error.log  notice;
    error_log   logs/error.log  info;
    error_log   logs/error.log  error;
    
    # pid文件地址,记录了nginx的pid,方便进程管理
    pid         logs/nginx.pid;
    
    
    # 用来加载其他动态模块的配置
    # include nginx/modules/*.conf;
    
    # 工作模式和进程连接数上限
    # 并发总数:worker_processes*worker_connections
    events {
        # 每个worker_processes的最大并发链接数
        worker_connections  1024;
    }
    
    # 与提供http服务相关的一些配置参数
    http {
    
        # 引入文件扩展名与文件类型映射表
        include       mime.types;
    
        # 默认文件类型
        default_type  application/octet-stream;
    
        # 设置日志的格式
        log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                          '$status $body_bytes_sent "$http_referer" '
                          '"$http_user_agent" "$http_x_forwarded_for"';
    
        # access_log记录访问的用户、页面、浏览器、ip和其他的访问信息
        access_log  logs/access.log  main;
    
        # 设置nginx是否使用sendfile函数输出文件
        # 一般的网络传输过程
        # 硬盘 >> kernel buffer >> user buffer>> kernel socket buffer >>协议栈
        # 使用sendfile后
        # 硬盘 >> kernel buffer (快速拷贝到kernelsocket buffer) >>协栈议
        # 可以显著提高传输性能
        sendfile    on;
        # 数据包最大时发包(使用Nagle算法)
        # tcp_nopush只有在启用了sendfile时才起作用,
        # 在启用tcp_nopush后,程序接收到了数据包后不会马上发出,而是等待数据包最大时一次性发出,可以缓解网络拥堵(Nagle化)
        tcp_nopush  on;
    
    
        # 立刻发送数据包(禁用Nagle算法)
        # tcp_nodelay   on;
    
        # 链接超时时间
        #keepalive_timeout  0;
        keepalive_timeout  65;
    
        #gzip  on;
    
        # 负载均衡:多个后台服务器接口;weight:使用到的比重等级
        upstream proxyProject {
            server 127.0.0.1:3330;
            server 127.0.0.1:8080 weight=2;
        }
    
        # http服务上支持若干个虚拟主机。
        # 每个server对应一个虚拟主机配置项
        server {
             listen 80;
            # 修改为自己的域名
            server_name www.myself.com myself.com;
            # 跨域
            add_header Access-Control-Allow-Origin *;
            add_header Access-Control-Allow-Methods 'GET,POST';
            add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';
            # 301 重定向
            return 301 https://www.myself.com$request_uri;
            # rewrite ^ https://www.myself.com$request_uri? permanent;
        }
    
        # HTTPS server
        #
        server {
           listen       443 ssl;
           server_name  www.myself.com myself.com;
            # 跨域
            add_header Access-Control-Allow-Origin *;
            add_header Access-Control-Allow-Methods 'GET,POST';
            add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';
            # 证书文件
           ssl_certificate      ../../myself.com/Nginx/1_myself.com_bundle.crt;
           ssl_certificate_key  ../../myself.com/Nginx/2_myself.com.key;
    
           ssl_session_cache    shared:SSL:1m;
           ssl_session_timeout  5m;
    
        #    ssl_ciphers  HIGH:!aNULL:!MD5;
           ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
           ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
           ssl_prefer_server_ciphers  on;
    
             if ($ssl_protocol = "") {
                rewrite ^(.*) https://$host$1 permanent;
            }
            # 根路由,正常访问
           location / {
               root   html;
               index  index.html index.htm;
           }
           # 代理路由,代理访问,多个服务实现负载均衡
            location /proxy {
                proxy_pass http://proxyProject$request_uri;
                proxy_set_header X-Real-IP $remote_addr; 
            }
        }
    }
  • 相关阅读:
    面试题21 包含min函数的栈
    面试题20 顺时针打印矩阵
    基于熵的方法计算query与docs相似度
    使用信息检索和深度学习方法的智能对话
    常用的激活函数
    spark实现smote近邻采样
    wide&deep用于ltr排序
    deepfm用于ltr排序
    lightgbm用于排序
    静态工厂方法+服务提供者框架模板
  • 原文地址:https://www.cnblogs.com/jiayouba/p/15509673.html
Copyright © 2020-2023  润新知