当前位置: 首页 > news >正文

分布式架构搭建博客网站

目录

  • 运行环境
  • 基础配置
  • 需求
  • 准备工作
    • 配置静态ip
    • 修改主机名及host映射
    • 开启防火墙
    • 时间同步
    • 配置免密ssh登录
  • 环境搭建
    • Server-Web端安装LNMP环境软件
    • Server-NFS-DNS端上传博客软件
    • Server-NFS-DNS端设置NFS共享
    • Server-Web设置
      • 挂载远程共享目录
      • nginx设置
      • 在数据库中创建数据库和用户
      • 重启数据库和http
      • 测试
    • 在Server-NFS-DNS端配置DNS
  • 实现(截图)

运行环境

主机主机名系统服务
192.168.160.137Server-WebLinuxWeb
192.168.160.138Server-NFS-DNSLinuxNFS/DNS

基础配置

  • 配置主机名
  • 开启防火墙并配置
  • 部分开启Selinux并配置
  • 服务器之间使用相同ntp.aliyun.com进行时间同步
  • 服务器之间实现SSH免密登录

需求

  • Server-NFS-DNS主机配置NFS服务器,将博客网站资源共享给Server-Web主机,Server-NFS-DNS主机配置DNS
  • Server-Web主机配置web服务,通过域名www.openlab.com可以访问到自建的博客网站

准备工作

恢复快照

配置静态ip

# 在192.168.160.137配置
[root@server ~]# nmcli c modify ens32 ipv4.method manual ipv4.addresses '192.168.160.137/24' ipv4.gateway '192.168.160.2' ipv4.dns '114.114.114.114'
[root@server ~]# nmcli c reload
[root@server ~]# nmcli c up ens32   # 注意在RHEL9系统中是ens160#在192.168.160.138配置
[root@node ~]# nmcli c modify ens32 ipv4.method manual ipv4.addresses '192.168.160.138/24' ipv4.gateway '192.168.160.2' ipv4.dns '114.114.114.114'
[root@node ~]# nmcli c reload
[root@node ~]# nmcli c up ens32

修改主机名及host映射

# 在192.168.160.137配置
[root@server ~]# hostnamectl set-hostname Server-Web
[root@server ~]# vim /etc/hosts
127.0.0.1   Server-Web
192.168.160.137 Server-Web
192.168.160.138 Server-NFS-DNS
[root@server ~]# reboot# 在192.168.160.138配置
[root@node ~]# hostnamectl  set-hostname Server-NFS-DNS
[root@node ~]# vim /etc/hosts
127.0.0.1   Server-NFS-DNS
192.168.160.137 Server-Web
192.168.160.138 Server-NFS-DNS
[root@node ~]# reboot

开启防火墙

# 在两台机子上操作
systemctl start firewalld
systemctl enable firewalld

时间同步

# 在两台机子上操作
vim /etc/chrony.conf     
server ntp.aliyun.com iburst   # 第三行修改
systemctl restart chronyd  #重启时间服务器
chronyc sources -v   # 查询是否同步成功
timedatectl status   # 同上

配置免密ssh登录

# 在192.168.160.137(Server-Web)配置
[root@Server-Web ~]# ssh-keygen -t rsa  #一路回车
[root@Server-Web ~]# ssh-copy-id 192.168.160.138  # 会有输入138主机密码的步骤
[root@Server-Web ~]# ssh 192.168.160.138
[root@Server-NFS-DNS ~]# exit# 在192.168.160.138(Server-NFS-DNS)配置
[root@Server-NFS-DNS ~]# ssh-keygen -t rsa
[root@Server-NFS-DNS ~]# ssh-copy-id 192.168.160.137
[root@Server-NFS-DNS ~]# ssh 192.168.160.137
[root@Server-Web ~]# exit

环境搭建

Server-Web端安装LNMP环境软件

[root@Server-Web ~]# yum install nginx mariadb-server php* -y

Server-NFS-DNS端上传博客软件

  • 网址:https://cn.wordpress.org/,下载后为zip压缩文件

  • 将wordpress上传到192.168.160.138(Server-NFS-DNS)端的/目录下

