一.nginx安装环境
1.gcc
安装nginx需要先将官网下载的源码进行编译,编译依赖gcc环境,如果没有gcc环境,需要安装gcc
yum install gcc-c++
需要输入的地方直接输入 Y ,然后等待安装就可以
2.PCRE
PCRE(Perl Compatible Regular Expressions)是一个Perl库,包括 perl 兼容的正则表达式库。nginx的http模块使用pcre来解析正则表达式,所以需要在linux上安装pcre库
yum install -y pcre pcre-devel
3.zlib
zlib库提供了很多种压缩和解压缩的方式,nginx使用zlib对http包的内容进行gzip,所以需要在linux上安装zlib库。
yum install -y zlib zlib-devel
4.openssl
OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。nginx不仅支持http协议,还支持https(即在ssl协议上传输http),所以需要在linux安装openssl库。
yum install -y openssl openssl-devel
二.编译安装
1.下载安装包的方式:
1)手动下载,然后上传服务器的指定目录下
下载链接: nginx-1.15.3.tar.gz 提取码: s932
也可以自行去官网下载: Nginx下载地址
2).在服务器指定目录下在线下载
目录跳转
cd /usr/local
在线下载
wget http://nginx.org/download/nginx-1.17.9.tar.gz
下载完成查看一下
ll
2.解压
tar -xvf nginx-1.17.9.tar.gz
3.配置
注意:下面配置中将临时文件目录指定为/var/temp/nginx,需要在/var下创建temp及nginx目录
循环创建目录
mkdir -p /var/temp/nginx
执行下面配置需要nginx目录下
cd nginx-1.17.9/
执行下面配置命令
./configure \
--prefix=/usr/local/nginx \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi
4.编译安装
1).先编译,再安装
make
make install
2)安装成功后查看安装目录
ll -la ../nginx
到此,nginx安装完成,可以选择删除nginx-1.17.9目录
rm -rf nginx-1.17.9/
三.启动Nginx
1.目录跳转
cd /usr/local/nginx/sbin
2.nginx启动
./nginx
或者指定配置文件启动
./nginx -c /usr/local/nginx/conf/nginx.conf
3.查看nginx进程
ps -ef |grep nginx
四.停止Nginx
1.快速停止
1).目录跳转
cd /usr/local/nginx/sbin
2).停止
./nginx -s stop
2.完整停止(建议使用)
1).目录跳转
cd /usr/local/nginx/sbin
2).停止
./nginx -s quit
五.重启nginx
1.先停止再启动
1).目录跳转
cd /usr/local/nginx/sbin
2).停止
./nginx -s quit
3).启动
./nginx
2.重新加载
./nginx -s reload
六.测试
七.开机启动(看个人需求)
1.进入到/lib/systemd/system/目录
cd /lib/systemd/system
2.创建nginx.service文件
vim nginx.service
3.编辑(Insert).添加以下命令
[Unit]
Description=nginx service
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true
[Install]
WantedBy=multi-user.target
[Unit]:服务的说明
Description:描述服务
After:描述服务类别
[Service]服务运行参数的设置
Type=forking是后台运行的形式
ExecStart为服务的具体运行命令
ExecReload为重启命令
ExecStop为停止命令
PrivateTmp=True表示给服务分配独立的临时空间
注意:[Service]的启动、重启、停止命令全部要求使用绝对路径
[Install]运行级别下服务安装的相关设置,可设置为多用户,即系统运行级别为3
保存退出。
4.加入开机自启动
systemctl enable nginx
5.服务的启动/停止/刷新配置文件/查看状态
启动nginx服务
systemctl start nginx.service
停止服务
systemctl stop nginx.service
重新启动服务
systemctl restart nginx.service
查看所有已启动的服务
systemctl list-units --type=service
查看服务当前状态
systemctl status nginx.service
设置开机自启动
systemctl enable nginx.service
停止开机自启动
systemctl disable nginx.service
6.如果不想开机自启动了,可以使用下面的命令取消开机自启动
systemctl disable nginx
7.一个常见的错误
Warning: nginx.service changed on disk. Run ‘systemctl daemon-reload’ to reload units.
直接按照提示执行命令systemctl daemon-reload 即可
systemctl daemon-reload
重启系统测试一下吧
reboot
注意
系统重启后nginx可能会没有起来,原因是找不到PID.
systemctl status nginx.service
我的解决方案是修改pid的路径
vim /usr/local/nginx/conf/nginx.conf
默认是注掉的,把它放开
保存退出,然后创建logs目录
mkdir /usr/local/nginx/logs
启动nginx服务
systemctl start nginx.service
再次重启系统
reboot
查看服务状态
systemctl status nginx.service
看到这个说明开机启动已经ok了;