Nginx
(engine x) 是一个高性能的HTTP和反向代理web服务器,可以实现反向代理,负载均衡和HTTP缓存等。
优点:占内存小,配置简单,高并发连接,内存消耗小,稳定性高,节省带宽(支持GZIP压缩),异步非阻塞事件处理机制
nginx下载:
下载地址 http://nginx.org/en/download.html
下载解压zip文件
nginx启动:
双击 nginx.exe 启动
打开cmd命令行,切换到nginx目录下,执行命令启动
start nginx 或者 nginx.exe
在浏览器输入 http://localhost:80 ,便可以访问到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服务和请求地址
参考资料
Nginx中文手册:http://www.dba.cn/book/nginx/
Nginx维基::https://www.nginx.com/resources/wiki/
Copyright © 广州京杭网络科技有限公司 2005-2024 版权所有 粤ICP备16019765号
广州京杭网络科技有限公司 版权所有