[root@Server-NFS-DNS ~]# cd /
[root@Server-NFS-DNS /]# ls
afs   etc    lost+found  proc  srv  var
bin   home   media       root  sys  wordpress-6.0.1-zh_CN.zip
boot  lib    mnt         run   tmp
dev   lib64  opt         sbin  usr
[root@Server-NFS-DNS /]# unzip wordpress-6.0.1-zh_CN.zip
[root@Server-NFS-DNS /]# cd wordpress
[root@Server-NFS-DNS wordpress]# ls

Server-NFS-DNS端设置NFS共享

  • 目的:将Server-NFS-DNS端的/wordpress目录共享到192.168.160.137(Server-Web)
[root@Server-NFS-DNS wordpress]# cd
[root@Server-NFS-DNS ~]# yum install rpcbind -y
[root@Server-NFS-DNS ~]# yum install nfs-utils -y[root@Server-NFS-DNS ~]# vim /etc/exports      #编辑配置文件
/wordpress 192.168.160.137(rw,sync,all_squash)  #添加[root@Server-NFS-DNS ~]# chmod -Rf 777 /wordpress
[root@Server-NFS-DNS ~]# cd /
[root@Server-NFS-DNS /]# ll     #可以查看一下是否777[root@Server-NFS-DNS ~]# firewall-cmd --permanent --zone public --add-service=mountd
[root@Server-NFS-DNS ~]# firewall-cmd --permanent --zone public --add-service=rpc-bind
[root@Server-NFS-DNS ~]# firewall-cmd --permanent --zone public --add-service=nfs
[root@Server-NFS-DNS ~]# firewall-cmd --reload#启动服务
[root@Server-NFS-DNS ~]# systemctl start rpcbind
[root@Server-NFS-DNS ~]# systemctl start nfs-server

Server-Web设置

挂载远程共享目录

[root@Server-Web ~]# yum install rpcbind -y[root@Server-Web ~]# yum install nfs-utils -y[root@Server-Web ~]# showmount -e 192.168.160.138  #查询[root@Server-Web ~]# mount -t nfs 192.168.160.138:/wordpress /wp # 挂载[root@Server-Web ~]# cd /wp[root@Server-Web wp]# ls # 查看目录文件

nginx设置

[root@Server-Web ~]# firewall-cmd --permanent --zone public --add-service=http
[root@Server-Web ~]# firewall-cmd --reload
[root@Server-Web ~]# vim /etc/nginx/nginx.conf  # 编辑nginx配置文件root         /wp;

在数据库中创建数据库和用户

[root@Server-Web ~]# systemctl start mariadb[root@Server-Web ~]# mysqlMariaDB [(none)]> create database wordpress;   #创建数据库,尾部有分号MariaDB [(none)]> create user 'test1'@'localhost' identified by '123456';   
# 第一个''为数据库账号,@后面的''内容为数据库可以登录的地址,1ocalhost意为只能本机登录。用户和密码与wordpress配置文件一样MariaDB [(none)]> grant all on wordpress.* to 'test1'@'localhost';MariaDB [(none)]> exit

重启数据库和http

[root@Server-Web ~]# systemctl restart mariadb
[root@Server-Web ~]# systemctl restart nginx

测试

  • 在Windows端输入192.168.160.137继续完成wordpress配置(邮箱必须设置)
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

在Server-NFS-DNS端配置DNS

  • 原则:www.openlab.com正向解析为192.168.160.137
  • 192.168.160.138端(Server-NFS-DNS)
  • 安装
[root@Server-NFS-DNS ~]# yum install bind -y[root@Server-NFS-DNS ~]# firewall-cmd --permanent --zone public --add-service=dns   #防火墙放行[root@Server-NFS-DNS ~]# firewall-cmd --reload[root@Server-NFS-DNS ~]# systemctl start named
  • 编辑主配置文件
[root@Server-NFS-DNS ~]# vim /etc/named.conf
# 第11 19行修改为any任意主机listen-on port 53 { any; };allow-query     { any; };
  • 修改区域配置文件,清空添加:
[root@Server-NFS-DNS ~]# vim /etc/named.rfc1912.zones
zone "openlab.com" IN {type master;file "openlab.com.zone";allow-update { none; };
};
  • 新建区域数据文件并配置解析
