Rootop 服务器运维与web架构

2013-12-05
发表者 Venus
暂无评论

编译mcrypt时报错You need at least libmhash 0.8.15 to compile this program

checking whether mhash >= 0.8.15… noconfigure: error: “You need at least libmhash 0.8.15 to compile this program. http://mhash.sf.net/”

mhash编译上了,但是还是报错,应该是找不到库文件的原因。
编辑/etc/ld.so.conf,在文件最后,添加一行:

/usr/local/lib            //编译的时候去/usr/local/lib找库文件。

保存退出,执行 ldconfig ,重新编译即可。

2013-11-30
发表者 Venus
暂无评论

源码编译mysql5.6(与5.5的不同)

在用5.5的编译参数去编译5.6时得到一个警告,有几个参数未能识别。

-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DMYSQL_USER=mysql \
-DMYSQL_TCP_PORT=3306

(红色部分)在警告时忽略即可,继续make。

官方5.6支持的编译参数:

http://dev.mysql.com/doc/refman/5.6/en/source-configuration-options.html#cmake-general-options

2013-11-27
发表者 Venus
暂无评论

client denied by server configuration:

访问apache提示拒绝访问,查看错误日志:

[Wed Nov 27 02:33:37 2013] [error] [client 122.4.66.135] client denied by server configuration: /mnt/data/web/xxx/

解决方法:

编辑httpd.conf:

<Directory />
    Options FollowSymLinks
    AllowOverride All
    Order deny,allow
#    Deny from all
</Directory>

将Deny from all注释掉

2013-11-25
发表者 Venus
暂无评论

apache 反向代理

适用于公司只有一个固定ip,但是需要发布多台web服务器。(包括但不限于仅此一种情况)

服务器信息:
Proxy      Server:192.168.1.3
Windows Server:192.168.1.2

客户端信息:
windows 7     :192.168.1.8

修改系统hosts,实现域名解析:
www.windows.com 192.168.1.3(实际服务器ip为1.2)
www.linux.com        192.168.1.3

要求访问www.linux.com直接访问到192.168.1.3,访问www.windows.com代理到192.168.1.2

查看apache是否支持代理
[root@svn ~]# grep proxy /etc/httpd/conf/httpd.conf
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so

yum安装的apche默认安装了proxy模块,如果是源码编译,需要加参数–enable-proxy,这里暂不考虑源码安装。

[root@svn conf]# vi httpd.conf   

NameVirtualHost *:80     //编辑apache主配置文件,打开基于域名的虚拟主机支持
include conf/vhost_*.conf         //加载虚拟主机配置文件

[root@svn conf]# vi vhost_linux.conf

<VirtualHost *:80>
ServerAdmin webmaster@dummy-host.example.com
DocumentRoot /var/www/html/linux
ServerName www.linux.com
ErrorLog logs/dummy-host.example.com-error_log
CustomLog logs/dummy-host.example.com-access_log common
</VirtualHost>

[root@svn conf]# vi vhost_win.conf

<VirtualHost *:80>
ServerAdmin webmaster@dummy-host.example.com
ServerName www.windows.com
ErrorLog logs/dummy-host.example.com-error_log
CustomLog logs/dummy-host.example.com-access_log common

ProxyRequests Off

<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass / http://www.windows.com
ProxyPassReverse / http://www.windows.com
</VirtualHost>
重启apche测试。
通过。

注意:
下面要啰嗦一下,但很重要。

因为在测试环境中,客户端需要将www.windows.com和www.linux.com解析到192.168.1.3
在代理服务器中需要修改hosts文件将www.windows.com解析到192.168.1.2,如果不修改,页面是打不开的。因为是在内网实现,对公网没有影响。
在192.168.1.2服务器中的iis还可以继续实现基于域名的虚拟主机。这样可以方便代理服务器对192.168.1.2实现多个域名的代理。
在公网环境中,域名解析到实际的代理服务器,在内网代理服务器中,修改hosts,指定域名的内网ip。
(似乎写的比较啰嗦)

apache中proxy模块参考文档:https://www.rootop.org/ApacheManual/Apache2.2_zh_CN/mod/mod_proxy.html
ProxyPass           //一个远端服务器映射到本地服务器的URL空间中
ProxyPassReverse    //调整由反向代理服务器发送的HTTP应答头中的URL