安全运维-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 小时前
从零读懂RoCEv2数据包构造:从WQE到线缆上的完整旅程
服务器·网络·网络协议·rdma
小鹏linux2 小时前
Ubuntu 22.04 部署开源免费具有精美现代web页面的Casdoor账号管理系统
linux·前端·ubuntu·开源·堡垒机
在角落发呆3 小时前
Linux转发配置:解锁网络互联的核心密码
linux·运维·网络
齐潇宇3 小时前
Zabbix 7 概述与配置
linux·zabbix·监控告警
裴东青4 小时前
10-实战:RuoYi-Cloud的自动化发布
运维·ci/cd·自动化
江公望4 小时前
Ubuntu htop命令,10分钟讲清楚
linux·服务器
哎呦,帅小伙哦4 小时前
Linux 时间:从原子钟到 clock_gettime 的每一面
linux·运维·服务器
sxgzzn5 小时前
新能源场站数智化转型:基于数字孪生与AI的智慧运维管理平台解析
大数据·运维·人工智能
张小姐的猫5 小时前
【Linux】多线程 —— 线程互斥
linux·运维·服务器·c++
CodeMartain5 小时前
Dify Windows 原生部署(无 Docker、纯本地)
运维·docker·容器