您的位置:首页 > 运维架构 > Nginx

自用:nginx源码安装

2020-07-14 05:14 232 查看

环境:
1 准备一台干净的centos7服务器,或者虚拟机或者购买的VPS。Nginx是C开发的,建议在 Linux上运行,当然,也可以安装Windows 版本。

2 安装依赖,安装需要gcc环境,所以需要安装gcc;zlib是用来对http包的内容进行gzip压缩的;openssl则是支持https的SSL协议;pcre库是用来匹配正则的,rewrite规则需要它

yum install gcc-c++ pcre pcre-devel zlib zlib-devel
3.下载最新稳定版的nginx,目前稳定版是1.14.2。官网下载地址:http://nginx.org/en/download.html,下载后将安装包上传到CentOS中。

可以使用wget命令直接下载到CentOS系统中:

wget http://nginx.org/download/nginx-1.14.2.tar.gz

groupadd www

useradd -s /sbin/nologin -g www www

4 编译安装

进入下载的安装包目录,解压nginx,进入nginx解压后的目录,配置安装参数:

tar -zxvf nginx -1.14.2.tar.gz

cd nginx -1.14.2
./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_v2_module --with-http_gzip_static_module --with-http_sub_module

http_stub_status_module 作用:监控nginx运行状态

http_sub_module 作用:用于替换字符串

http_ssl_module 作用:支持https访问

http_gzip_static_module 作用:实现静态压缩功能,节约带宽

进行编译安装

make && make install

启动
/usr/local/nginx/sbin/nginx
平滑重启
/usr/local/nginx/sbin/nginx -s reload

优化

1 关于系统连接数的优化
linux 默认值 open files 和 max user processes 为 1024

说明 server 只允许同时打开 1024 个文件,处理 1024 个用户进程

#ulimit -n

1024

使用ulimit -a 可以查看当前系统的所有限制值,使用ulimit -n 可以查看当前的最大打开文件数。

新装的linux 默认只有1024 ,当作负载较大的服务器时,很容易遇到error: too many open files 。因此,需要将其改大。

解决方法:

-S 指soft ,-H 指hard

临时修改方法:

ulimit -SHn 65535

永久修改方法:
在/etc/security/limits.conf 最后增加:

  • soft nofile 65535
  • hard nofile 65535
  • soft nproc 65535
  • hard nproc 65535

备注:ulimit 命令本身就有分软硬设置,加-H 就是硬,加-S 就是软默认显示的是软限制

soft 限制不能设置的比 hard 限制更高。 只有 root 用户才能够增加 hard 限制值。

2 nginx全局配置优化 nginx.conf:
1 修改nginx运行的用户

user myname

2 nginx初始进程数量

worker_processes auto; #cpu核数

3 单进程处理最大请求连接数

worker_connections 65535;

4 IO模型

events {

worker_connections  65535; #每个工作进程允许的最大连接数

use epoll; #使用高性能的 epoll 事件驱动,处理效率高

IO多路复用是指多个描述符的I/O操作都能在一个线程内并发交替地顺序完成,

这里的“复用”指的是复用同一个线程;

Linux 中一切皆文件,比如 C++ 源文件、视频文件、Shell脚本、可执行文件等,就连键盘、显示器、鼠标等硬件设备也都是文件。

一个 Linux 进程可以打开成百上千个文件,为了表示和区分已经打开的文件,Linux 会给每个文件分配一个编号(一个 ID),这个编号就是一个整数,被称为文件描述符(File Descriptor)。

#什么是epoll 名词解释 http://www.mamicode.com/info-detail-2283798.html

}

5 长连接超时时长 :keepalive_timeout 65;

6 压缩: gzip on;

静态数据缓存过期时长

7 隐藏版本号

在http模块中添加

server_tokens off;

验证:curl -I http://127.0.0.1

8 拒绝访问敏感目录

拒绝访问 admin和config目录

location ~ ^/(admin|config)/ {

deny all;

}

9 允许客户端缓存所有图片数据360天

location ~ .(jpg|gif|png|jpeg)$ {

expires 360d;

}

10 使用ab命令进行测试

yum -y install httpd-tools

测试:ab -n 请求数 -c 并发数 http://172.18.47.92:8080/admin

并发数不能大于请求数

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: