【运维面试100问】(十二)你对nginx做过哪些优化?
2023-12-21 19:26:33
??本站以分享各种运维经验和运维所需要的技能为主
《python零基础入门》:python零基础入门学习
《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
种
1.
轮询
(rr);
将客户端请求平均分发到
Real Server
2.
加权轮询
(wrr):
根据
Real Server
权重值进行轮询调度
(-w
后面加的
)
(-w
后面加的数
)
3.
最少连接
(lc):
选择连接数最少的服务器
4.
加权最少连接
(wlc):
根据
Real Server
权重值
,
选择连接数最少的服务器
5.
源地址散列
(SH):
6.
目标地址散列
(DH):
根据不同需求做不同的方案。
文章来源:https://blog.csdn.net/zerotoall/article/details/135136324
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!