CentOS 7.4 安装Nginx
说明
Nginx
是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like
协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,在国内各大互联网公司广泛使用。
在我们的devops
环境中,需要用到nginx作web服务器、负载均衡、代理转发等。
注意:nginx包含很多可用模块,yum安装模式过于固化,编译安装可以根据业务需求自由选择模块,故本章采用编译安装方案,进行离线安装
一. 软件获取
安装nginx前,我们需要通过 Nginx官网 下载 最新的Stable version
版本。本文采用 nginx-1.16.1
版本
二. 安装编译工具及库文件
yum install -y make libtool gcc gcc-c++ zlib zlib-devel openssl openssl-devel pcre pcre-devel
注意:本章采用离线按钮,不执行以上语句。
三. yum离线安装编译工具及库文件
1、yum下载rpm包到本地
yum下载rpm包 命令语法:yumdownloader --resolve(可选,意为下依赖包) --destdir=软件存放位置 (可选) +软件包名
yumdownloader --resolve --destdir=/external/nginx/depend make libtool gcc gcc-c++ zlib zlib-devel openssl openssl-devel pcre pcre-devel
2、yum安装本地rpm包
yum本地安装 命令语法:yum localinstall <软件名称,多个空格分隔> rpm包本地路径
yum localinstall -y make libtool gcc gcc-c++ zlib zlib-devel openssl openssl-devel pcre pcre-devel /external/nginx/depend/*.rpm
四. nginx编译安装
1、上传 nginx-1.16.1.tar.gz
- 使用
sftp
命令上传nginx安装包
到服务器
sftp root@192.168.43.150 #须输入密码
cd /external/nginx # 服务器地址
lcd /g/csdn/nginx # 本地地址
put nginx-1.16.1.tar.gz # 上传安装包
2、解压nginx-1.16.1.tar.gz
tar zxvf nginx-1.16.1.tar.gz
3、进入安装包目录
cd /external/nginx/nginx-1.16.1
4、编译安装
- 检测软件环境信息
./configure --prefix=/usr/local/nginx \
--user=root --group=root \
--with-http_stub_status_module \
--with-http_ssl_module \
--with-stream \
--with-pcre-jit \
--with-http_realip_module \
--with-http_v2_module
说明:
--prefix
:nginx安装目录
--user
/ --group
:归属用户/用户组,本环境直接使用root用户
--with-http_stub_status_module
:服务器状态模块
--with-http_v2_module
:支持 http2
- 编译 && 安装
make && make install
5、查看安装结果
cd /usr/local/nginx/sbin/
./nginx -V
注意:
nginx默认端口为80,而1024
以下的端口预留给root
用户使用,当采用非root
用户按照nginx时,CentOS
须通过如下命令开放80端口的nginx服务
setcap cap_net_bind_service=+eip /usr/local/nginx/sbin
五. nginx配置启动
1、nginx
命令加入环境变量
- 添加环境变量
cat >> ~/.bash_profile << EOF
export NGINX_HOME=/usr/local/nginx
export PATH=\$PATH:\$NGINX_HOME/sbin
EOF
- 使环境变量生效
source ~/.bash_profile
2、nginx
配置端口转发
在devops
体系中,我们将对不同的软件定义不同的域名进行管理。最新规划见:https://gitee.com/tysite/devops
我们以 nginx web服务器
和 gitlab
的为例,这两个软件都需要使用到80端口对外提供服务
规划设计如下:
IP地址 | 域名 | 端口 | 说明 |
---|---|---|---|
192.168.43.150 | www.tysite.org | 80 | nginx web服务器,未来作为项目主页使用 |
192.168.43.150 | git.tysite.org | 10080 | git服务器访问地址 |
- 用户本地修改
hosts
文件,添加域名映射
192.168.43.150 www.tysite.org
192.168.43.150 git.tysite.org
- 修改
nginx.conf
文件,读取conf.d
下的*.conf
配置集合
vi nginx.conf
1、开启gzip 并 添加 conf.d/*.conf
gzip on;
include conf.d/*.conf;
2、删除 server 的相关配置
- 创建
nginx
配置文件目录
mkdir -p /usr/local/nginx/conf/conf.d
conf.d
目录下添加以域名命名的配置文件,本文添加www.tysite.org.conf
。
vi www.tysite.org.conf
server {
listen 80;
server_name www.tysite.org;
#access_log logs/host.access.log main;
location / {
root html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
3、启动nginx
执行如下命令,启动nginx
nginx
服务端启动结果检查,命令如下:
- 查看nginx进程信息
ps -ef | grep nginx
- 查看端口使用信息
netstat -nltup
检查结果如图所示:
- 检查 nginx web 服务
使用浏览器访问域名:http://www.tysite.org
4、设置开机自启动
根据 linux /etc/rc.d/目录及rc.local的详解 博客中讲解的Linux的引导过程 ,我们可以在 /etc/rc.d/rc.local
中添加 nginx
启动命令来实现 nginx 的开机自启动。
- 添加启动命令
cat >> /etc/rc.d/rc.local << EOF
./usr/local/nginx/sbin/nginx
EOF
- 设置
/etc/rc.d/rc.local
的可执行权限
chmod +x /etc/rc.d/rc.local
六. nginx常用命令
nginx
: 启动nginxps -ef | grep nginx
:查看nginx启动信息netstat -nlutp
:查看端口使用情况nginx -s reload
:修改配置后重新加载生效nginx -s stop
:快速停止nginxnginx -s quit
:完整有序的停止nginxnginx -s reopen
:重新打开日志文件nginx -t -c /path/to/nginx.conf
:测试nginx配置文件是否正确