Nginx配置文件报错整理

目录

一、安装Docker服务

1、环境准备

1.1 关闭防火墙

1.2 修改主机名

1.3 修改hosts文件

2、安装docker

3、配置和启动docker

二、安装harbor服务

1、harbor01操作

1.1 安装docker-compose和解压缩文件

1.2 安装和启动harbor

2、harbor02操作

1.2 安装和启动harbor

三、安装nginx服务

四、nginx配置文件报错

1、报错1

1.1 upstream位置不对

​编辑

1.2 解决方法

2、报错2

2.1 max_fail单词拼错,应为max_fails

2.1 解决方法

3、报错3

3.1 无法解析域名

3.2 解决方法

4、报错4

4.1 使用nginx-proxy.crushlinux.com无法登录

4.2 解决方法

5、报错5

5.1 使用nginx-proxy.crushlinux.com登录异常,如上

5.2 解决方法

五、安装dns服务

1、安装dns服务

2、配置named.conf等文件

3、检测配置文件和启动服务

4、修改DNS服务地址进行测试

六、Harbor仓库的复制与同步

1、配置DNS服务

2、配置Windows本地hosts文件

3、进行测试,连接成功即可


一、安装Docker服务

1、环境准备

1.1 关闭防火墙

systemctl disable --now firewalld
setenforce  0

1.2 修改主机名

ip r g 1
hostnamectl set-hostname harbor01 && bash
hostnamectl set-hostname harbor02 && bash
hostnamectl set-hostname nginx-proxy && bash

1.3 修改hosts文件

cat >>/etc/hosts <<'eof'
10.4.7.11 harbor01.crushlinux.com harbor01
10.4.7.12 harbor02.crushlinux.com harbor02
10.4.7.13 nginx-proxy.crushlinux.com nginx-proxy
eof

scp /etc/hosts harbor02:/etc/

2、安装docker

情况说明:准备三台虚拟机,安装Docker服务

wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum install -y docker-ce

3、配置和启动docker

cat >/etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": [
    "https://41q9iv61.mirror.aliyuncs.com",
    "https://docker.cloudmessage.top",
    "https://registry.docker-cn.com",
    "https://docker.nju.edu.cn",
    "https://registry.cn-hangzhou.aliyuncs.com",
    "https://mirror.ccs.tencentyun.com",
    "https://05f073ad3c0010ea0f4bc00b7105ec20.mirror.swr.myhuaweicloud.com",
    "http://hub-mirror.c.163.com",
    "http://f1361db2.m.daocloud.io"
  ],
  "insecure-registries": ["harbor01.crushlinux.com","harbor02.crushlinux.com","nginx-proxy.crushlinux.com"]
}
EOF

systemctl daemon-reload
systemctl enable --now docker

scp harbor01:/etc/docker/daemon.json /etc/docker/
systemctl daemon-reload
systemctl enable --now docker

二、安装harbor服务

1、harbor01操作

1.1 安装docker-compose和解压缩文件

ls -lh
chmod +x docker-compose-1.24.1
mv docker-compose-1.24.1 /usr/local/bin/docker-compose
docker-compose --version
tar xf harbor-offline-installer-v2.3.0.tgz -C /usr/local
scp -rq /usr/local/harbor harbor02:/usr/local
scp /usr/local/bin/docker-compose harbor02:/usr/local/bin

1.2 安装和启动harbor

cp /usr/local/harbor/{harbor.yml.tmpl,harbor.yml} 

sed -i -e '13,18 s/^/#/' \
    -e '/^hostname/s/reg.mydomain.com/harbor01.crushlinux.com/g' \
    /usr/local/harbor/harbor.yml
  
grep ^hostname /usr/local/harbor/harbor.yml
sed -n '13,18p' /usr/local/harbor/harbor.yml
grep harbor_admin_password /usr/local/harbor/harbor.yml
sh /usr/local/harbor/install.sh --with-trivy &>install.txt
docker-compose -f /usr/local/harbor/docker-compose.yml ps

2、harbor02操作

1.2 安装和启动harbor

docker-compose --version
cp /usr/local/harbor/{harbor.yml.tmpl,harbor.yml} 

sed -i -e '13,18 s/^/#/' \
    -e '/^hostname/s/reg.mydomain.com/harbor02.crushlinux.com/g' \
    /usr/local/harbor/harbor.yml
  
grep ^hostname /usr/local/harbor/harbor.yml
sed -n '13,18p' /usr/local/harbor/harbor.yml
grep harbor_admin_password /usr/local/harbor/harbor.yml
sh /usr/local/harbor/install.sh --with-trivy &>install.txt
docker-compose -f /usr/local/harbor/docker-compose.yml ps

