麒麟系统信创改造

在这里插入图片描述

📃个人主页:编程的一拳超人

⛺️ 欢迎关注:👍点赞 👂🏽留言 😍收藏 💞 💞 💞

于高山之巅,方见大河奔涌;于群峰之上,更觉长风浩荡。 ——《人民日报》


一、查看操作系统架构下载相应的依赖,压缩包

1、查看Linux系统架构、CPU

在Linux系统中,查看系统架构和CPU信息的命令有几个常用的:

(1)uname -m

这个命令用于显示机器的硬件名称,也就是机器架构的简写。比如,x86_64 表示64位的x86架构,i686 或 i386 表示32位的x86架构。

(2)lscpu

lscpu 命令显示CPU架构信息,包括CPU的数量、每个CPU的核心数、线程数、每个核心的架构(如x86_64)、CPU的型号、CPU的运行速度等信息。这是一个非常全面的查看CPU相关信息的命令。

(3)cat /proc/cpuinfo

这个命令会显示CPU的详细信息,包括CPU型号、制造商、主频、每个CPU的缓存大小、CPU支持的技术(如虚拟化技术)等。这个命令的输出信息较多,包含了CPU的详细规格。

(4)arch

arch 命令和 uname -m 类似,也是用来显示机器的架构。不过,arch 命令的输出通常更简洁,直接显示架构名称,如 x86_64。

(5)getconf LONG_BIT

这个命令用于显示当前系统的位数,即32位(32)或64位(64)。虽然这不是直接查看CPU架构的命令,但它提供了关于系统位数的重要信息,有助于理解系统架构。

(6)dmidecode

dmidecode 命令用于查看硬件系统部件的详细信息,包括BIOS、系统、主板、处理器、内存、缓存等。对于查看CPU的详细信息(如制造商、序列号等),这个命令非常有用。不过,由于 dmidecode 需要root权限来运行,因此使用前可能需要添加 sudo。

2、根据Linux系统架构、CPU的差异进行下载相关依赖,看第二项

在这里插入图片描述

[root@sq3403 ~]# uname -a
Linux sq3403.novalocal 4.19.90-17.ky10.aarch64 #1 SMP Sun Jun 28 14:27:40 CST 2020 aarch64 aarch64 aarch64 GNU/Linux

在这里插入图片描述

二、以下是根据本系统的aarch64为例部署安装(完全离线安装)

1、安装JDK的两步:解压、配置环境变量(vi /etc/profile)

(1)解压到指定文件夹

路径位于:/usr/local/java/jdk1.8.0_411

(2)修改配置文件:vi /etc/profile

环境变量的配置

JAVA_HOME=/usr/local/java/jdk1.8.0_411
export JRE_HOME=${JAVA_HOME}/jre 
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

在这里插入图片描述

2、安装Nginx:由于是离线安装,需要在网上下载后相应的依赖包

在这里插入图片描述

(1)下载依赖

(2)安装依赖

  • 将三个依赖全部解压。
  • ①进入解压后的openssl-3.0.14的文件夹内,右键打开终端,然后执行以下命令。
# 桌面版系统需要执行这一行sudo su,服务器版系统不需要
sudo su
./config && make && make install

在这里插入图片描述

  • ②进入解压后的pcre2-10.40的文件夹内,右键打开终端,然后执行以下命令
#桌面版系统需要执行这一行sudo su,服务器版系统不需要
sudo su
./configure && make && make install
  • ③进入解压后的zlib-1.2.12.的文件夹内,右键打开终端,然后执行以下命令
#桌面版系统需要执行这一行sudo su,服务器版系统不需要
sudo su
./configure && make && make install

(3)安装Nginx

将上面依赖安装完成后在进行操作。
将上面准备的nginx-1.24.0解压,然后进入解压后的文件夹内。右键打开终端,执行以下命令

#桌面版系统需要执行这一行sudo su,服务器版系统不需要
sudo su
./configure && make && make install

(4)配置服务

①到根目录(文件系统里)下/usr/lib/systemd/system文件夹里新建nginx.service文件或修改现有的。

[Unit]
Description=nginx service
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
PrivateTmp=true

[Install]
WantedBy=multi-user.target

②在终端以下命令,刷新服务配置。
systemctl daemon-reload

3、服务操作

(1)启动nginx服务

  • 打开终端执行以下命令。
systemctl start nginx.service

(2)停止nginx服务

  • 打开终端执行以下命令。
systemctl stop nginx.service

(3)查看nginx状态

  • 查看nginx状态
  • 打开终端执行以下命令。
systemctl status nginx.service

(4)负载均衡配置

配置完成需要重启

(5)更换文件

  • 将上面准备的nginx.conf文件(下面有完整示例)复制到根目录(文件系统里)下/usr/local/nginx/conf文件夹里,替换掉原有的。
  • 然后重新启动nginx服务

(6)文件配置说明

