一、源码安装
1、首先去Nginx官网下载Linux版的Nginx。
2、下载完成后上传源码文件到服务器。
3、解压文件
tar zxvf nginx-1.20.2.tar.gz
4、进入安装包
cd nginx-1.20.2
5、安装依赖
yum -y install make zlib zlib-devel gcc gcc-c++ libtool openssl openssl-devel pcre-devel
6、编译安装
./configure --prefix=/usr/local/webserver/nginx --user=www --group=www --with-http_ssl_module
make
make install
[root@CentOS7 nginx-1.20.2]# echo $?
0
7、启动nginx服务
[root@CentOS7 nginx-1.20.2]# cd /usr/local/webserver/nginx/sbin //进入安装目录
[root@CentOS7 sbin]# ls
nginx
[root@CentOS7 sbin]# useradd www //添加用户www
[root@CentOS7 sbin]# ./nginx //启动Nginx服务
[root@CentOS7 sbin]# ps aux | grep nginx //查看nginx服务是否启动成功
root 6923 0.0 0.0 45992 1132 ? Ss 15:21 0:00 nginx: master process ./nginx
www 6924 0.0 0.0 46440 1876 ? S 15:21 0:00 nginx: worker process
root 6926 0.0 0.0 112824 988 pts/0 S+ 15:21 0:00 grep --color=auto nginx
8、防火墙端口配置
Nginx访问需要用到80和443端口,如果防火墙关闭,就直接可以访问了,如果防火墙开启状态,就需要放开这两个端口。
[root@CentOS7 ~]# systemctl status firewalld //查看防火墙状态
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
Active: active (running) since 一 2024-05-13 13:56:09 CST; 1h 36min ago
Docs: man:firewalld(1)
Main PID: 744 (firewalld)
CGroup: /system.slice/firewalld.service
└─744 /usr/bin/python2 -Es /usr/sbin/firewalld --nofork --nopid
5月 13 13:56:06 CentOS7 systemd[1]: Starting firewalld - dynamic firewall daemon...
5月 13 13:56:09 CentOS7 systemd[1]: Started firewalld - dynamic firewall daemon.
5月 13 13:56:09 CentOS7 firewalld[744]: WARNING: AllowZoneDrifting is enabled. This is considered an i...now.
Hint: Some lines were ellipsized, use -l to show in full.
[root@CentOS7 ~]# firewall-cmd --add-port=80/tcp --permanent //放开80端口
success
[root@CentOS7 ~]# firewall-cmd --add-port=443/tcp --permanent //放开443端口
success
[root@CentOS7 ~]# firewall-cmd --add-port=8080/tcp --permanent //放开8080端口
success
[root@CentOS7 ~]# firewall-cmd --reload //重新加载防火墙配置
success
[root@CentOS7 ~]# firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: ens33 ens37
sources:
services: dhcpv6-client ssh
ports: 80/tcp 443/tcp 8080/tcp
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
9、测试
从浏览器访问我们配置的站点ip+端口号(默认端口号可以省略),出现如图所示界面就配置成功了。
10、Nginx 其他命令
以下包含了 Nginx 常用的几个命令:
启动服务:./nginx
退出服务:./nginx -s quit
强制关闭服务:./nginx -s stop
重载服务:./nginx -s reload (重载服务配置文件,类似于重启,但服务不会中止)
验证配置文件:./nginx -t
使用配置文件:./nginx -c "配置文件路径"
使用帮助:./nginx -h
11、编写systemd单元文件管理nginx服务
通常在/usr/lib/systemd/system或/etc/systemd/system/目录下创建nginx.service文本文件
11.1)停掉nginx
[root@CentOS7 ~]# cd /usr/local/webserver/nginx/sbin/
[root@CentOS7 sbin]# ./nginx -s quit
11.2)创建nginx.service文件
[root@CentOS7 ~]# vi /etc/systemd/system/nginx.service
添加以下内容:
[Unit]
Description=The NGINX HTTP and reverse proxy server
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/usr/local/webserver/nginx/logs/nginx.pid //注意改成自己的安装路径
ExecStartPre=/usr/local/webserver/nginx/sbin/nginx -t -c /usr/local/webserver/nginx/conf/nginx.conf
ExecStart=/usr/local/webserver/nginx/sbin/nginx -c /usr/local/webserver/nginx/conf/nginx.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
要让systemd重新识别此单元文件,执行
systemctl daemon-reload
启动nginx
systemctl start nginx
开机自启动
systemctl enable nginx
配置开机自启动前
配置开机自启动后