最新要闻
- 龙爸无双100集电视剧免费观看|环球热点评
- 装饰材料包括什么东西(装饰材料都包括什么) 环球即时看
- 微软Edge离奇改动:新版不再支持删除云端同步数据
- 《变形金刚》《蜘蛛侠》不分伯仲:2023暑期档票房破10亿_世界播资讯
- 乳晕变大是怎么回事(乳晕大怎么回事)-天天热点
- 证监会就公开募集证券投资基金投资顾问业务管理规定公开征求意见_每日简讯
- 陕西西安推动“十里沣河”文旅深度融合古老沣河涌动新活力 焦点资讯
- 低价团乱象再起 何以无解?|头条焦点
- 四川省社科院周友苏:适合且能推动上市公司高质量发展的规章制度才是“良法善治”|世界短讯
- 瑞虎8保养灯怎么消除(本田冠道保养灯怎么消除?) 环球速递
- 王永调研阿洛亚与蜜泉湖联通工程时强调:树立“大景区、大旅游”理念 努力打造全域旅游胜地|每日速递
- 天天要闻:日本人拆了辆比亚迪海豹 还出了本书 定价6.7万
- 你买过“游戏盘”么?分析师:无实体游戏将在2028年成主流|资讯
- 居理买房暴雷!前员工称“欠薪千万元,丈母娘顶替法人” 全球观焦点
- ps保存不了jpg格式怎么办(ps保存不)
- 惩治网暴,公检法三部门公开征求意见!维权难度能降低吗?
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
NGINX配置详解
- NGINX配置详解
- 什么是NGX
- NGX的常用功能
- 1、正向代理及反向代理
- 2、负载均衡
- 3、web缓存
- Nginx配置文件结构
- nginx.conf
- nginx.conf的配置举例
- 全局块
- events块
- event与全局块中的两参数结合使用
- 最重要的http块
- 5 server块的配置,即虚拟主机的配置
- 6 include /etc/nginx/conf.d/*.conf;
- nginx http模块配置实例及日常使用命令
- 反向代理
- 负载均衡
- 善用Log排错
- 不重启的情况下加载配置
NGINX配置详解
关于ngx虽然一直在用,但是对其配置及详细作用有些一知半解,本周趁有时间刚好一起梳理下。本篇文章将包括常用的ngx功能,如代理及负载均衡等,争取内容尽量全面丰富一些。
什么是NGX
Nginx 是开源的轻量级 Web 服务器、反向代理服务器,以及负载均衡器和 HTTP 缓存器。其特点是高并发,高性能和低内存。
Nginx 专为性能优化而开发,性能是其最重要的考量,实现上非常注重效率,能经受高负载的考验,最大能支持 50000 个并发连接数。 Nginx 还支持热部署,它的使用特别容易,几乎可以做到 7x24 小时不间断运行。 Nginx 的网站用户有:百度、淘宝、京东、腾讯、新浪、网易等。
(资料图片)
NGX的常用功能
1、正向代理及反向代理
其主要有以下几点区别:1、代理对象不同。正向代理代理的是客户端,反向代理代理的是服务器。正向代理帮助客户访问其无法访问的服务器资源,反向代理帮助服务器做负载均衡,另外,由于客户端跟真实服务器不直接接触,能起到一定安全防护的作用。2、架设主体不同。正向代理一般是客户端架设的,比如在自己的机器上装一个代理软件,反向代理一般是服务器架设的,通常是在机器集群中部署个反向代理服务器。3、保护对象不同。正向代理保护对象是客户端,反向代理保护对象是原始资源服务器。4、作用目的不同。正向代理主要目的是解决访问限制问题,而反向代理一方面是作为负载均衡,再就是起到安全防护的作用。
2、负载均衡
Nginx提供的负载均衡策略有2种:内置策略和扩展策略。内置策略为轮询,加权轮询,Ip hash。扩展策略,就天马行空,只有你想不到的没有他做不到的啦。我们日常中最常见的三种nginx的负载均衡策略应当为(轮询、权重、ip绑定),这其中的区别体现在upstream代码块中,以下是upstream代码块示例(轮询)。
3、web缓存
Nginx可以对不同的文件做不同的缓存处理,配置灵活,并且支持FastCGI_Cache,主要用于对FastCGI的动态程序进行缓存。配合着第三方的ngx_cache_purge,对制定的URL缓存内容可以的进行增删管理。
Nginx配置文件结构
安装nginx的时候默认配置文件位置为/etc/nginx 下,默认的配置文件为nginx.conf ,nginx配置文件在/etc/nginx/nginx.conf
nginx.conf
Nginx服务器的基础配置,默认的配置也存放在nginx.conf中,主要包含以下几个部分:
- 第一部分 全局块
主要设置一些影响 nginx 服务器整体运行的配置指令。
比如: worker_processes 1; , worker_processes 值越大,可以支持的并发处理量就越多。
- 第二部分 events块
events 块涉及的指令主要影响Nginx服务器与用户的网络连接。
比如: worker_connections 1024; ,支持的最大连接数。
- 第三部分 http块
http 块又包括 http 全局块和 server 块,是服务器配置中最频繁的部分,包括配置代理、缓存、日志定义等绝大多数功能。
server块:配置虚拟主机的相关参数。
location块(URL匹配特定位置的设置):配置请求路由,以及各种页面的处理情况。
upstream(负载均衡服务器设置):指令主要用于负载均衡,设置一系列的后端服务器,upstream后的名称和后面的 proxy_pass要对应起来。
它的配置文件都是以block的形式组织的,每个block一般都是以括号“{}”来表示的。主要包括全局,event,http,server等设置,event主要定义nginx的工作模式,http提供web功能,server用来设置虚拟主机,server可以存在多个
nginx默认配置如下
For more information on configuration, see:# * Official English Documentation: http://nginx.org/en/docs/# * Official Russian Documentation: http://nginx.org/ru/docs/user nginx;worker_processes auto;error_log /var/log/nginx/error.log;pid /run/nginx.pid;# Load dynamic modules. See /usr/share/doc/nginx/README.dynamic.include /usr/share/nginx/modules/*.conf;events { worker_connections 1024;}http { log_format main "$remote_addr - $remote_user [$time_local] "$request" " "$status $body_bytes_sent "$http_referer" " ""$http_user_agent" "$http_x_forwarded_for""; access_log /var/log/nginx/access.log main; sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 4096; include /etc/nginx/mime.types; default_type application/octet-stream; # Load modular configuration files from the /etc/nginx/conf.d directory. # See http://nginx.org/en/docs/ngx_core_module.html#include # for more information. include /etc/nginx/conf.d/*.conf; server { listen 80; listen [::]:80; server_name _; root /usr/share/nginx/html; # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; error_page 404 /404.html; location = /404.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } }# Settings for a TLS enabled server.## server {# listen 443 ssl http2;# listen [::]:443 ssl http2;# server_name _;# root /usr/share/nginx/html;## ssl_certificate "/etc/pki/nginx/server.crt";# ssl_certificate_key "/etc/pki/nginx/private/server.key";# ssl_session_cache shared:SSL:1m;# ssl_session_timeout 10m;# ssl_ciphers HIGH:!aNULL:!MD5;# ssl_prefer_server_ciphers on;## # Load configuration files for the default server block.# include /etc/nginx/default.d/*.conf;## error_page 404 /404.html;# location = /40x.html {# }## error_page 500 502 503 504 /50x.html;# location = /50x.html {# }# }}
配置举例
nginx.conf的配置举例
########### 每个指令必须有分号结束。##################user administrator administrators; #配置用户或者组,默认为nobody nobody。#worker_processes 2; #允许生成的进程数,默认为1#pid /nginx/pid/nginx.pid; #指定nginx进程运行文件存放地址error_log log/error.log debug; #制定日志路径,级别。这个设置可以放入全局块,http块,server块,级别以此为:debug|info|notice|warn|error|crit|alert|emergevents { accept_mutex on; #设置网路连接序列化,防止惊群现象发生,默认为on multi_accept on; #设置一个进程是否同时接受多个网络连接,默认为off #use epoll; #事件驱动模型,select|poll|kqueue|epoll|resig|/dev/poll|eventport worker_connections 1024; #最大连接数,默认为512}http { include mime.types; #文件扩展名与文件类型映射表 default_type application/octet-stream; #默认文件类型,默认为text/plain #access_log off; #取消服务日志 log_format myFormat "$remote_addr–$remote_user [$time_local] $request $status $body_bytes_sent $http_referer $http_user_agent $http_x_forwarded_for"; #自定义格式 access_log log/access.log myFormat; #combined为日志格式的默认值 sendfile on; #允许sendfile方式传输文件,默认为off,可以在http块,server块,location块。 sendfile_max_chunk 100k; #每个进程每次调用传输数量不能大于设定的值,默认为0,即不设上限。 keepalive_timeout 65; #连接超时时间,默认为75s,可以在http,server,location块。 upstream mysvr { server 127.0.0.1:7878; server 192.168.10.121:3333 backup; #热备 } error_page 404 https://www.baidu.com; #错误页 server { keepalive_requests 120; #单连接请求上限次数。 listen 4545; #监听端口 server_name 127.0.0.1; #监听地址 location ~*^.+$ { #请求的url过滤,正则匹配,~为区分大小写,~*为不区分大小写。 #root path; #根目录 #index vv.txt; #设置默认页 proxy_pass http://mysvr; #请求转向mysvr 定义的服务器列表 deny 127.0.0.1; #拒绝的ip allow 172.18.5.54; #允许的ip } }}
全局块
从配置文件开始到 events 块之间的内容,主要会设置一些影响 nginx 服务器整体运行的配置指令,主要包括配置运行 Nginx 服务器的用户(组)、允许生成的 worker process 数,进程 PID 存放路径、日志存放路径和类型以及配置文件的引入等。通常包括下面几个部分:
1 配置运行Nginx服务器用户(组)如:user nobody nobody; user是个主模块指令,指定Nginx Worker进程运行以及用户组。指令格式:user user [group];user:指定可以运行Nginx服务器的用户;group:可选项,可以运行Nginx服务器的用户组。如果user指令不配置或者配置为user nobody nobody,默认由nobody账户运行。
2 worker process数Nginx服务器实现并发处理服务的关键。woker_processes是主模块指令,制定了Nginx要开启的进程数。每个Nginx进程平均耗费10M~12M内存。建议指定和CPU的数量一致即可。worker_processes: CPU核心数,(双核4线程,可以设置为4),默认:worker_processes: 1网上推荐:据实践表明,nginx的这个参数在一般情况下开4个或8个就可以了,再往上开的话优化不太大。(https://www.cnblogs.com/aaron-agu/p/8003831.html)指令格式:worker_processes number | auto;number : Nginx 进程最多可以产生的worker process 数。auto : Nginx 进程将自动检测。在按照上面的配置格式配置了之后,假如上面的数目是2,那么启动Nginx服务器后,在后台主机上查看Nginx的进程情况,可以看到应该是有2个Nginx进程。
3.错误日志的存放路径error_log 是个主模块指令,用来定义全局错误日志文件。日志输出级别有debug,info,notice,warn,error,erit可供选择,其中,debug输出日志最为详细,而crit输出日志最少。指定格式:error_log file | stderr;file : 日志输出到某个文件filestderr : 日志输出到标准错误输出 (日志输出级别)。如:error_log logs/error.log info;
4.Nginx进程PID存放路径Nginx进程是作为系统守护进程在进行,需要在某个文件中保存当前运行程序的主进程号,Nginx支持该保存文件路径的定义。指令格式:pid file;file:指定存放路径和文件名称。如果不指定,则默认置于路径 logs/nginx.pid如:pid logs/nginx.pid; pid是个主模块指令,用来指定进程pid的存储文件位置。
5.worker_rlimit_nofile指定进程可以打开的最多文件描述数目,理论值应该是最多打开文件数(ulimit -n )与nginx进程数相除,但是Nginx分配请求并不是那么均匀,所以最好与ulimit -n 的值保持一致。现在在Linux2.6 内核下开启文件打开数为65535,worker_rlimit_nofile 就相应应该填写65535.这是因为Nginx调度时请求到进程并不是那么均衡,所以假如填写10240,总并发量达到3-4万时就有进程超过10240了,这就会返回502。如:worker_rlimit_nofile 65535; 用来绑定worker进程和CPU,Linux内核2.4 以上可用
events块
1.use如:use epoll;use是事件模块指令,用来指定Nginx的工作模式。Nginx支持的工作模式有select、poll、kqueue、epoll、rtsig和/dev/poll 。其中select 和poll 都是标准的工作模式,kqueue和epoll是高效的工作模式,不同的是epoll用在Linux平台上,而kqueue用在BSD系统中。对于Linux系统,epoll工作模式是首选。
2.worker_connections如:worker_connections 65536;work_connections也是个事件模块指令,用于定义Nginx每个进程的最大连接数,默认是1024。注意一下几点:connections不是随便设置的,而是与两个指标有重要关联,一是内存,二是操作系统级别的“进程最大可打开文件数”。内存:每个连接数分别对应一个read_event、一个write_event事件,一个连接数大概占用232字节,2个事件总占用96字节,那么一个连接总共占用328字节,通过数学公式可以算出100000个连接数大概会占用 31M = 100000 * 328 / 1024 / 1024,当然这只是nginx启动时,connections连接数所占用的nginx。进程最大可打开文件数:进程最大可打开文件数受限于操作系统,可通过 ulimit -n 命令查询,以前是1024,现在是65535,nginx提供了worker_rlimit_nofile指令,这是除了ulimit的一种设置可用的描述符的方式。 该指令与使用ulimit对用户的设置是同样的效果。此指令的值将覆盖ulimit的值,如:worker_rlimit_nofile 20960;
event与全局块中的两参数结合使用
以上两个worker_processes与worker_connections 设置好合适大小,可以提示nginx处理性能,非常重要。原作者的话:
As a general rule you need the only worker with large number of worker_connections, say 10,000 or 20,000.However, if nginx does CPU-intensive work as SSL or gzipping and you have 2 or more CPU, then you may set worker_processes to be equal to CPU number.Besides, if you serve many static files and the total size of the files is bigger than memory, then you may increase worker_processes to utilize a full disk bandwidth.
翻译:
一般一个进程足够了,你可以把连接数设得很大。(worker_processes: 1,worker_connections: 10,000)
如果有SSL、gzip这些比较消耗CPU的工作,而且是多核CPU的话,可以设为和CPU的数量一样(worker_processes: CPU核心数)或者要处理很多很多的小文件,而且文件总大小比内存大很多的时候,也可以把进程数增加,以充分利用IO带宽(主要似乎是IO操作有block)
最重要的http块
需要注意这里有个 access.log 日志
- 1 定义MIMI-Type如:include mime.types;
指令格式:include file;
该指令主要用于将其他的Nginx配置或第三方模块的配置引用到当前的主配文件中,减少主配置文件的复杂度。default_type application/octet-stream;
default_type:属于HTTP核心模块指令,这里设定默认类型为二进制流。也就是当文件类型未定义时使用这种方式,
2 自定义服务日志log_format 是Nginx的HttpLog模块指令,用于指定Nginx日志的输出日志。当然其中还有更为详细的配置,但是这里只做大略的研究学习,不过分深入细节。
3 允许sendfile方式传输文件指令格式:sendfile on;
这个指令中的参数on是表示开启高效文件传输模式,默认是关闭状态(off),将tcp_nopush和tcp_nodelay两个指令设置为on用于防止网络阻塞;
- 4 连接超时时间指令格式:keepalive_timeout number;
长连接超时时间,单位是秒:设置客户端连接保持活动的超时时间。在超过这个时间之后,服务器会关闭该连接;
如:keepalive_timeout 65;
5 server块的配置,即虚拟主机的配置
server #网站配置区域{ listen 80; #默认监听80端口 server_name www.lulu.com; #提供服务的域名主机名 location / { root html; #站点根目录(这里html是相对路径,默认网站根目录为:/usr/local/nginx/html) index index.thml index.htm; #默认首页文件,多个用空格分开 } error_page 500 502 503 504 /50x.html; #出现对应http状态码时,使用50x.html回应客户 location = /50x.thml { root html; #指定对应目录 }}
6 include /etc/nginx/conf.d/*.conf;
设置http端配置包含/etc/nginx/conf.d目录中所有以".conf"文件结尾的配置文件,一般将server段配置文件放在该目录下。
nginx http模块配置实例及日常使用命令
反向代理
server { listen 80; server_name 192.168.4.32; #监听地址 location / { root html; #/html目录 proxy_pass http://127.0.0.1:8080; #请求转向 index index.html index.htm; #设置默认页 } }
负载均衡
在浏览器地址栏输入 http://192.168.4.32:80,平均到 5000 和 8080 端口中,实现负载均衡效果。具体可以参考https://www.jb51.net/article/165065.htm , 负载均衡的方式有多个,包括轮训 、 权重分配等等
upstream myserver { server 192.167.4.32:5000; server 192.168.4.32:8080; } server { listen 80; #监听端口 server_name 192.168.4.32; #监听地址 location / { root html; #html目录 index index.html index.htm; #设置默认页 proxy_pass http://myserver; #请求转向 myserver 定义的服务器列表 } }
善用Log排错
在conf中有两个log地址, 一个定义在全局块 ,一个定义在http的access.log中。/var/log/nginx/error.log/var/log/nginx/access.log
不重启的情况下加载配置
测试是否写对了:nginx -t
不重启服务的情况下,加载新的内容:nginx -s reload
关键词:
NGINX配置详解
【技术积累】SpringBoot中的简介与配置【一】
龙爸无双100集电视剧免费观看|环球热点评
装饰材料包括什么东西(装饰材料都包括什么) 环球即时看
微软Edge离奇改动:新版不再支持删除云端同步数据
《变形金刚》《蜘蛛侠》不分伯仲:2023暑期档票房破10亿_世界播资讯
乳晕变大是怎么回事(乳晕大怎么回事)-天天热点
证监会就公开募集证券投资基金投资顾问业务管理规定公开征求意见_每日简讯
陕西西安推动“十里沣河”文旅深度融合古老沣河涌动新活力 焦点资讯
低价团乱象再起 何以无解?|头条焦点
四川省社科院周友苏:适合且能推动上市公司高质量发展的规章制度才是“良法善治”|世界短讯
【世界播资讯】【技术积累】Python中的Pandas库【三】
Linux命令篇 - tar 命令
瑞虎8保养灯怎么消除(本田冠道保养灯怎么消除?) 环球速递
王永调研阿洛亚与蜜泉湖联通工程时强调:树立“大景区、大旅游”理念 努力打造全域旅游胜地|每日速递
天天要闻:日本人拆了辆比亚迪海豹 还出了本书 定价6.7万
你买过“游戏盘”么?分析师:无实体游戏将在2028年成主流|资讯
居理买房暴雷!前员工称“欠薪千万元,丈母娘顶替法人” 全球观焦点
ps保存不了jpg格式怎么办(ps保存不)
惩治网暴,公检法三部门公开征求意见!维权难度能降低吗?
湖南博物馆千年古尸_湖南博物馆千年女干尸|焦点关注
焦点速讯:问麻了…阿里一面索命27问,过了就60W+
世界通讯!小迪网安笔记二:信息收集
极目时评丨环卫母亲与高考儿子相拥而泣刷屏,普通人改变命运的努力打动人心
坚守“可靠”坦克Hi4-T 当下新能源越野的更优解 世界播报
当前聚焦:遗体告别仪式流程和掩口流程(遗体告别仪式流程)
国家防总启动防汛四级应急响应,派工作组赴广西福建指导救灾
手机充电很慢是怎么回事呢_手机充电很慢
《猎魔人》S3新预告再惹观众怒火 服装造型太糟糕-当前热闻
我是大运火炬手丨第一棒火炬手邹敬园:我在成都等你们
打新套利动辄千万,“万人摇”乱象丛生,楼市限价将“退出”? 今日热议
西安艺术高级中学网站(西安艺术高级中学)
天津滨海新区可提供伊立浦电压力锅维修服务地址在哪 全球今热点
全球讯息:化疗的时候有什么症状(化疗是什么感觉)
当你变成兔子中文在线玩_当你变成兔子
Maven常用命令及其作用_全球速读
tab是什么意思英语_tab是什么意思-天天报道
今亮点!得不到就毁掉!租客拿到6万补偿后“毁坏式”退房 被判赔偿9万元!
三星最强安卓平板即将发布,Galaxy Tab S9 Ultra 通过 FCC 认证
当前头条:苹果M2 Ultra在Geekbench 5跑分并没有碾压英特尔、AMD,还不如i9-13900K
清淡饮食吃什么小吃(清淡饮食吃什么)|当前快看
祁阳市人民政府官网_祁阳的风景名胜和非遗文化|当前通讯
【全球播资讯】女子拍到50多条锦鲤首尾相连“龙形游” 网友:这就是鱼贯而入吧
中国电信自主品牌!麦芒全新A系列官宣:新机5000万像素主摄确定
焦点信息:占便宜?Xbox"薅羊毛"《暗黑破坏神4》终极版已强制退款
买二手房后发现房屋漏水怎么办(房屋漏水怎么办) 天天报道
好玩好看,上海国际电影节首次推出“数字影视体验展”
环球资讯:首台套50万千瓦冲击式水电机组项目开工
第53届亚太桥牌锦标赛开赛
每日简讯:聊聊Flink的必知必会(一)
天天最新:橄榄可以搭配葡萄酒吗?
全球快讯:安逸四川日历海报丨在广元利州月坝村:踏湖望星空
12306买卧铺票可以在线选铺了!操作指南出炉:很方便
全球快讯:夫妻节目里的反套路_夫妻节
阴阳师樱花妖技能什么意思(阴阳师樱花妖的夫君是谁) 观察
猪饲料品牌名字_猪饲料品牌-环球热议
博纳董事长于冬:剧集的崛起是对电影真正的冲击,不是拼特效的时代了
阔太王艳48岁重新复出,穿花裙跳舞秀曼妙曲线,彻底颠覆豪门形象 天天报道
还能算中国中型SUV标杆?丰田汉兰达月销已不足5000 隔壁理想已破万
当前短讯!CPU性能激增20%!苹果M2 Ultra处理器Geekbench 6跑分出炉
能否继续维持MPV霸主地位?全新丰田埃尔法现身国内 6月21日正式发布
全自动马桶水箱盖怎么打开(马桶水箱盖怎么打开)_今日最新
上海地铁9号线枫泾何时开通(上海地铁9号线)|每日热点
遵守公司规章制度总结怎么写(遵守公司规章制度总结)|世界独家
足字旁那个字怎么写(足字旁怎么打)
新加坡羽毛球公开赛:陈雨菲晋级女单半决赛
天天即时:《一张纸条》阅读答案(一张纸条阅读答案)
if little by little(if little)
老百姓的“柴米油盐”不易拍
魅族史上最美旗舰!魅族20 PRO 618特惠:极简“纽扣”三摄 每日快播
每日速讯:猛男必入 618新潮配色手机推荐:这颜值才对味
每日资讯:珠峰被救女子所雇登山公司深夜发声:救援费已支付 感谢救援
抽中检查就撤IPO的格林生物二闯创业板,拟再度扩充产能 热消息
王永利:人民币国际化应有序推进_世界快播报
环球热点评!Linux下六个有关file使用的实例
我国加大产销对接促脱贫地区帮扶产业高质量发展_当前热讯
我是大运火炬手丨丁宁:大运会既是赛场,更是世界青年的交流展示平台
余承东同款座驾!AITO问界M5智驾版下周交付 焦点热议
女记者体验Vision Pro后压红额头和鼻子 苹果史上最贵新品遇冷:已砍单95%|每日动态
高考生换机高峰来了!卢伟冰:Redmi K60、小米13真卖爆了 天天速读
打造“第三生活空间” 深蓝S7要爆红!
广汽总经理:为电池材料厂打长工不现实 我们车企他们永远得罪不起
古老沣河涌动新活力-环球实时
国内首条“丝路海运”电商快线开通首年进出口破100亿
q点是什么意思(q点)
善学者尽其理善行者究其难什么意思遇事三思而后行(善学者尽其理 善行者究其难什么意思)
高质量发展调研行 | 在智慧港口见证大湾区经济活力——广州南沙港走访一线见闻-全球热资讯
一位付费API工程师如何制造了推特今年第七次崩溃?
歌手李娜的丈夫照片(歌手李娜的丈夫) 天天快资讯
百万跑车变“火车”!杭州一法拉利458突然起火:车身烧出洞
天天滚动:诗词里的遗产:龙虎天下绝 千载玉棺探秘
赞美祖国大好河山的诗句_祖国大好河山的诗句
热点聚焦:宋代诗人陈与义有诗(宋代诗人陈与义乘船出游时)
房子贷款多久可以下来(房子首付付了贷款没下来可以退吗)
平安建设,你我同行—— 海湾旅游区开展2023年“平安建设宣传月”活动
莱商银行网上银行助手_莱商银行网上银行
护航高考|山东平安产险红马甲交上答卷 世界新要闻
全球今日讯!红烧牛腩的家常做法简单又好吃_红烧牛腩的家常做法
48个班!遂宁一公立学校今年9月投用|每日报道
八字偏强八字喜木是什么意思_八字偏强