存档

文章标签 ‘Apache’

Ubuntu下Subversion集成Redmine用户认证

2011年1月16日 8 条评论
No Gravatar

事实上,没有什么事比这件更让人上火。在此之前,一切如此顺利,apt-get和少有的几个小修改就可以解决,而且Google之后可以得来的资料非常丰富。这一件呢?搜索出来的结果居然会导致配置错误。

话说要完成集成认证,首先要安装这个模块libapache2-mod-auth-mysql,因为我安装的Redmine后台使用的是mysql,如果postgresql或sqlite,那就自行找相关的模块吧。

sudo apt-get install libapache2-auth-mysql

创建视图:

CREATE VIEW users_auth_external AS
SELECT u.login AS username,
       u.hashed_password AS passwd,
       GROUP_CONCAT(p.identifier) AS groups
FROM `members` m
INNER JOIN users u ON m.user_id = u.id
INNER JOIN projects p ON m.project_id = p.id
WHERE u.status = 1
GROUP BY username

配置:

下面列出了两种配置方式,新版本是我在Ubuntu 10.10下缺省使用apt-get安装后可用的版本,但是搜索一般得来的结果以第一种居多(最恶的是在这个模块sourceforge的主站上得到的居然是老版本的内容):

# 老版本 新版本
# AuthMySQLEnable On

AuthMySQLHost 192.168.xxx.xxx

AuthMySQLUser redmine

AuthMySQLPassword redmine_password

AuthMySQLDB redmine087

AuthMySQLUserTable “users, members” #注意这儿跟上不一样

AuthMySQLNameField login

AuthMySQLPasswordField hashed_password

AuthMySQLPwEncryption sha1

AuthMySQL On

AuthMySQL_Authoritative on

AuthMySQL_Host localhost

AuthMySQL_DB my_database

AuthMySQL_User my_database_user

AuthMySQL_Password my_database_password

AuthMySQL_Password_Table users_auth_external

AuthMySQL_Group_Table users_auth_external

AuthMySQL_Username_Field username

AuthMySQL_Password_Field passwd

AuthMySQL_Group_Field groups

AuthMySQL_Encryption_Types SHA1Sum

经常搞不懂这种修改有什么意义。因为看起来就是改变了名字而已。也许是开发人员的习惯或者本尊更换以致于见不得不同风格的内容,但是这种变化给人带来的不便却是显而易见的。即便是开源软件,即便是施福于人的东西,这种变更也让人心生不满。虽然渐近不惑,惑日渐多。不过也容易明白,有时候自己也会做错事。或许不惑之说无外乎警醒我们年华已逝,剩下的时间多干点正事儿吧,又或许是说你想怎么干就怎么干,爽才是真正的不惑吧。

参照:

1. 使用Apache为subversion做出认证
2. Authenticate Apache against Redmine with AuthMySQL
3. libapache2-auth-mysql主站

Ajaxterm – Web Based SSH Terminal Client

2010年8月15日 1 条评论
No Gravatar

官方主站:Ajaxterm

安装很简单:
sudo apt-get install ajaxterm

这个包需要openssh-server
建议包含的包括:rssh molly-guard openssh-blacklist openssh-blacklist-extra
推荐的包:python-psyco

安装好之后,用/etc/init.d/ajaxterm start|stop启用服务,就可以访问http://127.0.0.1:8022来使用term了。

本来以为后续会非常容易,但是参照http://wiki.kartbuilding.net/index.php/Ajaxterm所给出的内容,在缺省安装的情况下还是遇到了不少的麻烦。


ln -s /etc/apache2/mods-available/proxy.conf /etc/apache2/mods-enabled/proxy.conf
ln -s /etc/apache2/mods-available/proxy.load /etc/apache2/mods-enabled/proxy.load
ln -s /etc/apache2/mods-available/proxy_http.load /etc/apache2/mods-enabled/proxy_http.load

等同于


sudo a2enmod proxy
sudo a2enmod proxy_http

编辑/etc/apache2/sites-available/default-ssl文件:


