nginx官方文档介绍的安装方法:http://nginx.org/en/docs/install.html
本文介绍两种:
- 软件包安装
- 源码安装
1、软件包安装
官方:http://nginx.org/en/linux_packages.html
CentOS/RedHat版本支持
其他的Linux系统参考官方文档。
1.1、设置nginx存储库
前提yam正常 + 网络通畅,看自身情况是否使用sudo命令
yum-utils软件包(提供yum-config-manager
功能)
yum install yum-utils
新建/etc/yum.repos.d/nginx.repo,编写nginx存储库配置,具体内容如下:
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
1.2、执行安装
yum install nginx
官方的yum配置,速度可能不太理想,至少我安装的时候是这样(是时候展示真正的技术了)。
1.3、启动测试
#启动
systemctl start nginx
#加入开机启动
systemctl enable nginx
浏览器输入localhost,效果如下,安装成功。
如果其他机器访问不到,检测一下是不是防火墙的问题。
简单粗暴的解决办法,关闭防火墙
CentOS 7使用firewall,执行以下命令,其他linux系统,请百度。
更详细的firewall操作请百度。
systemctl stop firewalld
1.4、路径说明
- /etc/nginx:nginx.conf所在目录
- /usr/share/nginx:html文件夹所在目录
- /usr/sbin/nginx:nginx命令文件
- /var/log/nginx:nginx日志目录
2、源码安装
2.1、下载源码文件
官网获取源码文件下载链接:http://nginx.org/en/download.html
#下载
wget http://nginx.org/download/nginx-1.18.0.tar.gz
#解压
tar -zxvf nginx-1.18.0.tar.gz
2.2、安装依赖
直接使用yum安装一下依赖
yum install -y pcre-devel zlib-devel openssl-devel
源码编译需要依赖gcc编译器,编译提示错误的话,安装gcc编译器
yum install gcc
2.3、编译前配置
cd nginx-1.18.0
./configure --prefix=/opt/nginx --with-http_ssl_module
#出现 -bash: ./configure: Permission denied错误
bash ./configure --prefix=/opt/nginx --with-http_ssl_module
配置说明:
- --prefix:安装目录,默认是/usr/local/nginx。
- --with-http_ssl_module:允许构建一个模块,将HTTPS协议支持添加到HTTP服务器。这个模块不是默认构建的。构建和运行这个模块需要OpenSSL库。
更多配置说明请参考官方文档:http://nginx.org/en/docs/configure.html
2.4、编译安装
make && make install
如果无意外,等待编译安装完成即可。
2.5、启动测试
执行安装目录下的sbin目录的nginx命令文件,启动nginx
/opt/nginx/sbin/nginx
2.6、添加环境变量
- 方式一:软连接到PATH所包含的目录下
#查看环境变量PATH的值,输出如下
echo $PATH
#输出:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/opt/jdk1.8.0_201/bin:/root/bin
#链接,例如
ln -s /opt/nginx/sbin/nginx /usr/local/sbin
- 方式二:PATH环境变量中添加nginx命令所处路径
配置用户级别或者系统级别,本文配置的是系统级别的环境变量。
vim /etc/profile
#插入内容:export PATH=$PATH:/opt/nginx/sbin
#使环境变量设置立即生效
source /etc/profile
2.7、创建nginx系统服务
CentOS服务所在路径:/usr/lib/systemd/system/,软件包安装的nginx.service会在该路径下。
我们现在在/etc/rc.d/init.d/目录下创建nginx文件。
内容如下,(如果编译安装目录,请修改)
#!/bin/bash
#
# chkconfig: - 85 15
# description: Nginx is a World Wide Web server.
# processname: nginx
nginx=/opt/nginx/sbin/nginx
conf=/opt/nginx/conf/nginx.conf
case $1 in
start)
echo -n "Starting Nginx"
$nginx -c $conf
echo " done"
;;
stop)
echo -n "Stopping Nginx"
killall -9 nginx
echo " done"
;;
test)
$nginx -t -c $conf
;;
reload)
echo -n "Reloading Nginx"
ps auxww | grep nginx | grep master | awk '{print $2}' | xargs kill -HUP
echo " done"
;;
restart)
$0 stop
$0 start
;;
show)
ps -aux|grep nginx
;;
*)
echo -n "Usage: $0 {start|restart|reload|stop|test|show}"
;;
esac
再给定权限
chmod 755 nginx
将文件添加到系统服务
#添加到系统服务
chkconfig --add nginx
#检查是否添加成功
chkconfig --list nginx
启动测试
systemctl start nginx