Nginx 进行性能配置

  总所周知,网络上我们购买的服务器的性能各不相同,如果采用 Nginx 的默认配置的话,无法将服务器的全部性能优势发挥出来,我们应该选择适合自己需求的配置。

当我们默认安装后 Nginx 后,我们便得到 Nginx 的默认配置 nginx.conf ,这个文件默认放在 /usr/local/nginx/conf 中,只需修改目录下的 nginx.conf 文件。

以我的云主机为例(低流量配置:2核 CPU,2GB RAM,请求 ~1s),没办法,作为学生党,我穷(/_\)。

实例文件如下:

user ubuntu ubuntu;     # 创建用户和用户组
worker_processes 2;        # 开启2个工作进程(2 核 CPU,至少应该为 CPU 的每一个核分配一个工作进程)
worker_priority 0;         # worker 进程会在一个适当的优先级启动。值的范围为 -20(优先级最高)~19(优先权最低),设置的值不应该低于-5,因为它是内核进程的默认优先级
error_log logs/error.log error;
log_not_found off;        #该指令指定 Nginx 是否记录404错误。推荐设置为 off,然而不要在 server级别将 log_not_found off 的值设置为 off。

events {
    multi_accept on;
    worker_connections 128;
}

http {
    include mime.types;
    default_type application/octet_stream;
    sendfile on;
    server {
        listen 80;
        server_name localhost;
        location / {
            root html;
            index index.html index.html
        }
        error_page 500 502 503 504 /50x.html;
        location = /50x.html{
            root html;
        }
    }
}

Nginx 的默认安装包中,有一个简单的测试页,在 html 目录中(/usr/local/nginx/html/index.html),我们可以通过访问该网页来测试我们的配置是否生效。

改完 nginx.conf 文件后,我们直接浏览器中访问服务器器 IP 地址,如果浏览器能正确输出下列界面,即证明我们的配置文件是有效的,否则重新检查配置文件,修改配置,直到能正确访问。

接下来我们可以来进行服务器性能测试,来评估服务器性能。

这里我使用的是 httperf 模块,Ubuntu 自带,没有的话通过下列指令安装。

sudo apt-get install httperf

这里我以重复下载我服务器中的 index.html 为例,每秒300次,总共请求30000次。

httperf --server your domain --port 80  --uri /index.html --rate 300 --num-conn 30000 --num-call 1 --timeout 5

输出如下:

我们可以在其中看到响应时间和成功请求的次数。当然我们是希望成功率为100%或响应时间为0ms 的,我们可以不断测试,增加请求,适当调整配置,使成功率接近 100% ,这时候我们的Nginx 配置就是比较完美的了。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏编程坑太多

『中级篇』Docker Cloud自动构建 Docker image(55)

PS:自动化构建的build image,是不是感觉很爽,但是这里的Dockfile这是需要基础牢靠。本节也是以后学习的基础。

18650
来自专栏架构师之路

TCP接入层的负载均衡、高可用、扩展性架构

一、web-server的负载均衡 ? 互联网架构中,web-server接入一般使用nginx来做反向代理,实施负载均衡。整个架构分三层: 上游调用层,一般是...

52560
来自专栏java达人

KAFKA分布式消息系统

Kafka[1]是linkedin用于日志处理的分布式消息队列,linkedin的日志数据容量大,但对可靠性要求不高,其日志数据主要包括用户行为(登录、浏览、点...

35060
来自专栏企鹅号快讯

你真的需要消息队列吗

我是一个极简主义者,我不喜欢让软件过早或不必要地复杂化。向软件系统添加组件是增加复杂性的一种方法。让我们以消息团队为例。 消息队列是一个系统,使您能够获得容错、...

22050
来自专栏Java架构沉思录

Zookeeper总览

ZooKeeper是一款开源的 分布式应用 的 分布式协调服务 。它包含一个简单的 原语集 ,分布式应用程序可以基于它实现同步服务,配置维护和命名服务等。Zoo...

19410
来自专栏网站漏洞修补

MetInfo最新网站漏洞如何修复以及网站安全防护

metinfo漏洞于2018年10月20号被爆出存在sql注入漏洞,可以直接拿到网站管理员的权限,网站漏洞影响范围较广,包括目前最新的metinfo版本都会受到...

19420
来自专栏后端技术探索

让nginx更安全的几点注意事项

Nginx是当今最流行的Web服务器之一。它为世界上7%的web流量提供服务而且正在以惊人的速度增长。它是个让人惊奇的服务器,我愿意部署它。 下面是一个常见安全...

10120
来自专栏网站漏洞修补

MetInfo漏洞如何修复以及网站安全防护

metinfo漏洞于2018年10月20号被爆出存在sql注入漏洞,可以直接拿到网站管理员的权限,网站漏洞影响范围较广,包括目前最新的metinfo版本都会受到...

19040
来自专栏企鹅号快讯

g4e基础篇#4 了解Git存储库

Git 存储库看上去就是一个文件夹,只是在这个文件夹中不仅仅保存了所有文件的当前版本,也同时保存了所有的历史记录,这些额外的信息都保存在当前文件夹下面的.git...

24660
来自专栏信安之路

轻松理解 X-XSS-Protection

首先我们来理解一下什么是“X-XSS-Protection”,从字面意思上看,就是浏览器内置的一种 XSS 防范措施。

15200

扫码关注云+社区

领取腾讯云代金券