Linux_基础篇
欢迎来到Linux的世界,看笔记好好学多敲多打,每个人都是大神!
题目:安装部署nginx
版本号: 1.0,0
作者: @老王要学习
日期: 2025.05.02
适用环境: Centos7
文档说明
本文档聚焦于 CentOS 7 环境下 Nginx 的安装部署。详细介绍了两种安装方法,即 yum 安装和编译安装,同时包含创建自定义配置文件、域名解析、设置开机自启等内容,还提供了一键安装脚本,为用户在 Linux 系统上搭建 Nginx 服务提供全面指导
环境准备
硬件要求
- 服务器: 2核CPU、2GB内存,20GB硬盘空间
- 网络: 确保服务器具有固定的IP地址,并且防火墙允许FTP端口(默认22端口)的通信
软件要求
- 操作系统:Centos7
- FTP软件:SecureCRT
- 软件包:nginx
一、安装部署nginx
安装方法1:yum安装
1.0关闭防火墙
systemctl stop firewalld && systemctl disable firewalld
sed -i 's/^SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config
reboot
1.1安装epel源
#安装依赖:
yum -y install wget vim
#安装epel源
wget -O /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo
1.2更新缓存
# 更新缓存
yum makecache
# 查看yum仓库
yum repolist
#结果如下:
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
源标识 源名称 状态
base/7/x86_64 CentOS-7 - Base - mirrors.aliyun.com 10,072
epel/x86_64 Extra Packages for Enterprise Linux 7 - x86_64 13,791
extras/7/x86_64 CentOS-7 - Extras - mirrors.aliyun.com 526
updates/7/x86_64 CentOS-7 - Updates - mirrors.aliyun.com 6,173
repolist: 30,562
1.3进入yum.repos.d编写配置文件
cat>/etc/yum.repos.d/nginx.repo<<EOF
[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
EOF
1.4安装
# 重新建立缓存
yum makecache
# 安装nginx
yum install nginx
安装方法2:编译安装
1.1安装依赖包
yum -y install pcre-devel openssl-devel zlib-devel
1.2下载安装包
# 下载nginx包
wget https://nginx.org/download/nginx-1.26.3.tar.gz -c /usr/local/src/
# 解压安装包
tar zxf /usr/local/src/nginx-1.26.3.tar.gz
1.3创建用户
groupadd -r www
useradd -g www -M -s /bin/false -r www
id www
1.4编译安装
#编译
cd /usr/local/src/nginx-1.26.3
./configure --prefix=/usr/local/nginx/
#安装
make && make install
1.5启动nginx
/usr/local/nginx/sbin/nginx
ss -antpl | grep nginx
#结果如下:
LISTEN 0 128 *:80 *:* users:(("nginx",pid=10790,fd=6),("nginx",pid=10789,fd=6))
1.6网页测试
curl localhost
#结果如下:
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
html { color-scheme: light dark; }
body { width: 35em; margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif; }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>
<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>
<p><em>Thank you for using nginx.</em></p>
</body>
</html>
二、创建自己的配置文件
2.1创建配置文件
# 停止nginx
/usr/local/nginx/sbin/nginx -s stop
# 写入配置文件
cat>/usr/local/nginx/conf/mynginx.conf<<EOF
events {}
http {
server {
location / {
root html1;
}
}
}
EOF
2.2创建web01
#创建网页lw01目录
mkdir /usr/local/nginx/html1/
#写入内容
echo "my nginx web01" > /usr/local/nginx/html1/index.html
#启动服务
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/mynginx.conf
#访问测试
curl localhost
2.3创建web02
#停止nginx服务
/usr/local/nginx/sbin/nginx -s stop
#创建web02目录
mkdir /usr/local/nginx/html2
#写入数据
echo "mynginx web02" > /usr/local/nginx/html2/index.html
#修改配置文件
cat > /usr/local/nginx/conf/nginx.conf <<EOF
events {}
http {
server {
listen 80;
server_name www.web1.com;
location / {
root html1;
}
}
server {
listen 80;
server_name www.web2.com;
location / {
root html2;
}
}
}
EOF
2.4域名解析
#追加内容到hosts文件
cat>>/etc/hosts<<EOF
192.168.8.10 www.web1.com
192.168.8.10 www.web2.com
EOF
#启动服务
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/mynginx.conf
#访问测试
curl www.web1.com
curl www.web2.com
三、开机自启动
/usr/local/nginx/sbin/nginx -s stop
cat>/usr/lib/systemd/system/nginx.service<<EOF
[Unit]
Description=Web server daemon
After=network.target
[Service]
Type=forling
EnvironmentFile=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
KillMode=process
[Install]
WantedBy=multi-user.target
EOF
#重启服务
systemctl daemon-reload
systemctl start nginx
systemctl enable nginx
四、编写一键安装脚本
4.1关闭防火墙
systemctl stop firewalld && systemctl disable firewalld
sed -i 's/^SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config
reboot
4.2一键安装脚本
#!/bin/bash
#下载nginx进行安装
#安装开发软件
yum -y install pcre-devel openssl-devel zlib-devel
#下载nginx包
cd /usr/local/src/
wget https://nginx.org/download/nginx-1.26.3.tar.gz
tar zxf nginx-1.26.3.tar.gz
#创建一个系统用户组
groupadd -r www
useradd -g www -M -s /bin/false -r www
id www
#添加模块
cd /usr/src/nginx-1.26.3/
./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_v2_module --with-http_addition_module --with-http_sub_module --with-http_flv_module --with-http_random_index_module --with-http_stub_status_module
#源码编译
make && make install
#停止nginx
/usr/local/nginx/sbin/nginx -s stop
cat > /usr/local/nginx/conf/nginx.conf <<EOF
events {}
http{
server {
location / {
root html1;
}
}
}
EOF
mkdir /usr/local/nginx/html1/
echo "my nginx web01" > /usr/local/nginx/html1/index.html
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/mynginx.conf
curl localhost
#创建web02
/usr/local/nginx/sbin/nginx -s stop
mkdir /usr/local/nginx/html2
echo "mynginx web02" > /usr/local/nginx/html2/index.html
cat > /usr/local/nginx/conf/nginx.conf <<EOF
events {}
http {
server {
listen 80;
server_name www.web1.com;
location / {
root html1;
}
}
server {
listen 80;
server_name www.web2.com;
location / {
root html2;
}
}
}
EOF
#域名解析
echo "192.168.8.10 www.web1.com
192.168.8.10 www.web1.com
" >> /etc/hosts
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/mynginx.conf
curl www.web1.com
curl www.web2.com
#开机自启
/usr/local/nginx/sbin/nginx -s stop
cd /usr/lib/systemd/system
cp sshd.service nginx.service
cat > nginx.service <<EOF
[Unit]
Description=Web server daemon
After=network.target
[Service]
Type=forling
EnvironmentFile=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
KillMode=process
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl start nginx
systemctl enable nginx