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.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; 
        }
    }
}

 

上一篇:curl 提交请求


下一篇:ecmobile中IOS版本中界面文字不显示的解决