CentOS安装Nginx1.2x.x

CentOS安装Nginx1.2x.x及配置

一、下载

在这里插入图片描述

上传到服务器 我的存放目录是 /usr/download
在这里插入图片描述

二、解压

cd /usr/download

tar -xvf nginx-1.26.0.tar.gz

三、安装插件

yum -y install gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel gcc-c++ wget

四、配置

cd /usr/download/nginx-1.26.0

./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module

在这里插入图片描述

五、编译安装

make -j2 && make install

在这里插入图片描述

六、修改配置

cd /usr/local/nginx/conf

#创建配置文件目录
mkdir confs

#备份
cp nginx.conf nginx.conf.bak

vim nginx.conf

将下面的内容添加到http模块中

#引用其它配置文件
include confs/*.conf;
#防止nginx中文显示乱码的问题
charset utf-8;
charset_types text/css text/plain application/json application/javascript;

在这里插入图片描述

七、启动

  • 开放端口
#开放81端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
#重新加载防火墙
firewall-cmd --reload

阿里云服务器,安全组配置需开放80端口

  • 启动
#进入nginx的执行目录
cd /usr/local/nginx/sbin/ 

#相关命令
./nginx   			#启动nginx
./nginx -s stop 	#关闭nginx
./nginx -s reload	#重启nginx、重新载入配置文件

浏览器输入IP地址
在这里插入图片描述

八、编写配置

1.域名代理配置

需要有域名证书
由于我没有域名证书,这里就写个样例,有证书的.txt换成.conf,按照内容对应修改即可

cd /usr/local/nginx/conf/confs

## 
#域名证书的配置名称自定义,这里我起名domain
vi domain.txt

内容如下

server {
	#监控端口
	listen 80; 
	#将domain_name修改成证书绑定的域名,例如:www.example.com
	server_name domain_name; 
	#将所有的http请求通过rewrite重定向到https
	rewrite ^(.*)$ https://$host$1 permanent; 

	location / {
		#将static_directory替换成静态文件的目录
		root static_directory; 
		index index.html index.htm;
	}
}

server {
	#ssl协议访问端口默认为443
	listen 443 ssl; 
	#将domain_name修改成证书绑定的域名,例如:www.example.com
	server_name domain_name; 
	
	index index.html index.htm;
	#将name.pem替换成你的证书名称,证书放在conf目录下
	ssl_certificate name.pem; 
	#将name.key替换成你的证书密钥名称,证书密钥要跟证书在同一目录下
	ssl_certificate_key name.key; 
	ssl_session_timeout 5m;
	#使用此加密套件
	ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; 
	#使用该协议进行配置
	ssl_protocols TLSv1 TLSv1.1 TLSv1.2; 
	ssl_prefer_server_ciphers on;
	client_max_body_size 1000m;

	location / {
		#将static_directory替换成静态文件的目录
		root static_directory; 
        	index index.html index.htm;
		try_files $uri $uri/ /index.html =404;
   	}
	#以下
	location /micro-service-name { 
		#micro-service-name:项目中的微服务名称
		#访问https://domian_name/micro-service-name会被代理到指定微服务端口,假设微服务端口为8090
		proxy_pass http://localhost:8090;
     }
}

记得防火墙开放443端口 和其它配置相关的端口,例如8090

2.代理分流配置(负载均衡)

即访问指定的端口/路径,会被代理配置的机器列表中的一个,同样的写个样例,偷懒不想再配置另外一台机器

vi /usr/local/nginx/conf/confs/upstream.txt

内容如下

#xxx自定义路由 这里定义什么 下面就得跟着一样
upstream xxx { 
	#动态的选取其中连接数最少的服务器来处理当前请求
	least_conn;
		
	server IP1; #机器1IP地址
	server IP2; #机器2IP地址
	server IP3; #机器3IP地址
	#........
}

server {
	#port 换成要代理的端口号
	listen port; 
	server_name  localhost;
	
	location /upstream {
		# 本机ip:port/upstream 换代理到http://IP1 或者http://IP2 或者http://IP3
		proxy_pass http://xxx;  
	}
}

记得防火墙开放相关端口

3.编写demo.conf

vi /usr/local/nginx/conf/confs/demo.conf

内容如下

server {
	listen 8801; #监控端口
	server_name  localhost; #服务名相同 端口必须不同

	location /domain.txt {
		alias conf/confs/domain.txt;
	}

	location /upstream.txt {
		alias conf/confs/upstream.txt;
	}
}

记得防火墙开放相关端口
加载demo.conf配置文件

cd /usr/local/nginx/sbin

./nginx -s reload

浏览器访问 IP:8801/domain.txt
在这里插入图片描述
浏览器访问 IP:8801/upstream.txt
在这里插入图片描述

<think> 我们正在处理用户关于在CentOS 8上安装Nginx的脚本请求。根据之前的对话,用户遇到了在CentOS安装Apache时包名错误的问题(将httpd误认为apache2),现在用户想要在CentOS 8上安装Nginx的脚本。 注意:CentOS 8已经于2021年底停止维护,官方源不可用,因此我们需要配置备用仓库(如EPEL或Nginx官方仓库)来安装Nginx。 根据引用[2]的内容,我们可以使用Nginx官方提供的仓库来安装。但需要注意的是,引用[2]中给出的是CentOS的仓库配置(使用$releasever变量),在CentOS 8中,由于官方源停止维护,直接使用可能会出现问题。因此,我们可以手动指定仓库的baseurl或者使用EPEL仓库。 另外,引用[3]和[4]提到了服务脚本的编写,这是因为通过源码安装Nginx默认没有systemd服务文件,而通过仓库安装的则会有。 用户要求提供一个安装脚本,因此我们需要编写一个在CentOS 8上安装Nginx的脚本。 我们将采用以下步骤: 1. 配置Nginx的官方仓库(因为CentOS 8官方源停止,我们可以使用Nginx官方提供的CentOS 8仓库,它仍然可用)。 2. 安装Nginx。 3. 启动并设置开机自启。 另一种方式是使用源码安装(如引用[1]和[3]),但用户要求的是安装脚本,且源码安装较为复杂,所以这里我们优先采用仓库安装。 但是,由于CentOS 8官方源已经停止,我们需要先修复仓库问题。我们可以使用`centos-linux-release`包替换为`centos-stream-release`,或者使用仍然在维护的镜像源(如阿里云、腾讯云等)来替换基础仓库。同时,我们还需要安装EPEL仓库。 这里我们采用两种方法之一(在脚本中): 方法A:转换为CentOS Stream 8(继续维护的版本)并安装Nginx 方法B:使用Vault仓库(即官方历史归档仓库)作为基础源,并安装EPEL,然后安装Nginx(来自EPEL或Nginx官方仓库) 由于用户可能希望使用Nginx官方提供的最新版本,所以我们选择配置Nginx官方仓库,并同时配置Vault仓库作为基础源。 具体步骤: 1. 备份原有仓库配置 2. 将原有的CentOS-Base.repo替换为Vault仓库的配置(指向归档镜像) 3. 安装EPEL仓库(从Vault仓库安装) 4. 添加Nginx官方仓库 5. 安装Nginx 但是,为了简化,我们可以直接使用Nginx官方仓库,它不依赖于系统的基础仓库(除了一些基础依赖包)。因此,我们可以先安装EPEL(从仍在维护的镜像站下载)然后安装Nginx官方仓库。 这里我们采用以下方案: 步骤: 1. 安装EPEL仓库(从阿里云镜像下载) sudo dnf install -y https://mirrors.aliyun.com/epel/epel-release-latest-8.noarch.rpm 2. 添加Nginx官方仓库(稳定版) sudo rpm -ivh http://nginx.org/packages/centos/8/noarch/RPMS/nginx-release-centos-8-0.el8.ngx.noarch.rpm 3. 安装Nginx sudo dnf install -y nginx 4. 启动并设置开机自启 注意:如果第二步的RPM包无法下载(因为Nginx官方仓库可能更新了链接),我们可以使用另一种方式:创建仓库文件。 我们将采用创建仓库文件的方式,因为直接下载RPM包可能在将来失效。 参考引用[2]中的仓库配置,我们可以手动创建nginx.repo文件。 因此,脚本内容如下: </think> 以下是针对 CentOS 8 系统的 Nginx 自动化安装脚本及详细说明: ```bash #!/bin/bash # ================================================== # CentOS 8 Nginx 一键安装脚本 # 功能:自动配置仓库、安装最新稳定版Nginx并配置基础环境 # 版本:v1.2 # ================================================== # 配置Nginx官方仓库 echo "[+] 配置Nginx官方仓库..." cat > /etc/yum.repos.d/nginx.repo <<EOF [nginx-stable] name=nginx stable repo baseurl=https://nginx.org/packages/centos/8/\$basearch/ gpgcheck=1 enabled=1 gpgkey=https://nginx.org/keys/nginx_signing.key module_hotfixes=true EOF # 安装必要依赖 echo "[+] 安装系统依赖..." dnf install -y epel-release dnf install -y yum-utils # 启用PowerTools仓库(CentOS 8必需) dnf config-manager --set-enabled PowerTools # 安装Nginx echo "[+] 安装Nginx服务..." dnf install -y nginx # 配置防火墙 echo "[+] 配置防火墙规则..." firewall-cmd --permanent --add-service=http firewall-cmd --permanent --add-service=https firewall-cmd --reload # 创建配置文件目录结构 echo "[+] 初始化配置目录..." mkdir -p /etc/nginx/sites-available mkdir -p /etc/nginx/sites-enabled echo "include /etc/nginx/sites-enabled/*.conf;" >> /etc/nginx/nginx.conf # 生成默认站点配置模板 cat > /etc/nginx/sites-available/default.conf <<EOF server { listen 80; server_name localhost; root /usr/share/nginx/html; location / { index index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } } EOF # 启用默认站点 ln -s /etc/nginx/sites-available/default.conf /etc/nginx/sites-enabled/ # 启动服务并设置开机自启 echo "[+] 启动Nginx服务..." systemctl enable --now nginx # 验证安装 echo "=============================================" nginx -v echo "Nginx状态: $(systemctl is-active nginx)" echo "监听端口: $(ss -tulpn | grep nginx)" echo "=============================================" echo "安装完成!访问地址: http://$(curl -s icanhazip.com)" ``` ### 使用说明 1. **保存脚本**: ```bash vi nginx-install.sh chmod +x nginx-install.sh ``` 2. **执行安装**: ```bash ./nginx-install.sh ``` 3. **关键目录说明**: ```bash # 配置文件 /etc/nginx/nginx.conf # 主配置文件 /etc/nginx/sites-available/ # 可用站点配置 /etc/nginx/sites-enabled/ # 启用站点配置(软链接) # 网站根目录 /usr/share/nginx/html ``` 4. **常用命令**: ```bash systemctl start nginx # 启动 systemctl stop nginx # 停止 nginx -t # 检查配置语法 systemctl reload nginx # 重载配置 ``` ### 脚本特性说明 1. **自动仓库配置** 通过创建`/etc/yum.repos.d/nginx.repo`接入Nginx官方源[^2],确保获取最新稳定版 2. **站点模块化管理** 启用`sites-available`和`sites-enabled`目录结构,便于多站点管理[^5] 3. **防火墙自动化** 自动放行HTTP/HTTPS端口(80/443)并重载防火墙 4. **服务集成** 自动注册systemd服务并设置开机自启[^3][^4] 5. **环境验证** 安装后自动输出Nginx版本、服务状态和监听端口 ### 注意事项 1. **CentOS 8特殊处理** 脚本已包含`dnf config-manager --set-enabled PowerTools`命令,解决CentOS 8特有依赖问题 2. **SELinux影响** 若启用SELinux,需额外执行: ```bash setsebool -P httpd_can_network_connect 1 ``` 3. **HTTPS扩展** 添加SSL支持可参考: ```nginx listen 443 ssl; ssl_certificate /path/to/cert.pem; ssl_certificate_key /path/to/key.pem; ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Linrp

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

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

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

打赏作者

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

抵扣说明:

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

余额充值