安全运维-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
相关推荐
Hi202402172 小时前
消除FFmpeg库的SONAME依赖
linux·ffmpeg
电棍2332 小时前
在docker a100云服务器运行vulkan->sapien->robotwin的经验(报错segmentation fault)
运维·docker·容器
gfanbei3 小时前
ARM V8 Cortex R52 上电运行在什么状态?— Deepseek 解答
linux·arm开发·嵌入式硬件
liu****4 小时前
14.日志封装和线程池封装
linux·开发语言·c++
云动雨颤4 小时前
访问宝塔面板安全入口404?SSH命令轻松解决
linux·运维·安全
NPE~4 小时前
[Linux命令分享]日志查看 — — less
linux·运维·less·常用命令·日志查看
赖small强4 小时前
Linux 系统调用在 ARM 上的实现与工作机制
linux·系统调用·内核态·用户态·上下文切换
面向星辰5 小时前
扣子开始节点和结束节点
java·服务器·前端
一匹电信狗5 小时前
【C++】封装红黑树实现map和set容器(详解)
服务器·c++·算法·leetcode·小程序·stl·visual studio
大锦终5 小时前
【Linux】网络层与数据链路层中重点介绍
linux·运维·服务器·网络