Nginx面试总结1-11
目录
1. 什么是正向代理,什么是反向代理?
正向代理:代理客户端(浏览器)
反向代理:代理服务端(服务器)
2.Nginx 常用命令有哪些?
/usr/local/nginx/sbin目录下:
./nginx 启动
./nginx -s stop 快速停止
./nginx -s quit 优雅关闭,在退出前完成已经接受的连接请求
./nginx -s reload 重新加载配置,修改配置文件之后使用
3.Nginx如何开启压缩?
开启nginx gzip压缩后,图片、css、js等静态资源的大小会减小,可节省带宽,提高传输效率,但是会消耗CPU资源。
conf/nginx.conf配置文件
# 开启gzip
gzip off;
# 启用gzip压缩的最小文件,小于设置值的文件将不会压缩
gzip_min_length 1k;
# gzip 压缩级别,1-9,数字越大压缩的越好,也越占用CPU时间,后面会有详细说明
gzip_comp_level 1;
# 进行压缩的文件类型。javascript有多种形式。其中的值可以在 mime.types 文件中找到。
gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png application/vnd.ms-fontobject font/ttf font/opentype font/x-woff image/svg+xml;
4.Nginx 有哪些负载均衡策略?
upstream bakend {
ip_hash;
least_conn;
server 192.168.0.14:88 weight=7;
server 192.168.0.15:80 weight=3 down;
server 192.168.0.16:80 weight=3 backup;
}
1、round_robin:轮询(默认)
2、ip_hash:不常用,根据ip地址转发到同一台服务器,实现保持会话。
3、least_conn:最少连接访问,转发到最少连接到服务器
4、weight权重:配置权重,weight权重,比列:3:7
5、down:不参与负载均衡,(机器挂了),不建议使用down
6、backup:备用机器,当其他机器全部挂了之后就用backup备用机器
5.Nginx动静态资源分离做过吗,为什么要这样做?
#所有静态文件由nginx直接读取不经过tomcat或resin
总结:静态资源从负载均衡服务器直接获取
比如:图片,css,js等静态资源配置动静分离,可以减少服务器资源消耗
配置方式一:
location /images {
}
配置方式二:
#正则匹配location:
location ~ .*.(js|images|css)$ {
expires 15d; #缓存有效期
}
6.防盗链怎么配置?
#浏览器header中referer:来源网址,设置防盗链
#检测浏览器referer是否为www.jeff.com
valid_referers www.jeff.com; if
($invalid_referer) {
return 403;
}
7.站点-vhost虚拟主机配置-server?
server {
listen 80; #监听端口号,不同的虚拟主机端口号不一样
server_name www.jeff.com www.jeff2.com; #当前主机的主机名字,可以配置域名
# http://www.jeff.com/
location / {
root /data/movie; #绝对路径
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html; #服务器错误时,转到/50x.html
location = /50x.html {
root html; # 从html目录下找50x.html
}
}
8.server_name配置?
//1.完整匹配,域名可以有多个,用空格隔开
server_name www.jeff.com www.jeff2.com; //server_name可以配置多个域名
//2.通配符匹配
server_name *.jeff.com*
//3.正则匹配
server_name ~^[0-9]+\.jeff\.com$
9.负载均衡-proxy_pass配置?
方式一:
proxy_pass:域名/ip都可以
方式二:
proxy_pass http://别名
nginx.conf
http {
include mime.types; #引入另外的配置文件,mime.types类型文件
default_type application/octet-stream; #默认的类型
sendfile on; #数据零拷贝
keepalive_timeout 65; #保持链接超时时间
upstream httpds {
server 192.168.0.216:80 weight=3;
server 192.168.0.217:80 weight=7;
}
# 虚拟主机1(vhost)
server {
listen 80; #监听端口号,不同的虚拟主机端口号不一样
server_name www.jeff.com; #当前主机的主机名字,可以配置域名
# http://www.jeff.com/
location / {
proxy_pass http://httpds;
#root /data/movie; #绝对路径
#index index.html index.htm;
}
error_page 500 502 503 504 /50x.html; #服务器错误时,转到/50x.html
location = /50x.html {
root html; # 从html目录下找50x.html
}
}
}
10.nginx高可用keepalived配置?原理?
keepalived原理说明:一个虚拟ip绑定在nginx上,如果主nginx挂了,则ip换绑在其他nginx
https://www.cnblogs.com/guyouyin123/p/16191601.html#9nginx%E9%AB%98%E5%8F%AF%E7%94%A8keepalived%E9%85%8D%E7%BD%AE
11.nginx域名证书配置https?
第一步:阿里云申请域名,并绑定服务器
第二步:阿里云申请CA证书,并下载nginx的CA证书
第三步:下载的证书上传到nginx/conf目录下
第四步:nginx.conf添加一个server
nginx.conf
# 虚拟主机1(vhost)
server {
listen 443 ssl; #监听端口号,不同的虚拟主机端口号不一样
server_name loaclhost; #当前主机的主机名字,可以配置域名
ssl_certificate 123456_www.jeff.com.pem; #相对路径从conf目录中找
ssl_certificate_key 123456_www.jeff.com.key;
}
systemctl reload nginx //重新加载配置文件
再次访问时:http提示不安全,https安全
选择了IT,必定终身学习