Nginx的安装配置及性能调优

558 阅读3分钟

一、必要软件依赖

1、安装pcre

为了支持rewrite功能,我们需要安装pcre 如过你已经装了,请跳过这一步

yum install pcre*

2、安装openssl 需要ssl的支持,如果不需要ssl支持,请跳过这一步

yum install openssl*

二、安装:

执行命令:

./configure --prefix=/usr/local/nginx-1.5.1 \ --with-http_ssl_module --with-http_spdy_module \ --with-http_stub_status_module --with-pcre

命令说明: --with-http_stub_status_module:支持nginx状态查询

--with-http_ssl_module:支持https

--with-http_spdy_module:支持google的spdy,这个必须有ssl的支持

--with-pcre:为了支持rewrite重写功能,必须制定pcre

最后输出如下内容,表示configure OK了

三、配置:

Nginx 的配置文件

nginx.conf
        server {
        listen 80;	---指定端口
        server_name localhost;

        ssl on;	---启用域名:指定证书和KEY
        ssl_certificate /opt/ngx_openresty/nginx/nginx/conf/server.crt;
        ssl_certificate_key /opt/ngx_openresty/nginx/nginx/conf/server.key;

四、启动、关闭、重置Nginx

1、启动:直接执行以下命令,nginx就启动了,不需要改任何配置文件, 执行命令:

/usr/local/nginx-1.5.1/sbin/nginx

2、关闭:

/usr/local/nginx-1.5.1/sbin/nginx -s stop

3、重置:当有修改配置文件的时候,只需要reload以下即可 /usr/local/nginx-1.5.1/sbin/nginx -s reload

4、查看Nginx进程

$ps -ef|grep nginx|grep -v grep
nginx 5097     1  0  2017 ?        00:00:00 nginx: master process /opt/ngx_openresty/nginx/nginx/sbin/nginx
nginx 5098  5097  6  2017 ?        5-18:33:21 nginx: worker process                    
nginx 5099  5097  6  2017 ?        5-19:13:03 nginx: worker process                    
nginx 5100  5097  6  2017 ?        5-18:44:23 nginx: worker process                    
nginx 5101  5097  6  2017 ?        5-18:59:18 nginx: worker process
注:Nginx有Master和worker进程

Master为管理进程负责调度和管理worker,worker属于服务进程

5、nginx参数:

--prefix= 指向安装目录
--sbin-path 指向(执行)程序文件(nginx)
--conf-path= 指向配置文件(nginx.conf)
--error-log-path= 指向错误日志目录
--pid-path= 指向pid文件(nginx.pid)
--user= 指定程序运行时的非特权用户
--group= 指定程序运行时的非特权用户组
--builddir= 指向编译目录

五、配置调优技巧

1、优化Nginx进程数

$ grep  worker_processes  nginx.conf
nginx.conf:worker_processes  4;
这里调整的是worker进程数量

优化Nginx的进程数策略,
正常考虑可以等于CPU核数,高流量高并发可以考虑乘以CPU核数的倍数 CPU核数 * N
查看web服务器CPU资源命令:
#grep processor /proc/cpuinfo|wc -l
4  	---表示1颗CPU 4核

2、Nginx事件处理模型优化

连接机制
events 设定Nginx的工作模式和连接数上限
通过use epoll;指定工作模式

Nginx的工作模式:select  poll  kqueue  epoll  rtsig  /dev/poll
select  poll 标准工作模式
kqueue  epoll 高效工作模式: epoll用户linux平台  kqueue用于BSD系统

3、修改启动用户

1、Nginx默认启动后,默认使用用户是nobody
grep user nginx.conf
user  nobody;
2、为nginx服务建立新用户
useradd nginx –s /sbin/nologin –M
/sbin/nologin –M 这里是配置禁止登陆,为可选项, 
3、配置nginx服务,让其使用刚刚建立的nginx用户,这里有2种方法

方法1、修改配置文件nginx.conf
将默认#user  nobody; 修改为 user nginx nginx

方法2、编译Nginx软件时,直接指定编译的用户和组,命令如下:
./configure --user=nginx --group=nginx --prefix=/application/nginx1.6.3 --with-http_stub_status_module --with-http_ssl-module
检查修改后的结果
ps -ef|grep nginx|grep -v grep
nginx 5097     1  0  2017 ?        00:00:00 nginx: master process /opt/ngx_openresty/nginx/nginx/sbin/nginx
nginx 5098  5097  6  2017 ?        5-18:33:21 nginx: worker process                    
nginx 5099  5097  6  2017 ?        5-19:13:03 nginx: worker process                    
nginx 5100  5097  6  2017 ?        5-18:44:23 nginx: worker process                    
nginx 5101  5097  6  2017 ?        5-18:59:18 nginx: worker process

4、隐藏标签页

可以再http标签中增加”server_tokens off;” 
参数实现隐藏Nginx的标签页;
修改标签页,需要通过 nginx –s reload命令加载配置文件。

5、Nginx总并发连接

调整Nginx单个进程允许最大连接数:默认1024
events
{
	worker_connections 4096
}

Nginx的总并发连接数= worker数量 * worker_connections
连接数包括所有连接,代理服务器连接,客户端连接,
并发连接数还与最大打开文件数有关worker_rlimit_nofile