以下都是nginx.conf里的配置参数说明,由于名称有重复的,用层级代表参数在某个参数的括号里

  • worker_processes:CPU核心数默认为1。可以设置为4,调高就行
    • events:
  • worker_connections:允许同时建立外部连接的数量。可以调整为100000(10万)
  • http
    • upstream:设置Tomcat服务地址。括号里可以增加多个server

    • server:一个 server 代表一个Tomcat服务地址。组成是Tomcat的地址跟端口号,不用带项目名称。根据示例按照需要增加server。

  • server :
    • listen:设置监听的端口。如果检测站配置的接口地址中是8080,这里就修改成8080。(注意不要与Tomcat端口重复,否则起不来)
    • server_name:服务名称。可以修改成实际IP

以下是完整配置(去掉了多余的)

worker_processes  8; #CPU核心数默认为1。可以设置为4,调高就行
events {
    worker_connections  102400;#允许同时建立外部连接的数量。可以调整为`100000`(10万)
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    map $time_iso8601 $logdate{
        '~^(?<ymd>\d{4}-\d{2}-\d{2})' $ymd;
        default 'date-not-found';
    }
    access_log logs/access-$logdate.log;
    sendfile        on;
    keepalive_timeout  10;
    upstream localtomcat{
            ip_hash;
            server 127.0.0.1:8070 max_fails=2 fail_timeout=5s weight=1;#weight 是配置服务器权重 ,越大则分配概率越大
            server 127.0.0.1:8090 max_fails=3 fail_timeout=5s weight=1;
    }
    server {
        listen       8080; #默认监听80端口,修改为8080
        server_name  localhost;
        location /vepts {
            proxy_pass http://localtomcat;
            proxy_http_version 1.1;
            proxy_set_header Connection "";
            # nginx非80端口处理 
            proxy_set_header        Host $host:$server_port; 
            # 获取真实IP 
            proxy_set_header        X-Real-IP $remote_addr; 
            # 获取代理者的真实ip 
            proxy_set_header       X-Forwarded-For   $proxy_add_x_forwarded_for; 
            # 解决getScheme,isSecure,sendRedirect
            proxy_set_header X-Forwarded-Scheme  $scheme; 
            client_max_body_size    10m; 
            client_body_buffer_size 128k; 
            proxy_connect_timeout   1; 
            proxy_send_timeout      30; 
            proxy_read_timeout      60; 
            proxy_buffer_size       4k; 
            proxy_buffers           4 32k; 
            proxy_busy_buffers_size 64k; 
            proxy_temp_file_write_size 64k;
        }
    
        location ~* \.(gif|jpg|jpeg|png|css|js|ico)$ {
            proxy_pass http://localtomcat;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}
### 关于改造 IT 设计方案的最佳实践 #### 1. 坚守核心设计原则 在进行改造时,需遵循以下设计原则以确保系统的稳定性和适应性。这些原则包括但不限于满足业务需求、采用相对成熟的主流技术、合理布局多技术栈以及构建广泛的兼容性生态体系[^1]。 #### 2. 技术选型策略 为了更好地推进改造,建议采取如下技术选型策略:优先参考同行业的成功案例;确保所选用的技术方向符合当前及未来的发展趋势;紧密贴合企业自身的科技发展规划;集中资源搭建通用性强的基础架构;同时,在支持全栈国产化的过程中预留足够的扩展空间。 #### 3. 实践案例——全栈云建设 通过具体实例展示如何规划并执行完整的架构转型计划尤为重要。例如某银行实施了全面覆盖基础设施层至应用服务层的全栈云计算环境部署工作,这一过程不仅验证了前期理论研究的有效性,也为其他金融机构提供了宝贵的实战经验分享[^1]。 #### 4. 工具与平台的选择 对于大型复杂项目而言,高效的项目管理工具不可或缺。像易趋(easytrack),它已被证明能够有效支撑金融领域内的多个重要机构完成其息化建设项目,并因其卓越表现获得了业内认可成为标杆型企业之一[^2]。因此,在选择适合自己的项目管理系统时可以考虑此类经过市场检验的产品。 #### 5. 替代传统技术路径的研究 针对特定场景下的技术新尝试也是值得鼓励的方向。比如利用 NVMe over RoCE 组网来取代传统的 FC-SAN 架构就是一个很好的例子。这表明即使是在高度依赖专有硬件设备的传统行业中也存在实现更高程度自主可控的可能性,只要我们愿意投入精力去深入挖掘潜在替代方案的价值所在[^3]。 #### 6. 测试环节的重要性 任何成功的改造都离不开严谨细致的测试流程安排。由于每个项目的具体情况都有所区别,所以在制定具体的测试步骤之前应当仔细评估目标系统特性及其特殊要求,进而挑选最合适的检测手段和技术辅助工具来进行全方位质量保障活动[^4]。 ```python def test_system(system_spec, project_requirements): """ A function to simulate the testing process of a system based on its specifications and requirements. Args: system_spec (dict): Specifications of the system being tested. project_requirements (list): List of specific needs or conditions that must be met. Returns: bool: True if all tests pass successfully; False otherwise. """ results = [] for requirement in project_requirements: result = evaluate_requirement(requirement, system_spec) results.append(result) return all(results) def evaluate_requirement(requirement, spec): # Placeholder logic for evaluating each individual requirement against given specs return True # Simplified assumption here ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

编程的一拳超人

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

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

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

打赏作者

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

抵扣说明:

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

余额充值