web服务安装与配置,weweb服务器搭建服务器是应用服务器吗(web服务器搭建) 原创

 2022-11-08    17  

一、采用情景

服务器一般都是类Unix系统,以linuxCentOS采用为多,不论采用的是哪类型Unix系统,服务端都不会加装询问处应用领域程序,而要采用指示和JAVA来做所有人事情,在这样的情景下,登入,莱盖,继续执行JAVA,检查和服务运转状况,检查和服务造成笔记,检查和实用性那些基本上操作就会频密的加进,但在配置文件模式下操作那些姿势很繁杂。比如说检查和某一服务是不是运转状况,需要先登入服务器,接着在民主化中再搜寻该服务的民主化与否存有。这儿就介绍什么样透过web端来继续执行服务器端姿势的方法,精简操作,提高管理效率。

二、挑选出同时实现方式

设计那个同时实现时比较了三个同时实现方式:

1、透过java的Runtime类,莱盖和JAVA。需要建立和保护三个工程建设,在工程建设里对USB职权控制也方便快捷,但SitapurJAVA和操作时需要修正工程建设,再次正式发布工程建设。

2、采用CGIUSB,实用性快捷,采用灵巧,直接在服务器上写JAVA,透过USB的通用型方向就可以出访采用,但难以控制USB访问职权。

由于那个USB是采用在试验系统,方便快捷,灵巧是必选,职权问题就表明的不所以重要了。

CGI是三个很有名的技术,而后随著java servlet技术的蓬勃发展,在制造情景早已没有CGI的一点儿内部空间了,但它的灵巧,快捷刚好用在OWL上。

三、实用性CGIUSB

3.1、迈入Tomcat的CGI实用性

tomcat和apache等开发工具早已内建了CGI机能,而已预设亦然投入使用状况。该处以tomcat为例,实用性CGIUSB。

修正点1、在Tomcat的 conf/web.xml 中释放出来上面CGI有关的几段内容

第二段:

<Servlet>

<servlet-name>cgi</servlet-name>

<servlet-class>org.apache.catalina.servlets.CGIServlet</servlet-class>

<init-param>

<param-name>cgiPathPrefix</param-name>

<param-value>WEB-INF/cgi</param-value>

</init-param>

<load-on-startup>5</load-on-startup>

</servlet>

第二段:

<servlet-mapping>

<servlet-name>cgi</servlet-name>

<url-pattern>/cgi-bin/*</url-pattern>

</servlet-mapping>

修正点2、在Tomcat的 conf/context.xml 中给标签增加属性。

在</Context>标签中添加属性 privileged = "true",因为预设情况下Tomcat是不允许web应用领域采用容器内的Servlet的,web应用领域只能采用自己项目的Servlet。

3.2、建立三个空项目,定义要继续执行的JAVA

tomcat中迈入CGI实用性时,没有修正文件方向和出访方向,那空项目就按照预设方向建立目录即可。

在tomcat方向下,直接 mkdir -p webapps/test/WEB-INF/cgi,建立CGI项目目录完毕。

接着在webapps/test/WEB-INF/cgi方向下建立三个文件a,a的内容如下

#!/bin/bash

echo "Content-Type: text/plain"

echo

#上面内容是CGIJAVA格式,必须存有

#上面内容是自定义要继续执行的姿势

echo "Today is:"

date

3.3、继续执行a的USB出访方向

http://localhost:8080/test/cgi-bin/a

四、参数化cgiUSB

4.1、实际情景

此时,CGIUSB早已实用性完毕了,尽管机能早已完毕,但还是不满足实际的采用情景,现在的三个USB只对应三个机能,不能复用。要满足实际的采用情景,就要参数化,传递的参数可以是JAVA名称,机器的ip,服务名称,民主化名称等等,这样USB的通用型性就大大增加了。

4.2、初步解决方案

若想JAVA参数化就要解决服务器端的传参和url中传参不一致的问题。url中采用“&”和“参数名=参数值”的传参形式,而服务器端是采用的是空格+直接参数值得形式。需要在继续执行的aJAVA前,先经过三个转换JAVA,转换JAVA需要先切割url,分成几部分,取出参数和继续执行的aJAVA,再再次拼在一起来继续执行,那就变成url需要先出访转换JAVA,把实际的aJAVA和参数都作为参数传进来,处理流程变复杂了。

4.3、网上三个神JAVA

直到而后在互联网上最终找到了三个完美的解决方案。找到了三个名字叫“proccgi.sh”的JAVA,JAVA里的注释中描述是 Frank Pilhofer在1995年写的。我原封不动的拿过来采用了(JAVA下载:链接:https://pan.baidu.com/s/1oZbN13Eog3OKld93f6hEkw?pwd=chen

提取码:chen)。那个JAVA设计的很巧妙,它不在传输中间处理url再拼接,而要把url直接都传进继续执行的aJAVA里,接着在aJAVA中利用了“eval”指示的的二次扫描机能,扫描出需要的参数,接着把参数放三个特殊的key-value形式的环境变量里,采用的时候直接从环境变量里面去取。

例如:

url:http://localhost:8080/test/cgi-bin/a?ip=115&servername=customer&thread=aabbcc

aJAVA改造如下:

#!/bin/bash

eval `proccgi.sh $*` # 解析参数

echo "Content-Type: text/plain"

echo

# ############

echo $FORM_ip

echo $FORM_servername

echo $FORM_thread

五、Web页面处理

有以下几种情况:

1、对页面展示无样式要求的,USB链接直接新开浏览器询问处,USB返回的数据会直接表明在浏览器中。

2、页面有格式的,需要透过ajax触发USB,USB返回值透过innerHTML直接填充到页面的展示区域。

3、对于那些耗时较长的任务,USB在还没有返回值的时候,页面停留在加载状况,此时从页面也难以判断与否出现未知问题。这时可以给页面放三个等待的图片,定义三个标志位给它放三个预设值,接着js轮训判断那个标志位的值,当USB的shell处理完成,USB返回时,要变更标志位的值,轮训发现变更后,就可以把USB返回内容替换掉等待图片全部表明在页面上了。

六、结语

在定义环境的时候,就尽量定义的通用型一些,规律一些。这样可以保护一些通用型JAVA,透过传入变量参数来做姿势。使在服务器中环境保护和定位问题都不再繁杂。

原文链接:https://zazhiba.com.cn/post/18735.html

=========================================

https://zazhiba.com.cn/ 为 “自由随风” 唯一官方服务平台,请勿相信其他任何渠道。