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

《python运维脚本》: python运维脚本实践

《shell》:shell学习

《terraform》持续更新中:terraform_Aws学习零基础入门到最佳实战

《k8》暂未更新

《docker学习》暂未更新

《ceph学习》ceph日常问题解决分享

《日志收集》ELK+各种中间件

《运维日常》运维日常

《linux》运维面试100问

你对nginx做过哪些优化?

如何自定义返回给客户端的
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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值