https://www.cnblogs.com/dongye95/p/11059024.html
https://zhuanlan.zhihu.com/p/54793789
-
请解释一下什么是Nginx?
Nginx是一个web服务器和反向代理服务器 -
Nginx作用
- 反向代理
- 负载均衡
- 放静态资源
-
Nginx服务器上的Master和Worker 默认值是多少,为什么设置成这个?
master是主进程,主要是接收来自外界的信号,向各worker进程发送信号,管理worker。Master:1
Worker: 多个,一般而言可以设置成cpu核数大小,目的是为了减少IO操作以及频繁上下文切换,因为多个cpu可以并行执行多个进程。 -
windiw命令操作:
启动: start nginx
停止: nginx -s stop
重启: nginx -s reload
查看配置文件是否修改正确: nginx -t -c /nginx-1.15.2/conf/nginx.conf -
Nginx是如何实现高并发的?
多进程模式,不仅能提高并发率
Nginx为一群服务器做代理,每次请求经过nginx转发给不同的服务器;具体的由负载均衡的策略决定,负载均衡策略:- 循环(默认)
- weight,值越大次数越多。
- ip_hash,同一ip访问同一服务器,解决了session共享问题。
- fair(第三方): 根据服务器的响应时间来进行分配。
-
什么是高可用:
可以理解为要保证服务永久都处于可以用的状态。 如配置两台nginx,一台备用。 -
用Nginx服务器解释-s的目的是什么?
执行可处理文件。 -
强制停止nginx:
taskkill /f /t /im nginx.exe
#虚拟主机的配置
server {
#监听端口
listen 80;
# 域名
server_name ky.233.com,localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
set $static_root_dir "../images/";
# 反向代理
location /uploadStream {
proxy_pass http://upload;
}
# 访问静态资源文件
location /file/ {
alias "E:\\java\\tools\\nginx-1.14.0\\images\\";
expires 7d;
}
# 解决跨域问题
location / {
# 服务器响应的时候会添加这么信息
add_header 'Access-Control-Allow-Origin' $http_origin;
add_header 'Access-Control-Allow-Credentials' 'true';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'DNT,web-token,app-token,Authorization,Accept,Origin,Keep-Alive,User-Agent,X-Mx-ReqToken,X-Data-Type,X-Auth-Token,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range';
# 解决预请求问题
if ($request_method = 'OPTIONS') {
add_header 'Access-Control-Max-Age' 1728000;
add_header 'Content-Type' 'text/plain; charset=utf-8';
add_header 'Content-Length' 0;
return 204;
}
root html;
# 需要请求的服务器地址
proxy_pass http://localhost:8082;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_connect_timeout 5;
}
}