环境

  centos 7

安装依赖包

yum install -y  gcc gcc-c++ glibc glibc-devel pcre pcre-devel zlib zlib-devel openssl openssl-devel \
unzip psmisc bash-completion libxml2 libxml2-devel libxslt libxslt-devel perl perl-ExtUtils-Embed

下载源码包

mkdir /usr/local/src
cd /usr/local/src
wget  http://nginx.org/download/nginx-1.20.1.tar.gz
tar -xf nginx-1.20.1.tar.gz

​下载nginx_upstream_check_module模块
yum install -y git
cd /usr/local/src/
git clone https://github.com/yaoweibin/nginx_upstream_check_module.git

定制版本信息

  版本号、服务器类型、错误页显示

cd /usr/local/src/nginx-1.20.1 

修改版本

  (本例修改为myweb)

 src/core/nginx.h 文件

  第13行#define NGINX_VERSION

  第14行#define NGINX_VER "nginx/"  NGINX_VERSION

sed -i '/define NGINX_VERSION/s/1.20.1/123/' src/core/nginx.h
sed -i '/^#define NGINX_VER.*NGINX_VERSION$/s/nginx/myweb/' src/core/nginx.h

修改HTTP 响应头

 src/http/ngx_http_header_filter_module.c 文件

   第49行 static u_char ngx_http_server_string[] = "Server: nginx" CRLF;

sed -i '/static u_char ngx_http_server_string/s/nginx/myweb/' src/http/ngx_http_header_filter_module.c

修改错误页底部提示

 src/http/ngx_http_special_response.c 文件

  第36行 static u_char ngx_http_error_tail[] =

"<hr><center>nginx</center>"  CRLF

sed -i '36s#nginx#myweb#' src/http/ngx_http_special_response.c

  

最终效果

添加nginx用户

useradd -r nginx -s /sbin/nologin

编译安装

./configure --prefix=/usr/local/nginx \
--user=nginx --group=nginx \
--pid-path=/usr/local/nginx/nginx.pid \
--with-http_ssl_module \
--with-http_realip_module \
--with-http_stub_status_module \
--with-http_gzip_static_module \
--with-http_gunzip_module \
--with-http_v2_module \
--with-pcre \
--with-threads \
--with-file-aio \--with-stream \
--with-stream_ssl_module \
--with-stream_realip_module \
--add-module=/usr/local/src/nginx_upstream_check_module

​make -j 4
make install

服务及开机自启

  开机启动

系统服务(systemctl)

  使用systemctl管理:systemctl  start | stop | reload | enable | disable nginx

/usr/lib/systemd/system/nginx.service 文件

[Unit]
Description=The nginx HTTP and reverse proxy server
After=network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target

[Service]
Type=forking
PIDFile=/usr/local/nginx/nginx.pid
# Nginx will fail to start if /run/nginx.pid already exists but has the wrong
# SELinux context. This might happen when running `nginx -t` from the cmdline.
# https://bugzilla.redhat.com/show_bug.cgi?id=1268621
ExecStartPre=/usr/bin/rm -f /run/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
KillSignal=SIGQUIT
TimeoutStopSec=5
KillMode=process
PrivateTmp=true

[Install]
WantedBy=multi-user.target

使用rc.local自启

  不便或不需写为服务脚本放置于/etc/rc.d/init.d/目录,且又想开机时自动运行的命令,可直接放置于/etc/rc.d/rc.local文件中

cat >>/etc/rc.d/rc.local<<EOF
/usr/local/nginx/sbin/nginx
EOF

  添加执行权限

chmod 755 /etc/rc.d/rc.local

环境变量

  使用二进制nginx管理,不用每次都写一长串的绝对路径   nginx  [-s  reload |  stop ]

方法1:PATH变量

cat >>/etc/profile.d/nginx.sh <<EOF
export PATH=/usr/local/nginx/sbin:$PATH
EOF

soure /etc/profile.d/nginx.sh

方法2:软链接

ln -s /usr/local/nginx/sbin/nginx /usr/bin

不显示版本号

主配置文件中添加

server_tokens off;