[root@Server-NFS-DNS ~]# cd /var/named
[root@Server-NFS-DNS named]# cp -a named.localhost openlab.com.zone
[root@Server-NFS-DNS named]# vim openlab.com.zone
$TTL 1D
@       IN SOA  openlab.com. admin.oplab.com. (0       ; serial1D      ; refresh1H      ; retry1W      ; expire3H )    ; minimumNS      ns.openlab.com.
ns      IN      A       192.168.160.137
www     IN      A       192.168.160.137
bbs     IN      A       192.168.160.137
  • 启动服务
[root@Server-NFS-DNS named]# systemctl restart named
  • 测试:
    192.168.160.137端(Server-Web)
  • 将Server-Web端的DNS改为192.168.48.131后并输入www.openlab.com域名访问
  • 第一种
[root@Server-Web ~]# nmcli con modify ens32 ipv4.dns '192.168.160.138'  [root@Server-Web ~]# nmcli con up ens32[root@Server-Web ~]# cat /etc/resolv.conf  
nameserver 192.168.160.138     # 查看确保其中有这个[root@Server-Web ~]# nslookup www.openlab.com  # 测试
Server:         192.168.160.138
Address:        192.168.160.138#53Name:   www.openlab.com
Address: 192.168.160.137
  • 第二种
