Nginx的安装
版本区别:
常用版本分为四大阵营
Nginx开源版 http://nginx.org/
Nginx plus 商业版 https://www.nginx.com
openresty http://openresty.org/cn/
Tengine http://tengine.taobao.org/
新建目录
在根目录创建文件
#tmp存放临时安装包
mkdir -p /data/tmp
#service存放软件环境
mkdir -p /data/service
#gitee存放代码版本控制库
mkdir -p /data/gitee
#进入放安装包的位置
cd /data/tmp/
#解压
tar -xvf nginx-1.21.6.tar.gz
#删除安装文件
#rm -f nginx-1.21.6.tar.gz
#修改文件位置和名称
mv nginx-1.21.6 /data/service/nginx-source
#进入nginx-source目录,执行以下操作
cd /data/service/nginx-source
#源文件需要编译执行后才能生成可执行文件
#安装gcc、perl库、zlib库、openssl库
yum -y install gcc pcre-devel zlib-devel openssl openssl-devel
#等价于下面###之中
##################################
安装gcc
yum install -y gcc
#如果没有安装过
#会出现警告或报错
#提示
#checking for OS + Linux 3.10.0-693.el7.x86_64 x86_64 checking for C compiler ... not found ./configure: #error: C compiler cc is not found
安装perl库:
yum install -y pcre pcre-devel
#如果没有安装过 执行编译安装 ./configure 会提示:
#./configure: error: the HTTP rewrite module requires the PCRE library. You can either disable the module by #using --without-http_rewrite_module option, or install the PCRE library into the system, or build the PCRE #library statically from the source with nginx by using --with-pcre=<path> option.
#说明需要安装perl库
安装zlib库:
yum install -y zlib zlib-devel
#如果没有安装过在 执行编译安装 ./configure 会提示:
#./configure: error: the HTTP gzip module requires the zlib library. You can either disable the module by #using --without-http_gzip_module option, or install the zlib library into the system, or build the zlib #library statically from the source with nginx by using --with-zlib=<path> option.
#说明需要安装zlib库
##################################
#编译安装
#不定Nginx工作目录位置
#./configure
#会自己创建Nginx工作目录位置,自己注意看
#在nginx-source的根目录中 执行
#指定Nginx工作目录位置
./configure --prefix=/data/service/nginx
#问题补充: 如果 ./configure 报错没有权限,则执行如下命令
# chmod + x configure
#在nginx-source的根目录中 执行
make
make install
#找Nginx工作目录(就是在 ./configure 配置的路径下,如果你不指定路径他会在创建的时候告诉你,记得看)
#查找工作目录命令
#whereis nginx
#进入Nginx工作目录
启动Nginx
进入安装好的工作目录 /data/service/nginx/sbin
cd /data/service/nginx/sbin
#执行相关命令进行启动或停止等操作
./nginx #启动
./nginx -s stop #快速停止
./nginx -s quit #优雅关闭,在退出前完成已经接受的连接请求
./nginx -s reload #重新加载配置
#查看nginx是否启动成功
方案一:
ps -ef|grep nginx
方案二:
ip addr
#查看ip,在浏览器直接输入查到的ip
inet 172.16.241.175
看是否出现nginx标识符
如果网页无法访问说明没有关闭防火墙,参考下面关闭防火墙代码,重新在浏览器输入ip即可
如果是阿里云记得在安全组配置打开80端口,ip也是阿里云服务器给的公网ip地址
[root@iZf8zbg8gk2w4yhoydn6uhZ sbin]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:16:3e:08:7c:c4 brd ff:ff:ff:ff:ff:ff
inet 172.16.241.175/20 brd 172.16.255.255 scope global dynamic noprefixroute eth0
valid_lft 312843031sec preferred_lft 312843031sec
inet6 fe80::216:3eff:fe08:7cc4/64 scope link
valid_lft forever preferred_lft forever
关于防火墙
关闭防火墙
systemctl stop firewalld.service
禁止防火墙开机启动
systemctl disable firewalld.service
放行端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
重启防火墙
firewall-cmd --reload
安装成系统服务
创建服务脚本
vi /usr/lib/systemd/system/nginx.service
服务脚本内容
里面的路径是刚才指定Nginx工作目录位置./configure --prefix=/data/service/nginx
##########################################
[Unit]
Description=nginx - web server
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/data/service/nginx/logs/nginx.pid
ExecStartPre=/data/service/nginx/sbin/nginx -t -c /data/service/nginx/conf/nginx.conf
ExecStart=/data/service/nginx/sbin/nginx -c /data/service/nginx/conf/nginx.conf
ExecReload=/data/service/nginx/sbin/nginx -s reload
ExecStop=/data/service/nginx/sbin/nginx -s stop
ExecQuit=/data/service/nginx/sbin/nginx -s quit
PrivateTmp=true
[Install]
WantedBy=multi-user.target
##########################################
重新加载系统服务
systemctl daemon-reload
启动服务
systemctl start nginx.service 或者 systemctl start nginx
查看服务
systemctl status nginx
重启服务
systemctl reload nginx
停止服务
systemctl stop nginx
开机启动
systemctl enable nginx.service