nginx 的离线编译安装
下载
官网站点下载nginx安装包,下载最新稳定版(Stable version)。
或者访问站点下载rpm版本。
本文以 CentOS7 使用 rpm 版本安装为例。
安装
安装nginx软件的方式一般分三种方法,对于 yum
和 rpm
这两种方式安装均需要 root 用户,因为默认写入的文件目录普通用户没有权限。这两种方式也是最为简单的方式,其中 yum
需要你的机器可以联网,rpm
方式不需要机器联网,但是你需要下载和系统对应的rpm文件。这两种方式资料很多也很简单,本文不做赘述,如有需要请自行查阅资料。
注意:如果使用root用户安装和启动nginx,请把nginx配置文件第一行的修改为
user nobody
意思是让nginx 以nobody
用户运行,nobody是Linux一个不能登录的默认用户,这样可以避免一定的安全问题。
本文重点针对异常环境(非root用户并且不能联网的服务器
)的安装方法进行说明。
编译环境的准备
gcc 编译环境
- 在一个可以联网的,和目标服务器操作系统版本一致的服务器上进行编译生成文件包(当然了如果你直接在不能联网的机器上直接捣鼓也是可以的,只是离线安装 gcc 会非常麻烦浪费时间,所以随便找一个可以联网虚拟机更简单)。
- 如果你的目标服务器是可以联网的,请直接按照下文步骤操作。
- 如果你的目标服务器自带 gcc 编译环境(命令
gcc --version
判断系统是否已经安装),请直接按照下文步骤操作。
相关文件包
- 源码包 nginx-1.18.0.tar.gz(官网下载)
- 编译依赖 openssl-1.0.2s.tar.gz(下载地址)
- 编译依赖 pcre-8.44.tar.gz(下载地址)
- 编译依赖 zlib-1.2.11.tar.gz(下载地址)
编译安装
在 gcc 服务器上编译
首先确定你目标服务器的 非root用户名
,本文的非root用户名以 shanhy
为例,具体的名字随意。
1、创建用户并设置密码
使用root用户创建用户并设置密码,如果你已经被分配好一个用户,则跳过该步
useradd shanhy
passwd shanhy
2、安装gcc编译环境
使用root用户安装gcc
yum install -y gcc-c++
3、切换到非root用户进行编译和后续操作
切换用户
su - nginx
解压压缩包
tar -xzvf nginx-1.18.0.tar.gz
tar -xzvf openssl-1.0.2s.tar.gz
tar -xzvf pcre-8.44.tar.gz
tar -xzvf zlib-1.2.11.tar.gz
配置
cd nginx-1.18.0
./configure \--prefix=/home/shanhy/nginx \--with-pcre=../pcre-8.44 \--with-zlib=../zlib-1.2.11 \--with-openssl=../openssl-1.0.2s \--user=shanhy \--group=shanhy \--with-file-aio \--with-http_v2_module \--with-http_ssl_module \--with-http_realip_module \--with-http_sub_module \--with-http_gzip_static_module \--with-http_stub_status_module
其中
--prefix
设定你 nginx 最终需要安装到的目录,这个目录一定要和你最后需要拷贝到的目标服务器上计划放置的目录一致,因为编译后这种配置是默认打入二进制文件中的不便修改。--user
和--group
使用你的非root用户名和其所在的用户组名称,下面是查看用户所在用户组的方法(示例):
[shanhy@cib-server1 sbin]$ cat /etc/passwd | grep shanhy
shanhy:x:1002:1003::/home/shanhy:/bin/bash
[shanhy@cib-server1 sbin]$ cat /etc/group | grep 1003
shanhy:x:1003:
更多参数请查阅相关资料。
编译
make && make install
安装
make install
安装后 --prefix
指定的目录中会出现包括但不限于 conf|html|sbin|logs
几个目录。
使用root用户授权
非root用户运行nginx不能监听1024以下的端口号,因为我们的nginx需要使用 80和443 端口,所以需要使用root用户授权。当然如果你nginx使用大端口你可以跳过这步。
su - root
cd /home/shanhy/nginx/sbin
chown root:root nginx
chmod 755 nginx
chmod u+s nginx
启动服务
使用非root用户,进入目录并启动服务
su - shanhy
cd /home/shanhy/nginx
./sbin/nginx
打开浏览器访问 http://{服务器IP}
正常应该可以看到 nginx 的默认页。
常用管理命令:
查看版本:nginx –V
停止服务:nginx -s stop
或者是通过 kill nginx 进程号
测试配置:nginx -t
刷新配置:nginx -s reload
打包文件发送到目标服务器部署
- 将编译后的文件包进行打包,发送到纯内网的目标服务器上并解压。
- 在目标服务器上使用 root 用户为 nginx 文件授权。
- 启动服务。
至此,服务安装结束。
配置
nginx 的默认的主配置文件为 conf/nginx.conf
,我们一般创建一个 conf.d
文件夹这样的方式来区分主配置文件和子配置文件,conf.d
中存放多个子配置文件:
使用如下配置文件替换默认配置文件:
#user nobody;
worker_processes 1;error_log logs/error.log warn;
pid logs/nginx.pid;events {worker_connections 1024;
}http {include ./mime.types;default_type application/octet-stream;log_format main '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';access_log logs/access.log main;sendfile on;#tcp_nopush on;keepalive_timeout 65;#gzip on;include ./conf.d/*.conf;
}
注意:如果你的nginx使用的是root用户安装和启动的,配置文件的第一行
user nobody
请去掉前面的#
注释,这个在上文中已做说明。
然后创建目录 conf/conf.d
,将如下文件 default.conf
放入其中
server {listen 80;server_name localhost;#charset koi8-r;#access_log logs/host.access.log main;location / {root html;index index.html index.htm;}#error_page 404 /404.html;# redirect server error pages to the static page /50x.html#error_page 500 502 503 504 /50x.html;location = /50x.html {root html;}}
配置文件如果有变动修改,修改后先使用
sbin/nginx -t
测试语法然后再sbin/nginx -s reload
刷新配置即可。
(END)
nginx 的离线编译安装相关推荐
- 【Linux-GNU编译器套件(gcc/g++/gfortran)离线编译安装】
文章目录 Linux-centos7.9系统GNU编译器套件(gcc/g++/gfortran)离线编译安装 一.★GNU编译器套件定义 二.★GNU-GCC编译环境说明 三.★GNU-GCC编译安装 ...
- Nginx基础篇-Nginx 源码编译安装与平滑升级
Nginx基础篇-Nginx 源码编译安装与平滑升级 Nginx官网下载地址 http://nginx.org/ 1.安装依赖包 yum -y install pcre-devel zlib-deve ...
- Ubuntu22.04.1 LTS离线编译安装Nginx
一.安装环境&安装包 1.安装环境 1.1查看操作系统的发行版号和操作系统版本 uname -a 1.2查看版本号 uname -v 1.3查看发行版本信息 lsb_release -a 1. ...
- Nginx 源码编译安装
Nginx 源码编译安装环境 Centos7 Nginx1.8.1 下载地址:http://nginx.org/download/ 选择自己想要的版本 我这边使用1.8.1,下载地址:http: ...
- LNMP架构环境搭建之PHP、Nginx源码编译安装及其简单配置应用
LNMP架构中的Mysql见上一篇博文"LNMP架构环境搭建之mysql源码编译安装" 一.PHP简介 PHP(外文名:PHP: Hypertext Preprocessor,中文 ...
- Centos+Nginx+PHP7.0编译安装(和PHP5.6老版本共存)
来源:http://blog.csdn.net/liuxinmingcode/article/details/50319145 场景 LNMP 当前版本:PHP 5.5.7 为了体验PHP7的速度 ...
- Linux 利用nginx源码编译安装nginx
环境 1, CentOS 7 2, nginx 1.13.6 步骤 1,编译前准备 yum install pcre* openssl openssl-devel zlib zlib-devel 2, ...
- Nginx 之一:编译安装nginx 1.8.1 及配置
转http://www.cnblogs.com/zhang-shijie/p/5294162.html 一:基介绍 官网地址www.nginx.org,nginx是由1994年毕业于俄罗斯国立莫斯科鲍 ...
- (转)linux上nginx源码编译安装
亲测有效: 转: https://segmentfault.com/a/1190000007116797https://segmentfault.com/a/1190000007116797 ngi ...
最新文章
- C语言之数组中你所不在意的重要知识
- 【干货】产品经理如何使用大数据构建用户画像
- .NET程序员应该理解的几种软件保护方法 辛苦开发的程序需要建立有效的保护机制...
- C++控制向文件中写入浮点数的格式
- object.prototype.call
- Linux下启动/关闭Oracle服务和 oracle监听启动/关闭/查看状态
- eclipse中误删除的java文件 代码如何恢复
- Web页面执行shell命令
- 配置管理计划的新设想
- SCT芯洲DC-DC-SCT2430是一款输出电流高达3.5A的高功率密度全集成同步降压DCDC转换器。其输入电压范围为3.8V到40V,替代TPS54340
- photoshop ps 证件照 照片 换底色
- 简单的js在html页面打印机,在javaScript中如何连接打印机
- 苹果手机文件夹中服务器连接在哪,如何访问苹果手机上的共享文件夹?
- 吴恩达深度学习课程笔记(二):改善深层神经网络
- 麒麟990银河麒麟SP1升级补丁(0709、1020)升级到(1228)
- python迷宫小游戏代码_python迷宫游戏,迷宫生成,解决与可视化
- 地震勘探 01:地震波001
- 002 Java集合泛型面试题
- 第二章第十六题(几何:六边形面积)(Geometry: area of a hexagon)
- Magento 1.4 EAV 属性中的新东西
热门文章
- 计算机网课自我鉴定,计算机实习自我鉴定
- LevelDB Arena源码分析
- 7. 从0学ARM-GNU伪指令、代码编译,lds使用
- 【NOIP2013】华容道 最短路优化搜索(spfa)
- android6.0的root工具,安卓6.0怎么root?安卓6.0 root教程!
- win7做网站服务器数据库,win7做网站服务器
- 用计算机求函数总分 平均分,老师如何在Excel学生成绩表中一键生成总分和各科平均分...
- 港科夜闻|香港科大商学院5位教授跻身世界顶尖科学家之列
- AccountManager 数据库存储位置
- WinRAR4.20注册文件key文件注册码