windows下nginx的基本使用

windows下nginx的基本使用

Nginx

Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,可以实现反向代理,负载均衡和HTTP缓存等。

优点:占内存小,配置简单,高并发连接,内存消耗小,稳定性高,节省带宽(支持GZIP压缩),异步非阻塞事件处理机制

nginx下载:

下载地址 http://nginx.org/en/download.html

下载解压zip文件windows下nginx的基本使用

nginx启动:

  1. 双击 nginx.exe 启动
  2. 打开cmd命令行,切换到nginx目录下,执行命令启动

start nginx 或者 nginx.exe

在浏览器输入 http://localhost:80 ,便可以访问到nginxwindows下nginx的基本使用

nginx常用命令:

停止nginx

// 完整有序的停止nginx,保存相关信息:nginx -s quit

// 快速停止nginx,可能并不保存相关信息:nginx -s stop

重启nginx

nginx -s reopen

重新载入配置文件

nginx -s reload

查看帮助信息

nginx -h

查看nginx版本

nginx -v

nginx配置文件:

conf 文件夹下nginx.conf文件为nginx配置文件

组成部分:
  • main块(全局块):nginx全局信息,指令的相关配置
  • events块:nginx工作模式,与用户网络连接的相关配置
  • http块:http协议信息,代理,缓存,日志大多数功能和第三方模块的的相关配置
  • server块:虚拟主机的相关配置(一个http块中可有多个)
  • location块:请求路由,各种页面处理情况的相关配置
  • upstream块:nginx负载均衡的相关配置

nginx.conf:

#main全局配置
#user  nobody;                 #配置用户或者组,默认为nobody
worker_processes  1;               #允许生成的进程数,默认为1
#error_log logs/error.log;              #制定日志路径,级别。级别:debug|info|notice|warn|error|crit|alert|emerg
#pid        logs/nginx.pid;                             #指定nginx进程运行文件存放地址                             

events {                  #工作模式配置
    multi_accept on;                 #设置一个进程是否同时接受多个网络连接,默认为off
    #use epoll;                     #事件驱动模型,select|poll|kqueue|epoll|resig|/dev/poll|eventport
    worker_connections  1024;                #最大连接数,默认为512
}
  
http{                                                #http配置
 include       mime.types;                        #文件扩展名与文件类型映射表
    default_type  application/octet-stream;                                     #默认文件类型,默认为text/plain
    #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  logs/access.log;                       #存储访问记录的日志
    #error_log logs/error.log             #存储记录错误发生的日志
    #gzip  on;                 #采用gzip压缩的形式发送数据
    sendfile on;                   #允许sendfile方式传输文件,默认为off
    sendfile_max_chunk 100k;               #每个进程每次调用传输数量不能大于设定的值,默认为0,即不设上限
    keepalive_timeout 65;                #连接超时时间,默认为75s
    client_header_timeout 10;             #发送请求头的超时时间
    client_body_timeout 10;              #发送请求体的超时时间
                     
  server{                                          #虚拟主机配置
    listen  80;                               #端口号
    server_name  https://blog.csdn.net/weixin_45426836;               #主机域名
    charset  utf-8;               #网页的默认编码格式
 
  #跨域配置(在server中设置为允许全局跨域,在location中设置为允许指定文件跨域)
  add_header Access-Control-Allow-Origin *;        #接受跨域请求的请求源(*为接受所有跨域请求)
     add_header Access-Control-Allow-Methods 'GET,POST,OPTIONS';    #接受跨域请求的HTTP方法
     add_header Access-Control-Max-Age 1728000;        #本次预检请求的有效期,单位为秒
     #接受跨域请求的头信息字段
     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'

    location / {                                 #路由配置     
       root   x:/xxx/xxx;                       #项目所在路径
       index  index.html index.htm;             #首页(默认页)
    }
    
    #错误页配置
    error_page   500 502 503 504  /50x.html;         
     location = /50x.html {
         root   html;
     } 
     
    #反向代理配置
    location /
 {
      proxy_pass http://localhost:9999;         #反向代理主机地址配置
      proxy_set_header X-real-ip $remote_addr;       #设置代理请求头,将用户访问的IP记录到自己的IP地段上
      proxy_set_header Host $http_host;         #设置代理请求头,将用户访问的地址记录到自己的HOST记录上
      proxy_connect_timeout 60;           #代理连接超时时间,默认为60
      proxy_send_timeout 60;            #代理发送超时时间,默认为60
      proxy_read_timeout 60;            #代理接受超时时间,默认为60
  }
  }
  
  server{                                          #虚拟主机配置
    listen  81 default_server;                           #default_server设置为默认主机,未匹配到主机域名则使用这个server
    server_name  https://blog.csdn.net/weixin_45426836;                             
    location / {                                 
       root   x:/xxx/xxx;                       
       index  index.html index.htm;             
    }
    
  server {                    #多个虚拟主机配置
        ....
        location {
            ....
        }
    }
}

upstream name {                                #负载均衡配置
 ip_hash;                 #表示让相同的客户端ip请求相同的主机
 #分发服务器的列表配置
   server 192.168.xxx.xxx:9000;            #默认按请求的顺序依次分配主机
   server 192.168.xxx.xxx:9001 backup;           #backup表示如果有两台主机,当一台主机发生事故时,才启用这台主机
   server 192.168.xxx.xxx:9002 weight=1;
   server 192.168.xxx.xxx:9003 weight=4;          #weight表示该主机的权重,和访问率成正比,默认为1
    server 192.168.xxx.xxx:9004 down;           #down表示该主机暂停服务
    server 192.168.xxx.xxx:9005 max_fails=2;         #max_fails表示失败最大次数,超过失败最大次数暂停服务
    server 192.168.xxx.xxx:9006 fail_timeout=10s;        #fail_timeout表示如果请求受理失败,暂停指定的时间之后重新发起请求
}
nginx处理请求:

nginx 在收到请求时先通过 server_name 匹配一个 server,再通过 server 中的 location 继续处理,如果没有匹配到,则会使用 default_server 中的 location 进行处理,如果没有定义 default_server,则第一个定义的 server 为 default_server

vue项目打包部署到nginx

修改nginx配置文件nginx.conf

nginx.conf:

http{                                           
  server{                                        
    listen       8080;                      #设置端口号8080
    server_name  localhost;                 #主机域名
    location / {                                      
       root   C:/vue/dist;                 #dist文件夹路径
       index  index.html index.htm;        #项目首页
    }
  }
}

启动nginx,浏览器输入 http://localhost:8080 便可以访问到我们打包后的vue项目 调试窗口 Network 中可以看到是nginx服务和请求地址windows下nginx的基本使用

参考资料

Nginx中文手册:http://www.dba.cn/book/nginx/

Nginx维基::https://www.nginx.com/resources/wiki/


原文始发于微信公众号(前端24):windows下nginx的基本使用

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/217140.html

(0)
李, 若俞的头像李, 若俞

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!