安装nginx
安装依赖
yum -y install gcc gcc-c++ automake pcre pcre-devel zlib zlib-devel openssl-devel
centos安装报错
[root@localhost nginx-1.20.2]# yum -y install gcc gcc-c++ automake pcre pcre-devel zlib zlib-devel openssl-devel
CentOS Linux 8 - AppStream 59 B/s | 38 B 00:00
错误:为仓库 'appstream' 下载元数据失败 : Cannot prepare internal mirrorlist: No URLs in mirrorlist
CentOS Linux 8在2022年12月31日来到生命周期终点(End of Life,EoL)。即CentOS Linux 8操作系统版本结束了生命周期(EOL),Linux社区已不再维护该操作系统版本。所以原来的CentOS Linux 8的yum源也都失效了!最终导致此问题的产生。
解决方法
更改源,再试,使用简单操作
sed -i -e "s|mirrorlist=|#mirrorlist=|g" /etc/yum.repos.d/CentOS-*
sed -i -e "s|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g" /etc/yum.repos.d/CentOS-*
编译
# 编译
./configure
# 需要使用https执行指令
./configure --with-http_ssl_module
# 不需要使用https执行
./configure
nginx 默认路径/usr/local/nginx/conf
直接配置会报错
nginx: [emerg] "upstream" directive is not allowed here in /usr/local/nginx/./conf/nginx.conf:16
检查
[root@localhost nginx]# ./sbin/nginx -t
nginx: [emerg] unknown directive "stream" in /usr/local/nginx/conf/nginx.conf:17
nginx: configuration file /usr/local/nginx/conf/nginx.conf test failed
安装stream插件
# 先安装
yum -y install epel-release
yum -y install nginx-all-modules.noarch
然后在用nginx -t就好了
[root@k8s-node2 ~]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
转发配置,这里贴一个完整的配置,因为很多人就只贴一部分,花了不少时间,给小白参考。
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
# Load dynamic modules. See /usr/share/doc/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;
events {
worker_connections 1024;
}
stream {
upstream nginx_80 {
server xx.xx.xx.xx:80 max_fails=1 fail_timeout=10s;
}
#udp
upstream nginx_62014 {
server xx.xx.xx.xx:62014 max_fails=1 fail_timeout=10s;
}
server {
listen 80;
proxy_connect_timeout 5s;
proxy_timeout 10m;
proxy_pass nginx_80;
}
server {
listen 62014 udp;
proxy_connect_timeout 5s;
proxy_timeout 10m;
proxy_pass nginx_62014;
}
}
以上配置就做完了,直接启动就可以转发成功。