环境:centos7 nginx1.16.1(源码安装)html
1、下载nginx源码包nginx
地址:http://nginx.org/en/download.htmlc++
Mainline version(主线版本)Stable version(稳定版本)Legacy versions(传统老版本)正则表达式
下载稳定版:nginx-1.16.1.tar.gz算法
2、安装相关依赖centos
gcc gcc-c++ zlib zlib-devel openssl openssl-devel pcre pcre-devel缓存
gcc,gcc-c++ #c,c++编译器,用来编译安装安全
zlib,zlib-devel #压缩和解压的函数库,网页文件压缩要用到它服务器
openssl,openssl-devel #网络通讯安全协议库,包含众多的密码算法、公钥基础设施标准以及SSL协议网络
3、安装Nginx
(1).解包
[root@izm5e8nyz28va3a786y465z src]# tar -zxvf nginx-1.16.1.tar.gz
(2).编译配置(进入到解压的文件夹)./configure --选项
./configure --prefix=/usr/local/nginx1.16.1 --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --pid-path=/var/run/nginx/nginx.pid --http-log-path=/var/log/nginx/access.log --http-client-body-temp-path=/var/tem/nginx/client --http-proxy-temp-path=/var/tem/nginx/proxy --http-fastcgi-temp-path=/var/tem/nginx/fcgi --with-http_ssl_module --with-http_flv_module --with-http_gzip_static_module --with-http_stub_status_module --with-pcre --with-openssl
1. 路径配置(不设置则为默认路径)
--prefix=/usr/local/nginx1.16.1 #nginx的安装路径,全部其它路径都要依赖该选项
--sbin-path=/usr/sbin/nginx #指定nginx二进制文件的路径,不指定则:/usr/local/nginx/sbin/nginx
--conf-path=/etc/nginx/nginx.conf #nginx配置文件路径,不指定则:/usr/local/nginx/conf/nginx.conf
--error-log-path=/var/log/nginx/error.log #nginx错误日志路径,不指定则:/usr/local/nginx/logs/error.log
--pid-path=/var/run/nginx/nginx.pid #pid文件路径,不指定则:/usr/local/nginx/logs/nginx.pid
--http-log-path=/var/log/nginx/access.log #http访问日志路径
--http-client-body-temp-path=/var/tem/nginx/client #存储客户端请求主主体的临时目录
--http-proxy-temp-path=/var/tem/nginx/proxy #存储代理服务器接收数据的临时文件
--http-fastcgi-temp-path=/var/tem/nginx/fcgi # 设置存储HTTP fastcgi的临时文件的路径
2.模块配置
--http_v2_module #用于支持http2协议
--with-http_ssl_module #用于支持https协议
--with-http_flv_module #视频直播模块
--with-http_gzip_module #是nginx默认编译的模块,对网页文件压缩
--with-http_gzip_static_module #加载gz静态缓存模块,开启后服务器优先返回gz文件
--with-http_stub_status_module #http服务状态模块
3. 其它功能启用
--with-pcre #开启正则表达式
--with-openssl #启用OpenSSL(安全套接字层密码库)启用后可支持https,ssl证书
3.用户,用户组配置
--user=www #nginx工做进程的用户名,默认:user nobody;
nobody 是系统用户,是一个不能登录的账号,一个特殊用途的用户 ID,uid<500通常都是系统ID
--group=www #nginx工做进程的用户组,默认:group nogroup
nginx 只有一个主进程和多个工做进程,主进程主要读取和评估配置文件正确性,以及管理工做进程
工做进程是真正的网络请求处理的进程
(3)编译
make
(4)安装
make install
小技巧:安装nginx后,怎么加入其它没有编译的模块(不重装nginx)
1.查看编译安装的配置信息:nginx -V
2.进入以前下载并解压了的源码包目录,从新编译nginx ,在原来配置参数后加上配置信息
./configure --prefix=xxx ..... 回车,再 make
3. 将新生成的nginx二进制文件替换掉原来的nginx二进制文件(中止nginx)
先备份原来的二进制文件:#防止失败
cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak #防止失败
替换掉原来的二进制文件:新生成的二进制文件 ./objs/nginx
cp ./objs/nginx /usr/local/nginx/sbin
4. 查看是否成功
启动nginx # nginx -V
4、nginx服务控制
1. 启动nginx
[root@izm5e8nyz28va3a786y465z tmp]# nginx
nginx: [emerg] mkdir() "/var/tem/nginx/client" failed (2: No such file or directory)
缘由:缺乏这个文件夹
建立:mkdir -p /var/tem/nginx/client
修改全部者:chown nobody /var/tem/nginx/client
以后,nginx能正常启动
2.