<virtualhost *:443>
        SetEnvIf Request_URI "^/u" dontlog
        ErrorLog /var/log/apache2/error.log
        Loglevel warn
        SSLEngine On
        SSLCertificateFile /etc/apache2/ssl/apache.pem

        ProxyRequests Off
        <proxy *>
                AuthUserFile /srv/ajaxterm/.htpasswd
                AuthName EnterPassword
                AuthType Basic
                require valid-user

                Order Deny,allow
                Allow from all
        </proxy>
        ProxyPass / http://localhost:8022/
        ProxyPassReverse / http://localhost:8022/
</virtualhost>

其中我修改了一处:
SSLCertificateFile /etc/apache2/ssl/apache.pem

SSLCertificateFile /etc/apache2/ssl/server.crt
SSLCertificateKeyFile /etc/apache2/ssl/server.key
这两个文件的创建如:


$sudo openssl req -new -x509 -nodes -out server.crt -keyout server.key

这样直接启动apache还是会出错,因为/srv/ajaxterm所需要的文件并不存在。


sudo mkdir /srv/ajaxterm
sudo htpasswd -bc /srv/ajaxterm/.htpasswd [user] [pass]

重新启动apache2,在另一台电脑上登录。接受了SSL的认证登录后,上面熟悉的登录界面出现了。

参考:
1. AjaxTerm
2. Ubuntu Document – AjaxTerm
3. SSL/TLS Strong Encryption: FAQ
4. Running a Reverse Proxy in Apache
5.

Redmine on Ubuntu

2010年8月14日 3 条评论
No Gravatar

今天安装一下Redmine,据说Ubuntu 10.04下安装非常容易,因为源里已经有了。直接apt-get即可。
1. 安装配置


sudo apt-get install redmine redmine-pgsql

支持mysql用redmine-mysql,支持postgresql的话用redmine-pgsql。因为昨天的安装测试为trac安装了postgresql,所以省掉安装另一种数据库了。
阅读全文…

在Apache2中启用mod_rewrite模块

2010年5月4日 没有评论
No Gravatar

在使用ubuntu的过程中,安装和使用mod_rewrite已经到了非常方便的地步。apache2现在对于modules的管理配置极为简洁。
记住这两个目录:
/etc/apache2/mods-available
/etc/apache2/mods-enabled
对应的mod_rewrite的配置在rewrite.load文件里。
想要启用,只需要ln -s 这个文件到mods-enabled里,重新启动apache服务器即可。

以你想要使用rewrite功能的网站配置文件里,比如/etc/apache2/sites-available/000-default
找到下列行:
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
修改成:
Options Indexes FollowSymLinks MultiViews
AllowOverride all
Order allow,deny
allow from all
即可

参考:
how to enable mod_rewrite in apache2.2 (debian/ubuntu)

一个.htaccess文件工具

2010年4月20日 没有评论
No Gravatar

一个.htaccess文件工具
http://cooletips.de/htaccess/

分类: 软件推荐 标签: , ,

windows主机的IIS连接数限制,Linux的Apache连接限制,PHP的CPU限制

2010年1月5日 没有评论
No Gravatar

关于IIS连接数,也叫IIS并发数,是指同一时间内,有多少个对服务器的请求。只有windows主机上才会有,微软操作系统为了系统安全,规定了系统的用户连接数,也就包括其中的IIS链接,而在目前常用服务器系统windows server 2003,可以不限制连接数,但不限制IIS连接数带来的后果可能就是整台服务器不稳定,既出现宕机的现象,而导致你的网站无法访问!如果你的网站超过了系统所规定的IIS连接数,就会出现Service Unavailable提示,也会无法访问了。

那么主机商所限制的IIS连接数是否能满足自己的需求呢?下面对一些朋友们容易混淆的问题给出解答,以更好的帮助朋友们理解IIS连接数这一限制!

1,第一个问题就是朋友们最关心的关于网站在线人数的问题,例如一个IIS连接数是1000的主机,最多同时允许多少人访问呢?

IIS连接数是1000的,理论上来说可以达到同时在线一千人,但很难达到同时一千人在线,如上所说IIS连接数是指同一时间内,对服务器发出请求的个数,这样就会出现如下情况,如在访问页面的同时在下载,这至少算是两个线程了,如果你的网站页面内存在框架(iframe),那么用户每访问的一个页面,同时又调用其他页面(框架(iframe))这也就不算一个线程了!综上,一个IIS连接数是1000的主机很难达到同时一千人在线的!

2,IIS连接数不限制有好处吗?

