【运维面试100问】(十二)你对nginx做过哪些优化?(1)

如何自定义返回给客户端的
404
错误页面

如何查看服务器状态信息

如果客户端访问服务器提示
“Too many open files”
如何解决

如何解决客户端访问头部信息过长的问题

如何让客户端浏览器缓存数据

客户机访问此
Web
服务器验证效果:

使用
ab
压力测试软件测试并发量

编写测试脚本生成长头部信息的访问请求

优化操作:

1.1 优化错误页面
error_page 404 /404.html; //自定义错误页面 ---
vim /usr/local/nginx/html/404.html //生成错误页面 ---自定义
1.2 优化并发量
> --with-http_stub_status_module //开启status状态页面 --加模块
[root@proxy ~]# cat /usr/local/nginx/conf/nginx.conf
… …
location /status {
stub_status on;
[root@proxy ~]# vim /usr/local/nginx/conf/nginx.conf
.. ..
worker_processes 2; //与CPU核心数量一致
events {
worker_connections 65535; //每个worker最大并发连接数
[root@proxy ~]# ulimit -a //查看所有属性值
[root@proxy ~]# ulimit -Hn 100000 //设置硬限制(临时规则)
[root@proxy ~]# ulimit -Sn 100000 //设置软限制(临时规则)
[root@proxy ~]# vim /etc/security/limits.conf
.. ..
soft nofile 100000
hard nofile 100000
#该配置文件分4列,分别如下:
#用户或组 硬限制或软限制 需要限制的项目 限制的值
[root@proxy ~]# ab -n 2000 -c 2000

1.3 优化数据包头缓存
[root@proxy ~]# vim /usr/local/nginx/conf/nginx.conf
.. ..
http {
client_header_buffer_size 1k; //默认请求包头信息的缓存
large_client_header_buffers 4 4k; //大请求包头部信息的缓存个数与容量
----解决URL过长的问题

1.4 优化关于定义对静态页面的缓存时间
location ~* .(jpg|jpeg|gif|png|css|js|ico|xml)$ {
expires 30d; //定义客户端缓存时间为30天
在firefox地址栏内输入about:cache,查看本地缓存数据,查看是否有图片以及过期时间是否正确。
其他的可能会不同,查看本地缓存数据的地址。

1.5 安全优化
一般情况下,我们在编译安装的时候会创建指定nginx来运行程序,但是nginx启动后它的master进程还是root,
为了安全起见,我们要修改它的主进程,改为普通用户。

注意:普通进程就使用普通用户管理就可以,不要任何程序都使用root,一但出问题,很难搞!
检查:ps -ef
1、先创建一个普通用户;
useradd nginx-soft
2、要想使用普通用户运行nginx 必须要将端口80更改,大于1024,此处使用8000;
listen 8000;
index路径修改;
日志文件路径修改;
端口可以使用sudo或者 nat 转换解决;
3、将/home/nginx-soft目录下的logs/conf/html/赋权给nginx-soft这一普通用户;
chown -R nginx-soft *
检查:drwxr-xr-x. 2 nginx-soft root 4096 Sep 11 13:23 conf drwxr-xr-x. 2 nginx-soft root 4096 Sep 11 13:23
html drwxr-xr-x. 2 nginx-soft root 4096 Sep 11 13:30 logs
4、使用root用户指定nginx的配置文件:
../nginx/sbin/nginx -s stop
../nginx/sbin/nginx -c /home/nginx-soft/conf/nginx.conf
5、切换至普通用户的宿主目录下;
将nginx主程序下的配置文件conf、html、logs文件拷贝到普通用户的加目录下;
cp -ap ../nginx1.6.2/conf/ . 
cp -ap ../nginx1.6.2/html/ . 
cp -ap ../nginx1.6.2/logs/ .
#此处注意html、logs、端口文件的配置
6、 切换到nginx-soft普通用户下启动nginx
ps -ef|grep nginx


最后提一下nginx的调度策略:

负载均衡调度算法

LVS
目前实现了
10
种调度算法

常用的调度算法有
4

轮询
(rr);
将客户端请求平均分发到
Real Server

加权轮询
(wrr):
根据
Real Server
权重值进行轮询调度
(-w
后面加的
)

(-w
后面加的数
)

最少连接
(lc):
选择连接数最少的服务器

加权最少连接
(wlc):

为了做好运维面试路上的助攻手,特整理了上百道 【运维技术栈面试题集锦】 ,让你面试不慌心不跳,高薪offer怀里抱!

这次整理的面试题,小到shell、MySQL,大到K8s等云原生技术栈,不仅适合运维新人入行面试需要,还适用于想提升进阶跳槽加薪的运维朋友。

本份面试集锦涵盖了

  • 174 道运维工程师面试题
  • 128道k8s面试题
  • 108道shell脚本面试题
  • 200道Linux面试题
  • 51道docker面试题
  • 35道Jenkis面试题
  • 78道MongoDB面试题
  • 17道ansible面试题
  • 60道dubbo面试题
  • 53道kafka面试
  • 18道mysql面试题
  • 40道nginx面试题
  • 77道redis面试题
  • 28道zookeeper

总计 1000+ 道面试题, 内容 又全含金量又高

  • 174道运维工程师面试题

1、什么是运维?

2、在工作中,运维人员经常需要跟运营人员打交道,请问运营人员是做什么工作的?

3、现在给你三百台服务器,你怎么对他们进行管理?

4、简述raid0 raid1raid5二种工作模式的工作原理及特点

5、LVS、Nginx、HAproxy有什么区别?工作中你怎么选择?

6、Squid、Varinsh和Nginx有什么区别,工作中你怎么选择?

7、Tomcat和Resin有什么区别,工作中你怎么选择?

8、什么是中间件?什么是jdk?

9、讲述一下Tomcat8005、8009、8080三个端口的含义?

10、什么叫CDN?

11、什么叫网站灰度发布?

12、简述DNS进行域名解析的过程?

13、RabbitMQ是什么东西?

14、讲一下Keepalived的工作原理?

15、讲述一下LVS三种模式的工作过程?

16、mysql的innodb如何定位锁问题,mysql如何减少主从复制延迟?

9、讲述一下Tomcat8005、8009、8080三个端口的含义?

10、什么叫CDN?

11、什么叫网站灰度发布?

12、简述DNS进行域名解析的过程?

13、RabbitMQ是什么东西?

14、讲一下Keepalived的工作原理?

15、讲述一下LVS三种模式的工作过程?

16、mysql的innodb如何定位锁问题,mysql如何减少主从复制延迟?

17、如何重置mysql root密码?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值