前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >安装编译nginx

安装编译nginx

作者头像
老高的技术博客
发布于 2022-12-27 13:41:42
发布于 2022-12-27 13:41:42
63500
代码可运行
举报
运行总次数:0
代码可运行

今天老高更新了一下nginx,顺便把nginx的安装编译过程记录一下,分享给大家!

一并送上之前老高的博文:

将nginx配置为服务

nginx配置详解

下载

官网下载地址:http://nginx.org/en/download.html

准备

安装nginx时必须先安装相应的编译工具

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
yum -y install gcc gcc-c++ autoconf automake
yum -y install zlib zlib-devel openssl openssl-devel pcre-devel

centos没有安装make编译器

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
yum -y install gcc automake autoconf libtool make

建立nginx 组

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
groupadd -r nginx
useradd -s /sbin/nologin -g nginx -r nginx

注释:

zlib:nginx提供gzip模块,需要zlib库支持

openssl:nginx提供ssl功能

pcre:支持地址重写rewrite功能

修改版本号

再编译之前修改默认的版本号是个不错的习惯

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
vim src/core/nginx.h

#define NGINX_VERSION      "0.0.0"
#define NGINX_VER          "phpergao" NGINX_VERSION

编译

高大上的编译参数

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
./configure \
--prefix=/usr \
--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 \
--user=nginx \
--group=nginx \
--with-http_ssl_module \
--with-http_flv_module \
--with-http_gzip_static_module \
--http-log-path=/var/log/nginx/access.log \
--http-client-body-temp-path=/var/tmp/nginx/client \
--http-proxy-temp-path=/var/tmp/nginx/proxy \
--http-fastcgi-temp-path=/var/tmp/nginx/fcgi \
--with-http_stub_status_module \
--with-http_sub_module \
--with-http_spdy_module

安装

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
make && make install

添加服务

以下是service的脚本。

注:脚本中部分变量值可能需要修改以找到对应的文件,如果出现文件夹找不到的错误,请使用mkdir -p创建对应路径

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 先执行 vim /etc/init.d/nginx
# 再copy以下脚本

#!/bin/sh
#
# nginx        Startup script for nginx
#
# chkconfig: - 85 15
# processname: nginx
# config: /etc/nginx/nginx.conf
# config: /etc/sysconfig/nginx
# pidfile: /var/run/nginx.pid
# description: nginx is an HTTP and reverse proxy server
#
### BEGIN INIT INFO
# Provides: nginx
# Required-Start: $local_fs $remote_fs $network
# Required-Stop: $local_fs $remote_fs $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: start and stop nginx
### END INIT INFO

# Source function library.
. /etc/rc.d/init.d/functions

if [ -L $0 ]; then
    initscript=`/bin/readlink -f $0`
else
    initscript=$0
fi

sysconfig=`/bin/basename $initscript`

if [ -f /etc/sysconfig/$sysconfig ]; then
    . /etc/sysconfig/$sysconfig
fi

nginx=${NGINX-/usr/sbin/nginx}
prog=`/bin/basename $nginx`
conffile=${CONFFILE-/etc/nginx/nginx.conf}
lockfile=${LOCKFILE-/var/lock/subsys/nginx}
pidfile=${PIDFILE-/var/run/nginx.pid}
SLEEPMSEC=${SLEEPMSEC-200000}
UPGRADEWAITLOOPS=${UPGRADEWAITLOOPS-5}
RETVAL=0

start() {
    echo -n $"Starting $prog: "

    daemon --pidfile=${pidfile} ${nginx} -c ${conffile}
    RETVAL=$?
    echo
    [ $RETVAL = 0 ] && touch ${lockfile}
    return $RETVAL
}

stop() {
    echo -n $"Stopping $prog: "
    killproc -p ${pidfile} ${prog}
    RETVAL=$?
    echo
    [ $RETVAL = 0 ] && rm -f ${lockfile} ${pidfile}
}

reload() {
    echo -n $"Reloading $prog: "
    killproc -p ${pidfile} ${prog} -HUP
    RETVAL=$?
    echo
}

upgrade() {
    oldbinpidfile=${pidfile}.oldbin

    configtest -q || return
    echo -n $"Starting new master $prog: "
    killproc -p ${pidfile} ${prog} -USR2
    echo

    for i in `/usr/bin/seq $UPGRADEWAITLOOPS`; do
        /bin/usleep $SLEEPMSEC
        if [ -f ${oldbinpidfile} -a -f ${pidfile} ]; then
            echo -n $"Graceful shutdown of old $prog: "
            killproc -p ${oldbinpidfile} ${prog} -QUIT
            RETVAL=$?
            echo
            return
        fi
    done

    echo $"Upgrade failed!"
    RETVAL=1
}

