比如启用四层stream 转发的时候 或者加点监控等其他插件 , rmp 就不合适了,需要编译安装
1.官网获取rpm安装包
创建目录 /usr/local/nginx,将rpm包下载到该目录下
mdkir /usr/local/nginx
wget https://nginx.org/packages/centos/7/x86_64/RPMS/nginx-1.24.0-1.el7.ngx.x86_64.rpm
其他版本:
https://nginx.org/packages/centos/7/x86_64/RPMS/
2-安装:
rpm -ivh nginx-1.24.0-1.el7.ngx.x86_64.rp
使用rmp安装,默认启用了所有nginx模块,如下
configure arguments: --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib64/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-compat --with-file-aio --with-threads --with-http_addition_module --with-http_auth_request_module --with-http_dav_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_mp4_module --with-http_random_index_module --with-http_realip_module --with-http_secure_link_module --with-http_slice_module --with-http_ssl_module --with-http_stub_status_module --with-http_sub_module --with-http_v2_module --with-mail --with-mail_ssl_module --with-stream --with-stream_realip_module --with-stream_ssl_module --with-stream_ssl_preread_module --with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -fPIC' --with-ld-opt='-Wl,-z,relro -Wl,-z,now -pie'
4.查看nginx安装目录
[root@localhost ~]# find / -name nginx
/etc/logrotate.d/nginx
/etc/nginx #主目录及配置文件
/var/log/nginx #日志
/var/cache/nginx #缓存
/usr/sbin/nginx #主程序
/usr/lib64/nginx #组件模块
/usr/share/nginx #html主页
特别关注:以上目录其实在安装程序时指定,可以通过查看nginx版本命令确认安装时指定的参数,包括各项目录以及常用模块,如stream
rpm安装默认生成系统服务文件,可以通过 service 或 systemctl 命令操作
find / -name nginx.service
/usr/lib/systemd/system/nginx.service
三、主程序加入到环境变量
rpm安装默认已经将主程序添加到系统变量
ll /usr/sbin/nginx
四、配置文件
配置文件存放在 /etc/nginx/nginx.conf,启动时默认加载该路径,也可以在启动时指定配置文件,配置文件结构如下,分为3个部分:全局块、events块、http块
配置文件说明
1.全局块
从配置文件开始到 events 块之间的内容,主要会设置一些影响 nginx 服务器整体运行的配置指令,主要包括配置运行 Nginx 服务器的用户(组)、允许生成的 worker process 数,进程 PID 存放路径、日志存放路径和类型以及配置文件的引入等
#定义Nginx运行的用户和用户组
user nginx nginx;
#nginx进程数,建议设置为等于CPU总核心数
worker_processes 8;
#全局错误日志定义类型,[ debug | info | notice | warn | error | crit ]
error_log /var/log/nginx/error.log info;
#进程文件
pid /var/run/nginx.pid;
#nginxworker最大打开文件数,可设置为系统优化后的ulimit -n的结果
worker_rlimit_nofile 65535;
2.events块
events
{
#epoll模型是Linux 2.6以上内核版本中的高性能网络I/O模型,如果跑在FreeBSD上面,就用kqueue模型
use epoll;
#单个worker进程最大连接数(nginx最大连接数=worker连接数*进程数)
worker_connections 65535;
}
3.http块
这部分应该是 Nginx 服务器配置中最频繁的部分;代理、缓存和日志定义等绝大多数功能和第三方模块的配置都在这里。
http块分为:http全局块、server块。
http
{
#nginx支持的媒体类型库文件
include mime.types;
#默认媒体文件类型
default_type application/octet-stream;
#默认编码
charset utf-8;
#服务器名字的hash表大小
server_names_hash_bucket_size 128;
#上传文件大小限制
client_header_buffer_size 32k;
#开启高效文件传输模式,实现内核零拷贝
sendfile on;
#开启目录列表访问,适合下载服务器,默认关闭。
autoindex off;
#长连接超时时间,单位是秒
keepalive_timeout 120;
}
3.2http server块的配置,即虚拟主机的配置
server #网站配置区域
{
#默认监听80端口
listen 80;
#提供服务的域名主机名
server_name www.sample.com;
location / {
#站点根目录(这里html是相对路径,默认网站根目录为:/usr/local/nginx/html)
root html;
#默认首页文件,多个用空格分开
index index.thml index.htm;
}
#出现对应http状态码时,使用50x.html回应客户
error_page 500 502 503 504 /50x.html;
location = /50x.thml {
#指定对应目录
root html;
}
}