#openeuler网络ens32配置地址
[root@Server-Web ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens32     # 将DNS改为192.168.160.138(Server-NFS-DNS)
[root@Server-Web ~]# nslookup www.openlab.com  # 测试
Server:         192.168.160.138
Address:        192.168.160.138#53Name:   www.openlab.com
Address: 192.168.160.137

实现(截图)

  • 两边都先配置静态IP
    在这里插入图片描述
    在这里插入图片描述

  • 192.168.160.137端
    在这里插入图片描述

在这里插入图片描述

  • 192.168.160.138端(两边做完都要reboot)
    在这里插入图片描述
    在这里插入图片描述

  • 防火墙
    在这里插入图片描述
    在这里插入图片描述

  • 时间同步

    • vim /etc/chrony.conf(两端都做)

在这里插入图片描述

  • 192.168.160.137端
    在这里插入图片描述

  • 192.168.160.138端
    在这里插入图片描述

  • 相互免密登录

    • 192.168.160.137
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述

    • 192.168.160.138
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述

环境搭建

  • 在Server-Web端

在这里插入图片描述

  • 上传wordpress到Server-NFS-DNS端

在这里插入图片描述

  • Server-NFS-DNS端设置NFS共享
    在这里插入图片描述
    在这里插入图片描述

  • 挂载
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • nginx设置
    在这里插入图片描述
    在这里插入图片描述

  • 数据库中创建数据库和用户
    在这里插入图片描述

  • 重启数据库和nginx

在这里插入图片描述

  • DNS服务

    • 192.168.160.138端
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述

    • 192.168.160.137端
      在这里插入图片描述

相关文章:

分布式架构搭建博客网站

目录 运行环境基础配置需求准备工作配置静态ip修改主机名及host映射开启防火墙时间同步配置免密ssh登录 环境搭建Server-Web端安装LNMP环境软件Server-NFS-DNS端上传博客软件Server-NFS-DNS端设置NFS共享Server-Web设置挂载远程共享目录nginx设置在数据库中创建数据库和用户重启…...

python-opencv给图片或视频去水印

文章目录 引言inpaint函数的使用方法鼠标事件回调函数cv2.setMouseCallback介绍去水印步骤实现代码 引言 本文主要基于cv2.inpaint函数实现图片的水印去除。 inpaint函数基于图像修复算法,通过对缺陷区域周围像素的分析和插值,生成合适的像素值来填充缺…...

免费送源码:Java+ssm+Springboot Springboot手办定制销售系统 计算机毕业设计原创定制

Springboot手办定制销售系统 摘 要 随着人们生活水平的提高和互联网的发展,人们消费思想和消费方式的逐渐改变,使得消费者开始追求自身品味和个性。手办定制就是在这种条件下应运而生。手办定制是基于客户需求来定制产品,满足客户对其功能、结…...

卡夫卡的使用

关于消息队列的使用 一、消息队列概述 消息队列中间件是分布式系统中重要的组件,主要解决应用解耦,异步消息,流量削锋等问题,实现高性能,高可用,可伸缩和最终一致性架构。目前使用较多的消息队列有ActiveM…...

mac|maven项目在idea中连接redis

安装maven brew install maven idea-setting导入redis插件 idea新建maven项目 构建系统选择maven 项目右侧数据库图标导入redis 新建一个数据库&#xff0c;名称必须为数字&#xff0c;测试一下是否可以连接&#xff0c;连接成功后选择确定 pom.xml导入redis <depende…...

Python基础学习------第一天

print("hello world") 1.括号和引号&#xff0c;必须使用的是英文 被双引号包围起来的称为字符串。 python注释&#xff1a;单行注释&#xff1a;1.井号# 2.多行注释 &#xff1a;""" """ print输出多个内容是中间用逗号隔开就好…...

MySQL的SQL语句之触发器和存储过程的应用

触发器 Trigger 一.触发器 作用&#xff1a;当检测到某种数据表发生数据变化时&#xff0c;自动执行操作&#xff0c;保证数据的完整性。 1.创建一个触发器 如上图所示&#xff0c;查看这个create的帮助信息的时候&#xff0c;这个create trigger就是创建触发器的意思。 如…...

【MD5】密码加密之加盐算法

哈喽&#xff0c;哈喽&#xff0c;大家好~ 我是你们的老朋友&#xff1a;保护小周ღ 本期主要是给大家分析一下, 密码的如果加密存储的, 学习加盐算法的思想, 通过一个简单的案例, 即可快速学习. 一起来看看叭~ 适用于编程初学者&#xff0c;感兴趣的朋友们可以订阅&…...

服务器虚拟化

前言 服务器虚拟化是一种技术&#xff0c;它通过将一台物理服务器的软件环境分割成多个独立分区&#xff0c;使每个分区都能模拟出一台完整的虚拟服务器。这种技术利用虚拟化技术充分发挥服务器的硬件性能&#xff0c;提高运营效率&#xff0c;节约能源并降低经济成本。 通过…...

贪心算法理论基础和习题【算法学习day.17】

前言 ###我做这类文档一个重要的目的还是给正在学习的大家提供方向&#xff08;例如想要掌握基础用法&#xff0c;该刷哪些题&#xff1f;&#xff09;我的解析也不会做的非常详细&#xff0c;只会提供思路和一些关键点&#xff0c;力扣上的大佬们的题解质量是非常非常高滴&am…...

爬虫ip技术未来发展趋势

各位朋友&#xff0c;大家好&#xff01;有伙伴问爬虫技术未来会有更好的发展么&#xff0c;那今天小蝌蚪来跟大家聊聊爬虫技术未来的发展趋势分享一下行业咨询。 大家在日常工作和生活中&#xff0c;都希望事情能更省心、高效吧&#xff1f;未来的爬虫技术就朝着这个方向发展…...

推荐一款功能强大的文字处理工具:Atlantis Word Processor

Atlantis word proCEssor是一款功能强大的文字处理工具。该软件可以让用户放心的去设计文档&#xff0c;并且软件的界面能够按用户的意愿去自定义&#xff0c;比如工具栏、字体选择、排版、打印栏等等&#xff0c;当然还有更多的功能&#xff0c;比如你还可以吧软件界面中的任何…...

语言≠思维,大模型学不了推理:一篇Nature让AI社区炸锅了

转自&#xff1a;机器之心 大语言模型&#xff08;LLM&#xff09;为什么空间智能不足&#xff0c;GPT-4 为什么用语言以外的数据训练&#xff0c;就能变得更聪明&#xff1f;现在这些问题有 「标准答案」了。 近日&#xff0c;一篇麻省理工学院&#xff08;MIT&#xff09;等…...

Ubuntu 安装 npm

1. 升级apt sudo apt-get update 2. 安装nodejs sudo apt install nodejs 3. 安装npm sudo apt-get install npm 4. 查看版本 node -v npm -v 完成安装&#xff01;...

Go:package

文章目录 标准库概述regexp包锁和sync包自定义包和可见性基本格式导入外部安装包包的初始化 自定义包使用godoc自定义包的目录结构 标准库概述 在之前的部分已经用了很多和标准库有关的内容&#xff0c;比如有fmt&#xff0c;os这种功能 unsafe: 包含了一些打破 Go 语言“类型…...

大数据之微服务注册、发现与熔断方案

大数据微服务注册、发现与熔断方案 介绍实现框架利用Spring Cloud实现微服务注册&#xff0c;发现&#xff0c;熔断实例&#xff1f; 一&#xff0c;介绍 大数据微服务注册、发现与熔断是微服务架构中的关键概念&#xff0c;它们各自在微服务架构中扮演着重要的角色。以下是对这…...

最新出炉!2024年邮件营销平台综合盘点

随着数字化营销的不断发展&#xff0c;邮件营销依然是企业与客户保持联系的重要渠道之一。2024年&#xff0c;邮件营销平台市场竞争激烈&#xff0c;各大平台纷纷推出新功能&#xff0c;以满足企业日益增长的需求。在众多平台中&#xff0c;Zoho Campaigns作为一款成熟的邮件营…...

Qgis 开发初级 《ToolBox》

Qgis 有个ToolBox 的&#xff0c;在Processing->ToolBox 菜单里面&#xff0c;界面如下。 理论上Qgis这里面的工具都是可以用脚本或者C 代码调用的。界面以Vector overlay 为例子简单介绍下使用方式。Vector overlay 的意思是矢量叠置分析&#xff0c;和arcgis软件类似的。点…...

Apache HttpClient 和 OkHttpClient 的使用

概述 Apache HttpClient Apache HttpClient是一个开源的HTTP客户端库&#xff0c;提供了丰富的HTTP通信功能。它支持HTTP/1.1和HTTPS协议&#xff0c;具有连接池管理、重试机制、代理设置等高级特性。HttpClient的API设计虽然相对繁琐&#xff0c;但提供了高度的可配置性和灵…...

文本列的性能优化?深入Oracle全文索引

一.什么是全文索引&#xff1f; 全文索引通过分析和处理文本&#xff0c;将文档中的单词分解为词条&#xff08;tokens&#xff09;&#xff0c;然后存储词条与其所在文档的映射关系。这使得数据库可以快速定位包含特定关键字的记录&#xff0c;而不必对所有文本逐字匹配。 二…...

GoogleChrome和Edge浏览器闪屏问题

GoogleChrome和Edge浏览器闪屏问题 文章目录 GoogleChrome和Edge浏览器闪屏问题 买了电脑半年, GoogleChrome和edge浏览器出现了一个令人头疼的问题–闪屏, 就是打开这两个浏览器之后, 就会出现电脑屏幕一闪一闪的, 过一会就看不见了, 跟黑夜里的闪电一样, 遇到这种情况我都会直…...

【设计模式系列】迭代器模式(七)

一、什么是迭代器模式 迭代器模式&#xff08;Iterator Pattern&#xff09;是一种行为型设计模式&#xff0c;它提供一种方法来顺序访问一个聚合对象中的各个元素&#xff0c;而不暴露其内部的表示。迭代器模式将集合的遍历过程封装在一个独立的迭代器对象中&#xff0c;这样…...

Go性能基础

本篇内容是根据2020年2月份#117 Foundations of Go performance音频录制内容的整理与翻译 在这个多部分系列的第一部分中&#xff0c;Ian 和 Johnny 以及 Miriah Peterson 和 Bryan Boreham 一起揭开了 Go 程序性能的第一层重要内容。 过程中为符合中文惯用表达有适当删改, 版…...

银河麒麟v10安装Anaconda(python大蟒蛇)+pycharm安装

Anaconda中文是大蟒蛇&#xff0c;是一个用于科学计算的Python发行版&#xff0c;预装大量的模块包&#xff0c;不需要单独下载python进行安装 1安装环境 1.1系统版本 操作系统版本&#xff1a;银河麒麟桌面版操作系统v10(SP1) 版本号&#xff1a;2303 架构&#xff1a;x86…...

集群聊天服务器——逻辑梳理

网络聊天服务器项目&#xff0c;该项目分为4个模块&#xff1a; 首先是网络模块&#xff1a;我使用了muduo高性能网络库&#xff0c;解耦合网络与业务之间这两部分代码&#xff0c;可以更加专注与业务的功能开发其次是服务层模块&#xff1a;我使用了基于C11的技术比如绑定器和…...

10 最长回文子串、买卖股票的最好时机(一)、[NOIP2002 普及组] 过河卒24_10_30

这里写目录标题 cpp 101 最长回文子串1.1 题目1.2 思路1.3 程序实现 2 买卖股票的最好时机(一)2.1 题目2.2 思路2.3 程序实现2.4 程序实现 – 优化 3 [NOIP2002 普及组] 过河卒3.1题目3.2 思路3.3程序实现 – dp 4 题目链接 cpp 10 1 最长回文子串 1.1 题目 1.2 思路 读完了…...

Handler、Looper、message进阶知识

Android Handler、Looper、Message的进阶知识 在Android开发中&#xff0c;Handler、Looper和Message机制是多线程通信的核心。为了深入理解并优化它们的使用&#xff0c;尤其是在高并发和UI性能优化中&#xff0c;可以利用一些高级特性。 1. Handler的高阶知识 Handler在基本…...

一文理解决策树:原理、数学公式与全流程实战讲解

一、背景与来源 决策树&#xff08;Decision Tree&#xff09;是一种常见的机器学习算法&#xff0c;主要用于分类和回归问题。其概念来源于统计学和决策论&#xff0c;能够直观地模拟人类的决策过程。最早的决策树算法之一是 1963 年由 Hunt 等人提出的&#xff0c;该算法逐渐…...

day04-LogStash扩展

1.LogStash性能不稳定&#xff08;某天关闭后&#xff0c;再次启动就非常慢&#xff09;&#xff0c;所以后面我们用Filebeat。2.先禁用 # geoip { # source > "clientip" # }3.在生产中要是用nignx服务或tomcat服务我们用EFK架构就可以排查技巧观察点 LogS…...

Linux云计算 |【第五阶段】CLOUD-DAY4

主要内容&#xff1a; Linux容器基础、安装Docker、镜像管理、容器管理、容器部署应用 一、容器介绍 容器&#xff08;Container&#xff09; 是一种轻量级的虚拟化技术&#xff0c;用于在操作系统级别隔离应用程序及其依赖项。容器允许开发者在同一台主机上运行多个独立的应…...

大沥网站建设/如何提高百度搜索排名

下载和安装lua&#xff1a;&#xff08;转自这里&#xff09;1. 下载最新版的lua-5.2.0 请点击&#xff0c;然后使用tar -zxvf lua.xxxx 解压 2. 运行“终端”进入解压后的文件夹3.在“终端”输入 make macosx &#xff08;回车&#xff09;4.在“终端”输入 make tes…...

哪个网站做推销产品/产品推广的渠道有哪些

实际上有两种方式去解决这种 问题&#xff0c; 一个是之前所提到的多进程和多线程的问题&#xff0c;第二种方式 就是本次要将的异步IO 它的原理就是当代码需要执行一个耗时的IO操作的时候&#xff0c;它只发出IO指令&#xff0c;并不等待IO结果&#xff0c;然后 去执行其他代…...

网站建站基础/山东服务好的seo

https://blog.csdn.net/u013938465/article/details/53507109...

网站开发环境 对比/品牌宣传活动策划方案

Kmeans是最经典的聚类算法之一&#xff0c;它的优美简单、快速高效被广泛使用。 Kmeans算法描述 输入&#xff1a;簇的数目k&#xff1b;包含n个对象的数据集D。 输出&#xff1a;k个簇的集合。 方法&#xff1a; 从D中任意选择k个对象作为初始簇中心&#xff1b;repeat;根据簇…...

旅游网站ppt应做的内容/手机怎么建立网站

一、表的关系分析&#xff1a;用户和订单&#xff1a;一个用户可以有多个订单&#xff0c;但每个订单只能属于一个用户&#xff0c;所以是一对多的关系。商品和分类&#xff1a;一个产品只能有一种分类&#xff0c;而一个分类可以有多种产品&#xff0c;所以是多对一的关系。订…...

禅城区企业网站建设/灰色关键词排名优化

基于虎书实现LALR(1)分析并生成GLSL编译器前端代码(C#) 为了完美解析GLSL源码&#xff0c;获取其中的信息&#xff08;都有哪些in/out/uniform等&#xff09;&#xff0c;我决定做个GLSL编译器的前端&#xff08;以后简称编译器或FrontEndParser&#xff09;。 以前我做过一个…...