configtest() {
    if [ "$#" -ne 0 ] ; then
        case "$1" in
            -q)
                FLAG=$1
                ;;
            *)
                ;;
        esac
        shift
    fi
    ${nginx} -t -c ${conffile} $FLAG
    RETVAL=$?
    return $RETVAL
}

rh_status() {
    status -p ${pidfile} ${nginx}
}

# See how we were called.
case "$1" in
    start)
        rh_status >/dev/null 2>&1 && exit 0
        start
        ;;
    stop)
        stop
        ;;
    status)
        rh_status
        RETVAL=$?
        ;;
    restart)
        configtest -q || exit $RETVAL
        stop
        start
        ;;
    upgrade)
        rh_status >/dev/null 2>&1 || exit 0
        upgrade
        ;;
    condrestart|try-restart)
        if rh_status >/dev/null 2>&1; then
            stop
            start
        fi
        ;;
    force-reload|reload)
        reload
        ;;
    configtest)
        configtest
        ;;
    *)
        echo $"Usage: $prog {start|stop|restart|condrestart|try-restart|force-reload|upgrade|reload|status|help|configtest}"
        RETVAL=2
esac

exit $RETVAL
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mkdir -p /var/tmp/nginx/client
chmod 755 /etc/init.d/nginx
chkconfig --add nginx

使用

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 重启nginx
service nginx restart

现在访问你的IP或者域名就可以访问了!

参考链接:

http://blog.sina.com.cn/s/blog_6f2274fb01012nq5.html