不限制IIS,你的网站就可以同时像服务器发出无限个请求,似乎是一件很好的事情,但任何服务器都是有其承受能力的,这与主机的硬件设施有关!就算一个网站用一台服务器都会有着IIS连接超过服务器上限的可能,更何况是有着上百个网站在一台服务器下面的虚拟主机了呢?如果不限制IIS,主机商就需要相应的限制流量,或者CPU占用率,否则这样的虚拟主机是一定不能租用的,因为你的网站很可能会在一台稳定性很差的虚拟主机上!

3,多大的IIS连接数限制适合自己呢?

这就要根据你的网站情况而定了,一般虚拟主机商会根据不同大小空间的主机规定其IIS连接数的上限,这一上限并不是主机商随意定的,而是根据整体服务器的稳定运行所能达到的最大承受能力测算所得!到底多少IIS连接上限的主机空间适合你?则要综合考虑目前网站一般的同时在线人数,以及网站的是否有很多可以下载的资源,网站是否存在框架(iframe)来综合测得,既需要了解平均一个用户会占用多少个线程?。以我的windows主机商务型512M空间举例,其IIS连接数最大为200个,考虑一个用户会同时打开多个页面等综合因素,至少能达到70人同时在线,这样的网站一天能够达到多少独立 IP?512M空间能达到这么多的独立IP也是一件不易的事情了,所以建议一般网站无需为IIS连接数而担心,而如果你的网站独立IP确实很大,或者一个独立IP经常会占有多个线程,还是综合考量,选择上限更大的IIS连接数为好!

4,如何减少一个用户平均占用的IIS连接数呢?

减少一个用户平均占用的IIS连接数也会很好的提高网站同时的在线人数,名典给出的建议就是,尽量让用户在同一浏览器窗口进行网站的访问,既减少使用“在新窗口中打开页面(_blank)”!这也是减少IIS连接数占用,提高在线人数的一个最为有效的方法!在和其他网站做友情链接时尽量不要调用本站的代码或图片(可以将图片上传至其他服务器存储),同时减少图片盗链也是一个值得注意的问题。

5,Linux主机为什么不存在IIS连接数限制?

IIS限制是windows主机所特有的,在Linux主机存在着Apache连接限制,若进行Apache限制,则需要一个专门的模块既的 module,module是一个很偏门的模块,其在国内没有几个人能运用好的,所以Linux主机对Apache连接数也很少有着限制,对CPU的限制即是对PHP相关的限制,在目前的Linux主机上尚未有相应的模块可以实现,只能使用效率低下的CGI模式进行限制,这在很大程度上影响了服务器的运行效率(windows主机使用的是iis的程序池提供的功能可以进行相关的限制)所以目前的Linux主机只能在流量上做出相应的限制以保证服务器的稳定,不限制CPU不代表名典主机会放弃对CPU资源占用的关注,我们会一直对CPU占用资源的使用进行监测,进行及时的调控,这也是保证服务器稳定运行的一个重要手段!

虚拟主机主要分为三类流量限制:

一:流量限制
就是直接限制网络流量,这种限制通常是最严厉的一种流量限制,10个g的流量大体支持50人在线以内.当月流量超过后,在一个月内网站都不能正常访问了,解决办法是升级空间或加大流量!

二:cpu限制
cpu 限制看起来没有限iis或网络流量,但由于每一个程序运行都需要一定的cpu配额,也是变相的流量限制,通常网页显示在线过多都是由于cpu限额过小引起的!通过刷新或15秒后可以得到暂时的正常运行,通常1%的cpu限额相当于20个iis连接!这对于论坛空间很重要,论坛的cpu限额一旦过小就会不能正常运行!

三:iis限制
iis限制是现在用的最多的,也是被大多用户或主机商认可,是唯一宽松的流量限制,通常20个iis就相当于1%cpu占用!

总而言之,虚拟主机实际上没有不限流量的,总的可以分为以上三种方式,您如何选择,要看您的需要,假如您的程序占用cpu很少,是优化的程序可以选择限 cpu的,这样您的在线就可以得到最大的发挥,假如您是初学者,或是论坛用户,或网站程序中有bbs,选择iis限制或直接流量限制是一个好的选择!

来源:windows主机的IIS连接数限制,Linux的Apache连接限制,PHP的CPU限制

分类: 技巧, 技术 标签: , , , ,

Switch to our mobile site