安全运维-Nginx

1.1.在线安装

在银河麒麟操作系统上安装 Nginx 有多种方式,最常见的是通过包管理器 yum 进行安装。这种方式简单快捷,适合大多数用户。

在安装之前,建议先更新系统的软件包列表,以确保安装的软件包是最新版本:

复制代码
sudo yum update

注意:这里更新的软件包较多,时间较长。

使用以下命令安装 Nginx

复制代码
sudo yum install -y nginx

安装完成后,启动 Nginx 服务:

复制代码
# 为了确保 Nginx 在系统启动时自动运行,可以设置开机自启
sudo systemctl enable nginx
# 启动 Nginx 服务
sudo systemctl start nginx
sudo systemctl status nginx

将nginx默认访问端口80进入到防火墙中。

复制代码
firewall-cmd --zone=public --add-port=80/tcp --permanent &&
firewall-cmd --reload && 
firewall-cmd --list-port

打开浏览器,访问服务器的 IP 地址,如果看到 Nginx 的默认欢迎页面,则说明安装成功。

1.2.源码编译安装

如果需要自定义配置或安装特定版本的 Nginx,可以使用源码编译的方式。

在编译 Nginx 之前,需要安装一些必要的编译工具和库:

复制代码
sudo yum install -y gcc gcc-c++ make pcre pcre-devel zlib zlib-devel openssl openssl-devel

Nginx 官方网站下载源码包:

复制代码
wget http://nginx.org/download/nginx-1.26.2.tar.gz

解压下载的源码包:

复制代码
# 解压nginx
tar -zxvf nginx-1.26.2.tar.gz
# 进入nginx目录
cd nginx-1.26.2

使用 ./configure 命令配置 Nginx 的编译选项。例如,启用 SSL 支持和状态模块:

复制代码
./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module

编译并安装 Nginx

复制代码
make && make install

启动 Nginx 服务:

复制代码
/usr/local/nginx/sbin/nginx

打开浏览器,访问服务器的 IP 地址,如果看到 Nginx 的默认欢迎页面,则说明安装成功。

2.项目部署

2.1.动静分离

SPA项目压缩并上传到/usr/nginx/html目录,再解压。

复制代码
# 创建目录
mkdir -p /usr/nginx/html
# 切换目录
cd /usr/nginx/html
# 上传SPA项目
rz dist.zip
# 解压
unzip dist.zip

修改nginx核心配置文件/etc/nginx/nginx.conf

复制代码
# 编辑conf.d文件
vim /etc/nginx/nginx.conf

并添加SPA项目访问映射规则。

复制代码
root         /usr/nginx/html;

location / {
    #该句代码是为解决history路由不能跳转的问题,在vue-router官网有介绍 
    try_files $uri $uri/  /index.html;
}

最后,重启nginx服务并访问SPA项目。

复制代码
# 重启nginx服务
systemctl restart nginx

2.2.反向代理

修改nginx核心配置文件/etc/nginx/nginx.conf,配置nginx反向代理。

复制代码
server {
    listen       80;
    server_name  www.zking.com;
    #charset koi8-r;
    #access_log  logs/host.access.log  main;
    location ^~ /edu/ {
    	proxy_pass http://127.0.0.1:8080/;
    }
}

proxy_pass说明是动态请求,需要进行转发,比如代理到Tomcat上。

切记,可以实时监控 nginx 日志来查看运行情况。

复制代码
# 切换到nginx的日志目录
cd /var/log/nginx/
# 查看日志信息
tail -f error.log
相关推荐
小二·1 分钟前
AI工程化实战《五》:私有化部署全栈指南——Qwen/Qwen-VL 本地化落地与生产级运维(万字深度长文)
运维·人工智能
叹了口丶气4 分钟前
CentOS 7编译Python3.10时,SystemError: <built-in function compile> returned NULL
linux·运维·centos
Lueeee.9 分钟前
FFMPEG输出模块初始化
linux·ffmpeg
知识分享小能手20 分钟前
Ubuntu入门学习教程,从入门到精通,Ubuntu 22.04的远程登录(6)
linux·学习·ubuntu
TimberWill28 分钟前
MinIO整合SpringBoot实现获取文件夹目录结构及文件内容
java·linux·springboot
@Mr Wang33 分钟前
云服务器之使用jupyter运行ipynb文件
服务器·python·jupyter·notebook
2401_8658548841 分钟前
服务器的windows和Linux系统有什么区别
linux·运维·服务器
IT199543 分钟前
MySQL运维笔记-一种数据定期备份的方法
运维·笔记·mysql
海域云-罗鹏1 小时前
企业服务器防黑客攻击:WAF防火墙部署全攻略
运维·服务器
云飞云共享云桌面1 小时前
SolidWorks服务器怎么实现研发软件多人共享、数据安全管理
java·linux·运维·服务器·数据库·自动化