源码编译部署Web服务器nginx
- nginx官网:http://nginx.org
- nginx提供的Web服务名称是:nginx
- nginx默认安装时的安装路径是:/usr/share/nginx
- nginx默认安装时的主配置文件是:/etc/nginx/nginx.conf
- nginx默认安装时站点所在的根目录是:/usr/share/nginx/html/
Step 1:查看/etc/passwd中有无nginx用户
- [root@zlb100 ~]# cat /etc/passwd
- [root@zlb100 ~]# cat /etc/group
Step 2:创建nginx账户,用于运行nginx服务进程,降低nginx服务进程的操作权限(默认nginx服务进程的用户是:root)
- [root@zlb100 ~]# useradd nginx -s /sbin/nologin -M # -M表示不创建家目录
- [root@zlb100 ~]# cat /etc/passwd | grep nginx
- [root@zlb100 ~]# cat /etc/group | grep nginx
- [root@zlb100 ~]# ls /home
Step 3:查看并关闭Apache的httpd服务器
- [root@zlb100 ~]# systemctl status httpd
- [root@zlb100 ~]# systemctl stop httpd
Step 4:需要安装依赖软件
- [root@zlb100 ~]# yum install gcc make zlib-devel pcre pcre-devel openssl-devel -y
Step 5:创建nginx软件包的下载目录
- [root@zlb100 ~]# mkdir download
- [root@zlb100 ~]# cd download
Step 6:下载nginx软件包
- [root@zlb100 download]# wget http://nginx.org/download/nginx-1.24.0.tar.gz
- [root@zlb100 download]# curl -I http://nginx.org # 查看nginx官网首页的响应头信息
Step 7:对下载的软件包进行解包解压缩
- [root@zlb100 download]# tar -xzvf nginx-1.24.0.tar.gz
Step 8:切换到解压缩后的nginx目录中
- [root@zlb100 download]# cd nginx-1.24.0/
Step 9:开始安装
1. [root@zlb100 nginx-1.24.0]# ./configure --user=nginx --group=nginx --prefix=/usr/local/nginx
# 使用--prefix参数人为的指定源码编译后的安装路径
# configure环境检查后会自动生成Makefile文件,然后才可以make编译
2. [root@zlb100 nginx-1.24.0]# make # 编译(把源代码文件编译成可执行的二进制文件),是自动按Makefile文件进行编译的
3. [root@zlb100 nginx-1.24.0]# make install # 安装
# 以上编译和安装的2行指令可以简写为一行:make && make install
Step 10:查看安装目录
- [root@zlb100 nginx-1.24.0]# whereis nginx
- [root@zlb100 nginx-1.24.0]# ls /usr/local/nginx/ # 查看用户指定安装路径下的文件(其中:配置文件所在的目录是conf,站点所在的目录是html,可执行服务的目录是sbin)
- [root@zlb100 nginx-1.24.0]# cd /usr/local/nginx
- [root@zlb100 nginx]# cd sbin
- [root@zlb100 nginx]# firewall-cmd --list-ports # 要确保防火墙已经打开80号端口
Step 11:启动nginx服务
- [root@zlb100 sbin]# ./nginx # 启动nginx服务
- ./nginx -s stop:在nginx已经启动的前提下,强制退出nginx服务的指令
- ./nginx -s quit:在nginx已经启动的前提下,安全退出nginx服务的命令
- ./nginx -s reload:在nginx已经启动的前提下,重新加载nginx服务
- 自定义路径安装的前提下:nginx的安装路径是:/usr/local/nginx
- 自定义路径安装的前提下:nginx的主配置文件是:/usr/local/nginx/conf/nginx.conf
- 自定义路径安装的前提下:nginx站点所在的根目录是:/usr/local/nginx/html/
- [root@zlb100 sbin]# ps -ef | grep nginx # 查看nginx服务是否启动
- [root@zlb100 sbin]# netstat -antp | grep nginx # 查看nginx服务正在监听80号端口
- nginx服务器的测试:在物理主机浏览器的地址栏中输入Linux服务器IP地址并回车查看nginx欢迎界面(在云服务器和虚拟机中,都需要先将防火墙中的80端口开放后再进行试验)
Step 12:在物理主机的浏览器中测试nginx服务(http://192.168.114.100)
Step 13:将源码编译安装的nginx服务设置为可以使用systemctl命令管理的步骤:
- 首先使用kill命令杀死启动的nginx服务进程
- ps -ef | grep nginx # 查询nginx服务的进程号
- kill -9 5588 # 假设5588是master的进程号
- kill -9 10408 # 假设10408是worker的进程号
- 在/usr/lib/systemd/system目录下新建文件“nginx.service”
- vim /usr/lib/systemd/system/nginx.service
- 在文件中输入如下绿色文字内容:
[Unit]
Description=The NGINX HTTP and reverse proxy server
Documentation=http://nginx.org/en/docs/
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
- 使用systemctl status nginx命令查看nginx服务状态
- 使用systemctl start nginx命令启动nginx服务
- 使用systemctl enable nginx命令设置nginx服务开机自启动
- 使用systemctl status nginx命令查看nginx服务状态
- 使用systemctl stop nginx命令关闭nginx服务
- 使用systemctl status nginx命令查看nginx服务状态