http://www.cnblogs.com/suihui/archive/2013/04/13/3018557.html

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2014-12-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【趣学程序】Linux安装Tengine
安装:yum install gcc openssl-devel pcre-devel zlib-devel-y
趣学程序-shaofeer
2019/08/20
1.5K0
一文读懂国产麒麟V10-arm编译安装nginx-1.20.1
Nginx 可以在大多数 Unix Linux OS 上编译运行,并有 Windows 移植版。 Nginx 的1.20.0稳定版已经于2021年4月20日发布,一般情况下,对于新建站点,建议使用最新稳定版作为生产版本,已有站点的升级急迫性不高。Nginx 的源代码使用 2-clause BSD-like license。
QGS
2023/12/10
7K0
Nginx篇--Nginx源码搭建
1.依赖 gcc openssl-devel pcre-devel zlib-devel     安装:yum install gcc openssl-devel pcre-devel zlib-devel -y 2. 安装Nginx ./configure 3. make && make install 默认安装目录: /usr/local/nginx 4.配置Nginx为系统服务,以方便管理 1、在/etc/rc.d/init.d/目录中建立文本文件nginx   2、在文件中粘贴下面的内容:
LhWorld哥陪你聊算法
2018/09/13
9260
Nginx开机自启动脚本
#!/bin/sh # # nginx - this script starts and stops the nginx daemon # # chkconfig: - 85 15 # description: NGINX is an HTTP(S) server, HTTP(S) reverse \ # proxy and IMAP/POP3 proxy server # processname: nginx # config: /etc/nginx/nginx
Action
2021/08/20
1.4K0
如何测试Nginx的高性能
Nginx ("engine x") 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器;
TestOps
2022/04/04
5330
如何测试Nginx的高性能
Nginx 和 Apache 安装[通俗易懂]
※ 报错 rm: cannot remove 'libtoolT': No such file or directory
全栈程序员站长
2022/09/01
1.1K0
CentOS 7 源码编译安装 Nginx
https://www.cnblogs.com/visec479/p/5145624.html
晓晨
2018/08/02
9620
将nginx设置为系统service==》service nginx start 命令可用
源码编译的一个缺陷是没法将安装好的应用设置为系统的service, 即无法使用 service 服务名 start | stop | restart 等命令统一操作。
青山师
2023/05/05
9990
将nginx设置为系统service==》service nginx start 命令可用
Centos7 编译安装Nginx
注:本文转自译:Centos7 编译安装Nginx 教程,如需转载请注明出处,https://www.cnblogs.com/zhuchenglin/p/11773815.html。
lin_zone
2019/11/01
5940
MogileFS基于Nginx反向代理实现分布式存储与访问
前言 随着信息社会的发展,越来越多的信息被数据化,尤其是伴随着大数据时代的来临,数据呈爆炸式增长。传统存储在面对海量数据存储表现出的力不从心已经是不争的事实,例如:纵向扩展受阵列空间限制,横向扩展受交换设备限制,节点受文件系统限制等。而分布式存储的出现在一定程度上有效的缓解了这一问题,目前比较流行的分布式文件系统有:GFS、HDFS、GlusterFS、MooseFS、Lustre、TFS、MogileFS和FastDFS等,本文带来的是MogileFS基于Nginx反向代理实现分布式存储与访问 相关介
小小科
2018/05/02
9730
MogileFS基于Nginx反向代理实现分布式存储与访问
Nginx服务启动、停止和重启等操作的SHELL脚本
由于使用源码编译安装Nginx,不会像yum install那样自动生成Nginx服务控制脚本,所以需要自己添加一个操作脚本。谷歌上搜了一下,shell脚本的代码基本类似,因此自己稍微整理改动了下。
typecodes
2024/03/29
4850
Nginx和PHP-FPM的启动、重启、停止脚本
服务器上的Nginx和PHP都是源码编译安装的,不像ubuntu一样有自带service启动脚本,所以不支持类似以前的nginx (start|restart|stop|reload)了。自己动手丰衣足食。以下脚本应该在RHEL, Fedora, CentOS下都适用。
艳艳代码杂货店
2021/10/29
1.3K0
nginx 编译安装
下面以CentOS为例 编译安装 下载 wget https://ftp.pcre.org/pub/pcre/pcre-8.44.tar.gz wget http://nginx.org/download/nginx-1.20.0.tar.gz 编译 # 创建所属用户和组,不创建家目录,不能ssh登录 useradd -M -s /sbin/nologin www ./configure --user=www --group=www --prefix=/data/apps/nginx --conf-pat
崔哥
2022/05/25
5100
简 | 编译安装Nginx
前言 端午节安康~ 好长时间没有更新简书了,之前简书md格式以前不标准的写法竟然不支持了,现在得重新码一份出来~ 为何爱上源码编译安装的方式呢? so simple~ 源码安装可以自定义指定安装路径,可以自定义配置安装配套的库和插件 作为运维的我更加清楚服务器的情况,对以后的维护、升级就更加简易 ---- env & version CentOS 7.2 Nginx 1.12.2 ---- install basic app sudo yum -y install gcc automake auto
AlicFeng
2018/06/19
4920
CentOS6.5使用Nginx+Passenger部署Ruby on Rails环境
本文介绍如何使用Nginx+Passenger来部署Ruby on Rails环境,本文使用的操作系统版本是CentOS6.5。 1.安装ruby
星哥玩云
2022/07/04
6570
Tomcat基于MSM+Memcached实现Session共享
前言 在Tomcat集群中,当一个节点出现故障,其他节点该如何接管故障节点的Session信息呢?本文带来的解决方案是基于MSM+Memcached实现Session共享。 相关介绍 MSM MSM–Memcached Session Manager是一个高可用的Tomcat Session共享解决方案,除了可以从本机内存快速读取Session信息(仅针对黏性Session)外,同时可使用Memcached存取Session,以实现高可用。 工作原理 Sticky Session(黏性) 模式下的工作
小小科
2018/05/02
7480
Tomcat基于MSM+Memcached实现Session共享
(麒麟V10-arm)编译安装php-7.4及部分依赖
QGS
2023/11/14
8410
CentOS7下启动Nginx出现Failed to start nginx.service:unit not found
  或者用命令在根目录下执行:# vim /etc/init.d/nginx    (注意vim旁边有一个空格)
Lansonli
2021/10/09
5.1K0
CentOS7 离线安装 Nginx 1.6.2 和 反向代理
Nginx官方文档:https://www.nginx.com/resources/wiki/start/
静谧星空TEL
2021/04/27
2.7K0
CentOS7 离线安装 Nginx 1.6.2 和 反向代理
centos6.5编译安装LNMP架构web环境
作为 Web 服务器:相比 Apache,Nginx 使用更少的资源,支持更多的并发连接,体现更高的效率。
用户3094376
2018/09/12
1.7K1
推荐阅读
相关推荐
【趣学程序】Linux安装Tengine
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验