linux下nginx编译安装、版本信息修改的更多相关文章

  1. Linux下nginx编译安装教程和编译参数详解

    这篇文章主要介绍了Linux下nginx编译安装教程和编译参数详解,需要的朋友可以参考下 一.必要软件准备1.安装pcre 为了支持rewrite功能,我们需要安装pcre 复制代码代码如下: # y ...

  2. Linux 下Nginx编译安装

    Untitled .note-content {font-family: 'Helvetica Neue', Arial, 'Hiragino Sans GB', STHeiti, 'Microsof ...

  3. centOS linux 下nginx编译安装详解

    Nginx的官方网站是 www.nginx.org   Nginx的下载地址是:http://nginx.org/en/download.html   由 于官网的设计非常简洁不大气不上档次,所以我们 ...

  4. linux下nginx编译安装

    步骤: 1.获取nginx安装包. 进入nginx官网:http://nginx.org/ 找到稳定版本: 点击红框内的链接. 使用wget获取安装包. wget http://nginx.org/d ...

  5. Linux下Nginx的安装(二)

    一.安装Nginx ## 安装前准备 ## #GNU编译器集合 #Nginx编译需要PCRE #在Nginx的各种模块中需要使用gzip压缩 #在Nginx中,如果服务器提供安全网页时则会用到Open ...

  6. Nginx 1.9.7.2 + PHP 5.6.18(FastCGI)在CentOS Linux下的编译安装

    本文参考张宴的Nginx 0.8.x + PHP 5.2.13(FastCGI)搭建胜过Apache十倍的Web服务器(第6版)[原创]完成.所有操作命令都在CentOS 6.x 64位操作系统下实践 ...

  7. Linux下Nginx的安装、升级及动态添加模块

    系统基于ubuntu server 14.04.4 amd64 安装 第一步 下载并解压Nginx压缩包 从Nginx官网下载Nginx,或者在Linux上执行wget http://nginx.or ...

  8. linux下nginx的安装和配置

    准备目录 [root@sqh ~]# mkdir /usr/local/nginx [root@sqh ~]# cd /usr/local/nginx 添加一些支持和依赖 1.安装gcc 安装redi ...

  9. Linux下Nginx的安装与配置

    安装前需要安装pcre:ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/1.解压缩:     tar xjpf pcre-7.8.tar.b ...

随机推荐

  1. 前端下载文档的java工具类

    package com.ry.project.util.commUtil;import freemarker.template.Configuration;import freemarker.temp ...

  2. Bing每日壁纸的RESTful接口实现

    0x00 存在意义 权且当作Docker打包的练习. 显然可以通过构造请求获得每天的壁纸,但是如果想要优雅地在其它地方使用这一网络资源,封装一个RESTful API将会保证整洁美观,在编写CSS等场 ...

  3. roscore启动不完全问题

    运行roscore,得到如下日志,且一直卡着无法继续执行 ... logging to /home/xbit/.ros/log/79f2952c-589c-11ea-8213-d0abd5e7d222 ...

  4. Geode member发现机制

    Geode member发现机制 Apache Geode 为集群和客户端服务器间提供了多种member 发现机制,具体如下: Peer Member Discovery Standalone Mem ...

  5. python实现遥感图像阈值分割

    1.阈值分割 import os import cv2 import numpy as np import matplotlib.pyplot as plt from osgeo import gda ...

  6. 大数据最后一公里——2021年五大开源数据可视化BI方案对比

    个人非常喜欢这种说法,最后一公里不是说目标全部达成,而是把整个路程从头到尾走了一遍. 大数据在经过前几年的野蛮生长以后,开始与数据中台的概念一同向着更实际的方向落地.有人问,数据可视化是不是等同于数据 ...

  7. lua中的随机数

    Lua 生成随机数需要用到两个函数:math.randomseed(xx), math.random([n [, m]]) 1. math.randomseed(n) 接收一个整数 n 作为随机序列种 ...

  8. [第十八篇]——Docker 安装 Node.js之Spring Cloud大型企业分布式微服务云架构源码

    Docker 安装 Node.js Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,是一个让 JavaScript 运行在服务端的开发平台. 1.查看可用的 N ...

  9. C++课后习题

    一.设计一个类people,有保护数据成员:age(年龄,整型),name(姓名,string),行为成员:两个构造函数(一个默认,另一个带参数):析构函数:void setValue(int m, ...

  10. 怎样在Linux中查看apache是用那个httpd.conf

    第一步:找到apache启动命令: [root@WAPBJ01 ~]# ps -ef|grep httpdroot     10575     1  0 19:45 ?        00:00:03 ...