自用:nginx源码安装
环境:
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
并发数不能大于请求数
- Nginx1.2.11源码安装——支持http2.0
- nginx服务器详细安装过程(使用yum 和 源码包两种安装方式,并说明其区别)
- Nginx源码编译安装与负载均衡配置实践
- Nginx源码安装及调优配置
- Linux 源码安装nginx
- Nginx源码安装(一个可以做反向代理的web服务器)
- ubuntu环境下nginx源码编译安装
- Nginx源码安装及调优配置
- 源码安装nginx以及平滑升级
- nginx 源码安装
- nginx-1.13.x源码安装
- linix下的nginx源码安装
- Centos 7 Nginx+Keepalived+Tomcat 源码安装与运用
- Nginx的yum安装以及源码安装
- CentOS7.2 源码安装Nginx 1.10.2
- Linux下nginx源码包全模块支持安装笔记
- [Nginx]使用源码编译安装Nginx服务器
- Nginx-----源码安装nginx
- centos7.2源码安装nginx
- Nginx简介与源码编译安装