好
所以我httpd前一段时间安装了Apache ,并且最近回到它尝试设置SSL并让它为几个不同的tomcat服务器提供服务.
目前我有两个完全独立的Tomcat实例,提供略有不同的版本(一个用于开发,一个用于演示)我的Web应用程序到两个不同的端口:
example.com:8081example.com:8082我已经成功(一月后)用于mod_jk获取httpd服务同样的Tomcat实例http://www.example.com:8090/dev和http://www.example.com:8090/demo (8090只因为我已经有了8080通过码头在这一阶段运行的其他应用程序)在使用下面的代码httpd.conf:
LoadModule jk_module modules/mod_jk.so
JkWorkersFile conf/workers.properties
JkLogFile logs/mod_jk.log
JkLogLevel debug
<VirtualHost *:8090>
JkMount /devd* tomcatDev
JkMount /demo* tomcatDemo
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
我不想做的是启用SSL.
我添加了以下内容httpd.conf:
Listen 443
<VirtualHost _default_:443>
JkMount /dev* tomcatDev
JkMount /demo* tomcatDemo
SSLEngine on
SSLCertificateFile "/opt/httpd/conf/localhost.crt"
SSLCertificateKeyFile "/opt/httpd/conf/keystore.key"
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
但是当我尝试重新启动Apache时apachectl restart(是的,关闭我提到的其他应用程序,所以它没有玩具有https连接)我不断得到错误:
无效命令'SSLEngine',可能由服务器配置中未包含的模块拼写错误或定义.httpd没有运行,试图启动
我看了一下httpd/modulesdir,确实没有mod_ssl,只有mod_jk.so和httpd.exp.
我已经尝试使用yum进行安装mod_ssl,它说它已经安装好了.事实上,我能找到mod_ssl.so的/usr/lib/httpd/modules,但是这不是路径,我安装位置httpd …
我在一个网站上看到我需要添加两行httpd.conf文件:
ServerSignature关闭
ServerTokens Prod
但是当我添加它们时没有任何改变.如前所述,我可以在浏览器中看到
Apache/2.2.16(Debian)
也许这很重要:当我打开文件时(我的意思是在添加上面的行之前)httpd.conf我看到它是空的.我用VPS.
谢谢!
我想知道如何完全删除 apache 在响应中发送的服务器标头。
最初,它显示完整的服务器信息,如Server: Apache (Ubuntu 14.04)响应标头中的信息。但我在某处读到在 apache2.conf 中添加这个
ServerTokens ProductOnly
ServerSignature Off
Run Code Online (Sandbox Code Playgroud)
它没有删除标题,只是将其更改为 Server: Apache
我什至尝试从 PHP 中删除带有header_remove('Server');. 但仍然没有运气。
所以,我想完全删除它。
谢谢,
PS:如果可以更改标题值,例如:to Server: Microsoft-IIS/8.0(假值);那么也没关系。
我在etc/apache2.conf文件中添加了这两行,它隐藏了操作系统和apache版本.
ServerSignature Off
ServerTokens Prod
Run Code Online (Sandbox Code Playgroud)
但毕竟我可以看到带有服务器名称的标题
Server Apache
Run Code Online (Sandbox Code Playgroud)
如何隐藏这些信息?我正在使用Debian 7,apache v 2.2
谢谢
示例代码
diff -r -u -P a.c b.c > diff.patch
Run Code Online (Sandbox Code Playgroud)
我试图在人中搜索。
man 说 diff -u 是为了统一输出的模式,什么意思,什么时候用?
多谢。