三、安装nginx服务

yum install -y nginx

四、nginx配置文件报错

1、报错1

1.1 upstream位置不对

cp -a /etc/nginx/nginx.conf{,.bak}

vim /etc/nginx/nginx.conf
...
upstream harbor_pool {
    server harbor01.crushlinux.com weight=1 max_fail=3 fail_timeout=10s;
    server harbor02.crushlinux.com weight=1 max_fail=3 fail_timeout=10s;
}
...
http {
    ...
}
server {
    listen        80 default_server;
    server_name   nginx-proxy.crushlinux.com;
    ...
    location / {
        proxy_pass http://harbor_pool;  
    }
}
...

grep -A10 upstream /etc/nginx/nginx.conf
grep -A10 default_server /etc/nginx/nginx.conf
nginx -t

1.2 解决方法

vim /etc/nginx/nginx.conf
...
http {
    ...
    upstream harbor_pool {
        server harbor01.crushlinux.com weight=1 max_fail=3 fail_timeout=10s;
        server harbor02.crushlinux.com weight=1 max_fail=3 fail_timeout=10s;
    }
}
server {
    listen        80 default_server;
    server_name   nginx-proxy.crushlinux.com
    ...
    location / {
        proxy_pass http://harbor_pool;  
    }
}
...

grep -A15 upstream /etc/nginx/nginx.conf

2、报错2

2.1 max_fail单词拼错,应为max_fails

nginx -t
grep max_fail /etc/nginx/nginx.conf

2.1 解决方法

sed -i 's/max_fail/max_fails/g' /etc/nginx/nginx.conf
grep max_fails /etc/nginx/nginx.conf

3、报错3

3.1 无法解析域名

nginx -t
cat /etc/hosts

3.2 解决方法

scp 10.4.7.11:/etc/hosts /etc/
cat /etc/hosts
nginx -t
systemctl enable --now nginx
netstat -lntup |grep 80

4、报错4

4.1 使用nginx-proxy.crushlinux.com无法登录

docker login -uadmin -pHarbor12345 nginx-proxy.crushlinux.com

4.2 解决方法

grep -A1 proxy_pass /etc/nginx/nginx.conf
sed -i '/proxy_pass/a\            proxy_set_header Host $Host;' /etc/nginx/nginx.conf
grep -A1 proxy_pass /etc/nginx/nginx.conf
nginx -s reload
docker login -uadmin -pHarbor12345 nginx-proxy.crushlinux.com

5、报错5

5.1 使用nginx-proxy.crushlinux.com登录异常,如上

docker login -uadmin -pHarbor12345 nginx-proxy.crushlinux.com

5.2 解决方法

grep -A3 upstream /etc/nginx/nginx.conf
sed -i '/upstream/a\        ip_hash;' /etc/nginx/nginx.conf
grep -A3 upstream /etc/nginx/nginx.conf
nginx -s reload
docker login -uadmin -pHarbor12345 nginx-proxy.crushlinux.com

五、安装dns服务

1、安装dns服务

 yum install -y bind*

2、配置named.conf等文件

cat >/var/named/crushlinux.com <<'eof'
$TTL 86400
@       SOA     crushlinux.com. admin.crushlinux.com.   (
                20241223
                3H
                15M
                1W
                1D
)
        IN      NS      ns.crushlinux.com.
ns              IN      A       10.4.7.11
harbor01        IN      A       10.4.7.11
harbor02        IN      A       10.4.7.12
nginx-proxy     IN      A       10.4.7.13
eof

cat >/etc/named.conf <<'eof'
options {
    directory    "/var/named";
};

zone "." IN {
    type hint;
    file "named.ca";
};

zone "crushlinux.com" IN {
    type master;
    file "crushlinux.com";
};
eof

3、检测配置文件和启动服务

named-checkconf -z /etc/named.conf
named-checkzone crushlinux.com /var/named/crushlinux.com
systemctl enable --now named
netstat -lntup |grep 53

4、修改DNS服务地址进行测试

grep DNS /etc/sysconfig/network-scripts/ifcfg-eth0
sed -i 's/8.8.8.8/10.4.7.13/g' /etc/sysconfig/network-scripts/ifcfg-eth0
grep DNS !$
systemctl restart network
cat /etc/resolv.conf 
nslookup harbor01.crushlinux.com

六、Harbor仓库的复制与同步

1、配置DNS服务

sed -i 's/8.8.8.8/10.4.7.13/g' /etc/sysconfig/network-scripts/ifcfg-eth0
grep DNS !$
systemctl restart network
cat /etc/resolv.conf 

2、配置Windows本地hosts文件

3、进行测试,连接成功即可

