nginx高性能web服务器安装配置优化

2018-03-19  本文已影响0人  午觉不眠Orz

1、nginx服务安装,卸载,和配置

1. 安装两种方式
方法一:yum安装,需要提前配置nginx安装源
参考官方内容:[配置nginx的yum源](http://nginx.org/en/linux_packages.html#stable)
然后执行安装命令:
yum install nginx
卸载命令:
yum remove nginx
使用命令:
service nginx start/restart/stop/status  #启动,重启,关闭,查看状态
或者
/usr/sbin/nginx -h  #查看帮助命令
/usr/sbin/nginx -c /etc/nginx/nginx.conf  # 一般启动
/usr/sbin/nginx -s stop/reopen/reload/quit  # 停止,重开日志文件,重载配置文件,停止服务

源代码编译可以参考官网文档:官方资料

方式二:源代码编译,安装,好处是可以自行添加插件与模块,或是二次开发
wget   http://nginx.org/download/nginx-1.12.2.tar.gz # 从官网获取稳定版地址下载文件
tar zxvf nginx-1.12.2.tar.gz
cd nginx-1.12.2
# 先安装gcc-c++
yum install gcc gcc-c++
# 安装pcre
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.41.tar.gz 
tar -zxvf pcre-8.41.tar.gz
cd pcre-8.41
./configure  --prefix=/opt/libs/pcre
make
make install
# 安装zlib
wget http://zlib.net/zlib-1.2.11.tar.gz
tar -zxvf zlib-1.2.11.tar.gz
cd zlib-1.2.11
./configure
make  --prefix=/opt/libs/zlib
make install
# 安装openssl
wget https://www.openssl.org/source/openssl-1.1.0g.tar.gz.configure  
tar -zxvf openssl-1.1.0g.tar.gz
cd  openssl-1.1.0g
./config   # 不知道为什么,不能指定prefix地点
make
make install
# 安装nginx
wget http://nginx.org/download/nginx-1.12.2.tar.gz
tar -zxvf nginx-1.12.2.tar.gz
cd nginx-1.12.2
./configure  --prefix=/usr/local/nginx \
--with-http_ssl_module   # 增加ssl协议,https功能的支持
--with-pcre=../pcre-8.41   # 结果最后只能通过下载的源代码 make编译后结果安装
--with-zlib=../zlib-1.2.11  # 结果最后只能通过下载的源代码 make编译后结果安装
--with-openssl=../openssl # 结果最后只能通过下载的源代码 make编译后结果安装

make
make install
2. 重要文件
配置文件:一般/etc/nginx/nginx.conf
日志文件:一般位于/var/log/nginx目录下

2、nginx的平滑升级

1). nginx -V   # 查看nginx安装的时候的编译选项
2). 重新按照生产要求,./configure 和 make (注意不要make install)
3). 备份旧文档
cd /usr/local/nginx/sbin/
cp nginx nginx.old 
4). 替换Nginx可执行文件
cp /编译目录下的/nginx  /usr/local/nginx/sbin/
5). 检查是否成功
./nginx -t
6). 平滑关闭旧版本,启用新版本
kill -USR2 `cat /application/nginx/logs/nginx.pid`
kill -QUIT `cat /application/nginx/logs/nginx.pid.oldbin`

3. nginx配置优化常见优化项

基本上做好以下10项内容的设置,就能提供一个高性能的nginx服务器。
1)workprocess,cpu

worker_processes 8;
worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000  00100000 01000000 10000000;

2)event事件模型选择epoll模型
3)work_connections连接数设置

events{
use epoll;
worker_connections  102400; # 单个进程的最大连接数
multi_accept on;
}

4)每个进程的最大文件打开数

worker_rlimit_nofile 65535;  # 一般等于ulimit -n系统值

5)keepalive timeout会话保持时间

keepalive_timeout  60;

6)GZIP压缩级别

gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.1;
gzip_comp_level 4-6; # 一般选择4-6,为了性能
gzip_types  text/plain  application/x-javascript text/css applications/xml
gzip_vary on;

7)proxy超时设置

proxy_connect_timeout 90;
proxy_send_timeout  90;
proxy_read_timeout  4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k

8)expires 3d:# 如果静态页面不经常更新,可以将缓存时间设长,减少服务器压力

expires 3d;

9)动静页面分离


image.png

10)nginx cache优化设置

上一篇下一篇

猜你喜欢

热点阅读