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安全
posted @ 2022-04-29 11:30  Jeff的技术栈  阅读(59)  评论(0编辑  收藏  举报
回顶部