<think>好的,我需要帮助用户配置Nginx以支持playEdu平台。根据用户提供的引用内容,特别是引用[1]和引用[2],我需要整理出相关的步骤。 首先,引用[1]提到Nginx支持FLV和MP4的模块,比如nginx-rtmp-module,这可能与流媒体相关。但用户的问题是关于playEdu的配置,可能需要基本的反向代理设置。引用[2]给出了playEdu的官网和GitHub,可能需要查看官方档是否有Nginx配置的指导。 用户提供的引用[1]中有编译Nginx时添加模块的示例,比如--with-http_flv_module,这可能不是playEud必需的,但需要确认playEdu是否有特定需求。比如,如果playEdu需要处理视频流,可能需要这些模块,否则可能只需要常规的反向代理配置。 接下来,引用[3]和[4]涉及Docker和容器配置,可能与部署环境相关。用户可能是在Docker环境中运行Nginx和playEdu,所以可能需要考虑容器化的配置步骤。 首先,我应该检查playEdu的官方档(引用[2]的GitHub链接)是否有Nginx配置的说明。假设官方档推荐使用反向代理,那么标准的配置步骤可能包括设置代理传递到playEdu的应用服务器,比如Tomcat某个后端服务。 此外,可能需要配置SSL/TLS,启用HTTPS,设置静态资源缓存等。如果playEdu有特定的路由规则需要WebSocket支持,Nginx配置中需要包含相应的location块和proxy_set_header指令。 用户提到的引用[1]中的模块编译过程可能涉及处理视频流,但如果playEdu不需要这些,可能可以忽略。但为了全面性,可能需要提及如何处理静态文件、代理设置以及可能的流媒体需求。 总结步骤可能包括: 1. 安装Nginx并确保必要的模块(如SSL、HTTP2)已启用。 2. 配置反向代理,将请求转发到playEdu的后端服务。 3. 配置SSL证书(如果使用HTTPS)。 4. 处理静态文件,设置缓存策略。 5. 根据playEdu的需求调整其他参数,如上传文件大小限制等。 需要验证这些步骤是否符合用户提供的引用内容,特别是引用[1]中的模块是否必要,者是否有其他特定模块需要加载。此外,引用[3]中的Docker镜像推送可能涉及将配置好的Nginx打包成镜像,方便部署。 可能的问题包括编译Nginx时模块添加错误,如引用[1]中提到的注释掉部分代码以避免编译错误。如果用户需要自定义模块,可能需要指导如何处理这些编译问题。 最后,生成相关问题,比如如何优化Nginx配置、如何启用SSL、如何处理静态资源等。</think>以下是配置Nginx支持playEdu平台的步骤指南: ### 一、基础环境准备 1. **安装依赖** 确保系统已安装编译工具链: ```bash yum install -y gcc pcre-devel openssl-devel zlib-devel ``` 2. **获取Nginx源码** 下载并解压Nginx源码包,建议使用1.20.x以上版本。 --- ### 二、编译Nginx并添加必要模块 根据引用[1],若需流媒体支持(如视频课程功能),需添加以下模块: ```bash ./configure \ --with-http_ssl_module \ --with-http_v2_module \ --with-http_flv_module \ --with-http_mp4_module \ --add-module=/path/to/nginx-rtmp-module ``` 若编译报错,按引用[1]方法修改`nginx_mod_h264_streaming`源码文件后重新编译。 --- ### 三、反向代理配置Nginx配置文件中添加以下内容(假设playEdu后端运行在`127.0.0.1:8080`): ```nginx server { listen 80; server_name playedu.example.com; # 静态资源缓存配置 location /static { alias /path/to/playEdu/static; expires 7d; } # 反向代理核心配置 location / { proxy_pass http://127.0.0.1:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # WebSocket支持(若需要) proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } } ``` --- ### 四、HTTPS强化配置(推荐) 1. **申请SSL证书** 使用Let's Encrypt商业CA获取证书。 2. **配置SSL参数** ```nginx server { listen 443 ssl http2; ssl_certificate /etc/ssl/certs/playEdu.crt; ssl_certificate_key /etc/ssl/private/playEdu.key; # 启用TLS1.3 ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256; # HTTP强制跳转HTTPS if ($scheme = http) { return 301 https://$server_name$request_uri; } } ``` --- ### 五、容器化部署(可选) 按引用[3]方法构建Docker镜像: 1. 通过Dockerfile定制包含Nginx和playEdu的镜像 2. 推送至私有仓库: ```bash docker commit playEdu_nginx your_registry/playEdu:V1 docker push your_registry/playEdu:V1 ``` --- ### 六、验证配置 ```bash nginx -t # 检查配置语法 systemctl reload nginx # 重载配置 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MineGi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值