按这些MOD服务器mod和客户端mod得什么配置

服务器mod配置怎么改?_饥荒联机吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0可签7级以上的吧50个
本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:53,333贴子:
服务器mod配置怎么改?
比如物品上限mod默认99,想调到250。按照百度搜到的方法改modinfo.lua,没有任何用处。。。
冷暖辐射板节能,运营成本低,温度分布均匀,是高大空间建筑采暖的最佳选择!
你开全物品制造得了,更方便
我自己都是开新世界,设置好mod 之后生成世界,然后把存档的lua 覆盖到客户端那边去
补充标题,自建的服务器
贴吧热议榜
使用签名档&&
保存至快速回贴配置svnlinux端服务器
PS:今天给开发的同事搭建一个公网的SVN Server,google一下,发现下面这篇最详细,就记录下来,重新排版一下。顺便根据自己的使用经验,补充了几个细节和总结。本文配置是基于CentOS 5.x的,但一样适用于其他发行版!
SVN简介和工作原理
subversion(简称svn)是近几年崛起的版本管理软件,是cvs的接班人,目前绝大多数开源软件都使用svn作为代码版本管理软件。Subversion支持linux和windows,但较多安装在linux下。
svn服务器有两种运行方式:独立服务器和借助于apache。 svn://或http://
svn客户端tortoisesvn
svn的基本工作原理: 在一台服务器上建立一个源代码库,库里可以存放许多不同项目的源程序。有源代码库管理员统一管理这些源程序。每个用户在使用源代码库之前,首先要把源代码库里德项目文件下载到本地,然后开发人员可以在本地修改,左后用svn命令进行提交,游源代码库统一管理修改。
版本控制解决了:
*代码管理混乱
*解决代码冲突困难
*在代码整合期间引发bug
*无法对代码的拥有者进行权限控制
*项目不同版本的发布困难
SVN工作原理示意图:
subversion目录说明:
*dav目录:是提供apache与mod_dav_svn使用的目录,让他们存储内部数据
*db目录:就是所有版本控制的数据存放文件
*hooks目录:放置hook脚本文件的目录
*locks目录:用来放置subversion见艰苦锁定数据的目录,用来追踪存取文件库的客户端
*format文件:是一个文本文件,里面只放了一个整数。表示当前文件库配置的版本号
*conf目录:是这个仓库的配置文件(仓库的用户访问账号、权限等)
SVN Server详细配置手册
CentOS 5.8 最小化安装(关闭iptables和selinux) + ssh + yum
一,安装必须的软件包.
yum install subversion -server httpd mod_dav_svn mod_perl sendmail wget gcc-c++ make unzip perl* ntsysv vim-enhanced
subversion (SVN服务器)
mysql-server (用于codestriker)
httpd mod_dav_svn mod_perl (用于支持WEB方式管理SVN服务器)
sendmail (用于配置用户提交代码后发邮件提醒)
wget gcc-c++ make unzip perl* (必备软件包)
ntsysv vim-enhanced (可选)
二,基本的SVN服务器配置
1,新建一个目录用于存储SVN所有文件
# mkdir /home/svn
2,新建一个版本仓库
# svnadmin create /home/svn/project
3,初始化版本仓库中的目录
# mkdir project project/server project/client project/test (建立临时目录)
# svn import project/ file:///home/svn/project -m &初始化SVN目录&
# rm -rf project (删除临时建立的目录)
4,添加用户
要添加SVN用户非常简单,只需在/home/svn/project/conf/passwd文件添加一个形如&username=password&的条目就可以了。为了测试,我添加了如下内容:
# harry = harryssecret
# sally = sallyssecret
pm = pm_pw
server_group = server_pw
client_group = client_pw
test_group = test_pw
5,修改用户访问策略
/home/svn/project/conf/authz记录用户的访问策略,以下是参考:
project_p = pm
project_s = server1,server2,server3
project_c = client1,client2,client3
project_t = test1,test1,test1
[project:/]
@project_p = rw
[project:/server]
@project_p = rw
@project_s = rw
[project:/client]
@project_p = rw
@project_c = rw
[project:/doc]
@project_p = rw
@project_s = r
@project_c = r
@project_t = r
说明:以上信息表示,只有project_p用户组有根目录的读写权。r表示对该目录有读权限,w表示对该目录有写权限,rw表示对该目录有读写权限。最后一行的* =表示,除了上面设置了权限的用户组之外,其他任何人都被禁止访问本目录。这个很重要,一定要加上!
6,修改svnserve.conf文件,让用户和策略配置升效.
svnserve.conf内容如下:
anon-access = none
auth-access = write
password-db = /home/svn/project/conf/passwd
authz-db = /home/svn/project/conf/authz
7,启动服务器
# svnserve -d -r /home/svn
注意:如果修改了svn配置,需要重启svn服务,步骤如下:
# ps -aux|grep svnserve
# kill -9 ID号
# svnserve -d -r /home/svn
8,测试服务器
# svn co svn://192.168.60.10/project
Authentication realm: &svn://192.168.60.10:41-2dae-4c23-97fd-9e1ed7f0d18d
Password for 'root':
Authentication realm: &svn://192.168.60.10:41-2dae-4c23-97fd-9e1ed7f0d18d
Username: server_group
Password for 'server_group':
svn: Authorization failed ( server_group没用根目录的访问权 )
# svn co svn://192.168.60.10/project
Authentication realm: &svn://192.168.60.10:41-2dae-4c23-97fd-9e1ed7f0d18d
Password for &root&:
Authentication realm: &svn://192.168.60.10:41-2dae-4c23-97fd-9e1ed7f0d18d
Username: pm
Password for &pm&:
A project/test
A project/server
A project/client
Checked out revision 1. ( 测试提取成功 )
# cd project/server
# vim main.c
# svn add main.c
# svn commit main.c -m &测试一下我的C程序,看什么看,不行啊??&
Adding main.c
Transmitting file data .
Committed revision 2. ( 测试提交成功 )
三,配置SVN服务器的HTTP支持
1,转换SVN服务器的密码
由于SVN服务器的密码是明文的,HTTP服务器不与支持,所以需要转换成HTTP支持的格式。我写了一个Perl脚本完成这个工作.
脚本内容如下:
# cd /home/svn/project/conf/
# vim Pto.pl
#!/usr/bin/perl
# write by huabo,
#open the svn passwd file
open (FILE, &passwd&) or die (&Cannot open the passwd file!!!n&);
#clear the apache passwd file
open (OUT_FILE, &&webpasswd&) or die (&Cannot open the webpasswd file!!!n&);
close (OUT_FILE);
foreach (&FILE&) {
if($_ =~ m/^[^#].*=/) {
$_ =~ s/=//;
`htpasswd -b webpasswd $_`;
# chmod +x PtoWP.pl
# ./PtoWP.pl
Adding password for user pm
Adding password for user server_group
Adding password for user client_group
Adding password for user test_group
现在目录下会多一个webpasswd文件。
2,修改httpd.conf,添加关于SVN服务器的内容
编辑/etc/httpd/conf/httpd.conf,在最后添加如下信息:
&Location /project&
SVNPath /home/svn/project/
AuthType Basic
AuthName &svn for project&
AuthUserFile /home/svn/project/conf/webpasswd
AuthzSVNAccessFile /home/svn/project/conf/authz
Satisfy all
Require valid-user
&/Location&
3,修改svn目录的属主为apache帐号:chown -R apache.apache /home/svn/project/
(注意:原文少了这一步,会出权限问题。)
4,重启Web服务器:
# /etc/init.d/httpd restart
Stopping httpd: [FAILED]
Starting httpd: [ OK ]
5,用访问http://192.168.60.10/project/server/测试
测试结果如下图所示:
( 测试成功 )
四,配置邮件提醒支持
1,安装Perl模块Module::Build
# wget http://search.cpan.org/CPAN/authors/id/D/DA/DAGOLDEN/Module-Build-0.36_11.tar.gz
# tar xvf Module-Build-0.36_11.tar.gz
# cd Module-Build-0.36_11
# perl Build.PL
# ./Build test
# ./Build install
2,安装Perl模块Authen::SASL
# wget http://search.cpan.org/CPAN/authors/id/G/GB/GBARR/Authen-SASL-2.15.tar.gz
# tar xvf Authen-SASL-2.15.tar.gz
# cd Authen-SASL-2.15
# perl Makefile.PL
# make test
# make install
3,安装Perl模块Net::SMTP_auth
# wget http://search.cpan.org/CPAN/authors/id/A/AP/APLEINER/Net-SMTP_auth-0.08.tar.gz
# tar xvf Net-SMTP_auth-0.08.tar.gz
# cd Net-SMTP_auth-0.08
# perl Makefile.PL
# make test
# make install
4,安装Perl模块SVN::Notify
# wget http://search.cpan.org/CPAN/authors/id/D/DW/DWHEELER/SVN-Notify-2.80.tar.gz
# tar xvf SVN-Notify-2.80.tar.gz
# cd SVN-Notify-2.80
# perl Build.PL
# ./Build test
# ./Build install
5,启动邮件服务器
# service sendmail restart
Shutting down sendmail: [FAILED]
Starting sendmail: [ OK ]
Starting sm-client: [ OK ]
6,配置自动发邮件脚本
修改post-commit脚本,以支持邮件通知功能.
# cd /home/svn/project/hooks/
# vim post-commit
REPOS=&$1&
/usr/bin/svnnotify &repos-path &$1&P &revision &$2&P &to
&handler &HTML::ColorDiff& &with-diff &smtp localhost &smtp-user root &smtp-pass
-c &UTF-8&P -g zh_CN -o raw &svnlook /usr/bin/svnlook &subject-prefix &[SVN Update]&
(to参数代表接收邮件的地址,可以有多个,当你有多个老大的时候,这就很重要了,:)。from参数是虚拟的,代表你的发送地址,一般情况下,这个参数 不重要,但如果接收者的邮件服务器有反垃圾邮件的功能,需要判定源地址的话,这个参数是否合法就显得很重要了)
再给该脚本添加可执行权限
# chmod +x post-commit
7,再次提交时,就会给指定邮件地址发信了。
如下图所示:
五,其它常用配置
1,强制写log脚本
配置pre-commit文件,要求用户每次更新文件都必须写log.
# cd /home/svn/project/hooks/
# vim pre-commit
文件内容如下:
REPOS=&$1&
SVNLOOK=/usr/bin/svnlook
LOGMSG=`$SVNLOOK log -t &$TXN& &$REPOS& | grep &[a-zA-Z0-9]& | wc -c`
if [ &$LOGMSG& -lt 5(要求的log长度,依实际需要修改) ];
echo -e &nEmpty log message not allowed. Commit aborted!& 1&&2
配置完成后,给本件加上可执行权限。再提交代码时,就必须按要求写注释了,:)
2,可修改log脚本
配置pre-revprop-change文件,此文件在show log中修改log时会运行,得到修改的权限,否则会报错:DAV it&s possible that the repository&s pre-revprop-change hook either failed or is non-existent. At least one pr repository is unchanged
# cd /home/svn/project/hooks/
# vim pre-revprop-change
文件内容如下:
REPOS=&$1&
PROPNAME=&$4&
if [&$PROPNAME& = &svn:log&];then exit 0;fi
配置完后加可执行权限升效。
六,备份管理
svn服务器的定期备份是很重要的,最简单的方式是定时备份仓库目录。
1,新建备份目录
# mkdir /opt/project_backup
2,编写备份脚本
# cd /home/svn/
# vim project_backup.sh
#!/bin/bash
#write by huabo,
cd /home/svn
now=`/bin/date +%Y%m%d`
/bin/tar czvf &project_backup_$now.tar.gz& project/ && rm -rf /opt/project_backup/* && /bin/mv project_backup_*.tar.gz /opt/project_backup/
if [ $? == 0 ]
result=&OK!!&
result=&False!!&
#send mail to administrator
-s &project_backup_$now& &&MESSAGE
Result: `/bin/echo $result`
给该脚本添加可执行权限。
3,设定每天定时执行该脚本.
# crontab -e
输入如下内容:
0 23 * * * /home/svn/project_backup.sh
表示每天晚上23点运行此脚本。
经过以上三步操作,就可以自动备份SVN资料了,且不论备份是否成功,都会给用户发送邮件信息。
七,用svnstat分析SVN数据.
1,安装JAVA
svnstat是JAVA应用程序,需要先安装JAVA环境。
下载jre,URL: /webapps/download/AutoDL?BundleId=39484
# chmod +x jre-6u20-linux-i586-rpm.bin
# ./jre-6u20-linux-i586-rpm.bin
2,下载svnstat
# wget http://downloads.sourceforge.net/project/svnstat/svnstat/Release-1.0/SvnStat-1.0.zip?use_mirror=jaist
# unzip SvnStat-1.0.zip
3,更新代码
# svn co svn://192.168.60.10/project
A project/test
A project/server
A project/server/main.c
A project/client
Checked out revision 5.
4,生成svnstat数据
# svn log project -v &xml &non-interactive & project.log
# cd SvnStat-1.0
# java -classpath SvnStat-all.jar de.agentlab.svnstat.SvnStat -jar SvnStat-all.jar -r /root/project.log -d /var/www/html/
5,用浏览器登录即可看到许多统计出来的图表。大致如下图所示:
八,用statsvn分析SVN数据
1,下载statsvn
# wget http://downloads.sourceforge.net/project/statsvn/statsvn/0.7.0/statsvn-0.7.0.zip?use_mirror=jaist
# unzip statsvn-0.7.0.zip
# cd statsvn-0.7.0
2,生成statsvn数据
# mkdir /var/www/html/statsvn
# java -jar statsvn.jar -verbose -output-dir /var/www/html/statsvn/ /root/project.log /root/project
3,用浏览器测测试效果如下图:
九,配置codestriker.
1.安装codestriker依赖的perl包.
# perl -MCPAN -e &install &Template&&
2.下载codestriker
# wget http://downloads.sourceforge.net/project/codestriker/codestriker/1.9.10/codestriker-1.9.10.tar.gz?use_mirror=jaist&ts=
# mkdir /var/www/codestriker
# cd /var/www/codestriker
# tar xvf /path/codestriker-1.9.10.tar.gz
# chown -R apache.apache codestriker-1.9.10
# service mysqld restart
# mysql -uroot mysql
CREATE DATABASE codestrikerdb CHARACTER SET utf8;
GRANT SELECT,INSERT,UPDATE,DELETE,INDEX,ALTER,CREATE,DROP,REFERENCES ON codestrikerdb.* TO codestriker@localhost IDENTIFIED BY &cspasswd&;
FLUSH PRIVILEGES;
4.配置codestriker
# cd codestriker-1.9.10/
# vim codestriker.conf
注意以下几点(详细可查看codestriker的安装文档)
a.数据库的用户名密码要配对
b.svn的数据仓库要配对,我的如下:
@valid_repositories =
&svn:file:///home/svn/project&,
5.执行codestriker的安装脚本
# ./install.pl
6.配置http支持
# vim /etc/httpd/conf/httpd.conf
在最后面加上如下内容:
Alias /codestriker/ /var/www/codestriker/codestriker-1.9.10/cgi-bin/
Alias /codestrikerhtml/ /var/www/codestriker/codestriker-1.9.10/html/
&Directory &/var/www/codestriker/codestriker-1.9.10/cgi-bin/&&
SetHandler perl-script
PerlHandler ModPerl::Registry
Options +ExecCGI
&/Directory&
&Directory &/var/www/codestriker/codestriker-1.9.10/html/&&
AllowOverride None
Allow from all
&/Directory&
7.重启Web服务
# service httpd restart
8.在浏览器中输入http://192.168.60.10/codestriker/codestriker.pl即可访问,如下图:
(window.slotbydup=window.slotbydup || []).push({
id: '2467140',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467141',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467142',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467143',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467148',
container: s,
size: '1000,90',
display: 'inlay-fix'z永 的BLOG
用户名:z永
文章数:85
评论数:198
访问量:187866
注册日期:
阅读量:5863
阅读量:12276
阅读量:391282
阅读量:1082187
51CTO推荐博文
Web服务器概述Web服务器也称WWW服务器,主要功能是提供网上信息浏览服务。WWW采用的是客户端/服务器端结构,其作用是整理和储存各种WWW资源,并响应客户端软件的请求,把客户所需的资源传送到客户端的机器上并显示出来。HTTP协议简介 & HTTP(HyperText Transfer Prototcol,超文本传输协议)是Internet上应用最为广泛的一种网络协议,所有的www文件都必须遵循这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。 & HTTP事务:一个HTTP事务即客户端发出一个“HTTP请求”命令和服务器回复“HTTP响应”结果的过程。“HTTP请求”和“HTTP响应”均为格式化的数据块,它们被称作HTTP报文。 & HTTP方法:HTTP协议支持多个不同的请求命令,这些请求命令称作HTTP方法。每个HTTP请求报文都必须指定其请求方法,用于通知服务器进行什么样的响应动作。常见的HTTP方法有GET、HEAD、POST、PUT、DELETE、OPTIONS、TRACE等。(1)OPTIONS:返回服务器针对特定资源所支持的HTTP请求方法,也可利用向web服务器发送“*”的请求来测试服务器的功能性。(2)HEAD:这一方法可以在不必传输整个响应内容的情况下,就可以获取包含在响应消息头中的元信息。(3)GET:向特定的资源发送请求。(4)POST:向指定的资源提交数据进行处理请求(比如提交表单等)。数据被包含在请求体中。这种请求可能会导致新的资源的建立或已有资源的修改。(5)PUT:向指定资源位置上传其最新内容。(6)DELETE:删除指定资源(7)TRACE:回显服务器收到的请求。 & HTTP的响应码:HTTP服务器回应客户端状态码主要有一下几个: & & 1xx: 信息性状态码,这一类状态码代表请求已被接受,需要继续处理。 & & &100:客户端应当继续发送请求。这个临时响应用来通知客户端部分请求已被接受请继续发送请求信息。 & & &101:服务器已经理解了客户端的请求,并将通知客户端采用不同的协议来完成这个请求。 & & 2xx: 成功状态码 & & &200:OK:请求已成功,请求所希望的响应头或数据体将随此响应返回。 & & 3xx: 重定向状态码 & & &301:永久重定向,也就是说被请求的资源已永久移动到新位置; Location响应首部的值仍为当前URL,因此为隐藏重定向;
& & &302:临时重定向,也就是说请求的资源现在临时从不同的URL响应请求;又称显式重定向, Location响应首部的值为新的URL喔。 & & &304:Not Modified如果客户端发送了一个带条件的GET请求且该请求已被允许,而文档中的内容(自上次访问以来或者根据请求的条件)并没有改变,则服务器应当返回这个状态吗。 & & &4xx: 客户端错误状态码 & & & 404:Not Found请求失败,请求所希望得到的资源未被在服务器上发现,一般这个状态码被广泛应用于当前服务器不想揭示到底为何请求被拒绝或者没有其他适合的响应可用的情况下。 & & &5xx: 服务器端错误状态码 & & & 500:Internal Server Error服务器遇到了一个未曾预料的状况,导致了它无法完成对请求的处理。一般来说,这个问题都会在服务器的程序码出错时出现。 & & & 502:Bad Gateway作为网关或者代理工作服务器尝试执行请求时从上游服务器接收到的无效响应。 & & & 504:GatewayTimeout:作为网关或者代理服务器尝试执行请求时未能及时从上游服务器或者辅助服务器(比如DNS)收到响应。 & 一次HTTP事务完成的过程:也就是一次web服务器的工作过程 & & & 建立连接――接受或拒绝客户端连接请求; & &接收请求――通过网络读取HTTP请求报文; & &处理请求――解析请求报文并做出相应的动作; & &访问资源――访问请求报文中相关的资源; & &构建响应――使用正确的首部生成HTTP响应报文; & &发送响应――向客户端发送生成的响应报文; & &记录日志――当已经完成的HTTP事务记录进日志文件; & 目前的web服务器软件非常多,最流行的web服务器包含以下几种: & Apache HTTP Server、nginx(轻量级,更多新技术)、lighttpd(轻量级)等等。Apache概述Apache HTTP Server简称Apache是Apache基金会的一个开源Web服务器,可以在大多数操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的web服务器端软件之一。apache的服务脚本:/etc/rc.d/init.d/httpdapache的运行目录:/etc/httpdapache的配置文件:/etc/httpd/conf主配置文件:httpd.conf扩展配置:/etc/httpd/conf.d/*.confapache的端口:http:80/tcp,apache的网页文件目录:/var/www/htmlapache的CGI目录:/var/www/cgi-bin/Apache常见配置修改配置文件的原则:所有#号开头的都为注释部分,指令(参数)不区分字符大小写,但有个习惯:单词的首字母大写;指令的值(路径)很有可能区分大小写;有些指令可以重复使用多次哦。[root@www conf]# grep "Section" httpd.conf
### Section 1: Global Environment
### Section 2: 'Main' server configuration
#主服务器配置
### Section 3: Virtual Hosts
#虚拟服务器配置解析:这是查询配置文件的构成。全局配置:对主服务器或虚拟机都有效,且有些功能是服务器自身工作属性;主服务器配置:网站,主站属性;虚拟主机配置:虚拟主机及属性定义;注意:主服务器段和虚拟主机段不能同时启用。也就是说提供主服务器无法构建虚拟服务器只能有一个站点;构建虚拟服务器,虽然可以构建多个站点但是没有主服务器。检查配置文件语法配置:# service httpd configtest或 &# httpd -t大多数配置修改后,使用service httpd reload即能生效;而修改了监听的地址和端口通常需要重启服务(service httpd restart)。常见的配置:1、配置监听的地址和端口 & Listen[IP:]PORT & 注:IP可以省略,若是省略表示当前主机上的所有IP & Listen指令可以指定多个;但是不要冲突哦! & Listen & 80 & Listen & 8080 & 或:Listen 172.16.18.1:8080 & & & Listen 172.16.18.100:8080[root@www conf]# vim httpd.conf
# prevent Apache from glomming onto all bound IP addresses (0.0.0.0)
#Listen 12.34.56.78:80
Listen 172.16.18.1:8080
#配置监听到8080
############查看tcp监听地址################
root@www conf]# ss Ctanl
Recv-Q Send-Q
Local Address:Port
Peer Address:Port
172.16.18.1:8080
:::*2、配置所选用的MPM的属性MPM是多道处理模块,定义apache响应多个用户同时请求时候的响应模型(工作模型)。常见的有三个:worker|prefork|eventprefork: 一个主进程,然后根据设置以及连接情况生成相应的子进程数而这些子进程是实现一个进程响应一个请求;但是在性能上,开销过大。达不到我们的要求。如果连接数过多的话,会导致我们无法远程登陆,一定要等到连接数下降后才能连接,这也是最让人头痛的事情。 & &主进程功能 & & & (1) 启动服务时绑定特权端口; & & & (2) 回收子进程; & & & (3) 读取分析主配置文件; & & & (4) 监听用户请求派发子进程。 & worker:一个进程生成多个线程,一个线程响应一个请求(来自用户客户端的请求);event:是基于事件驱动来定义的,在http2.2版本上默认为测试使用的。查看现使用的mpm模块[root@www ~]# httpd Cl
#显示核心模块
Compiled in modules:
#直接编译进来的模块
#apache的核心模块
#现使用的模型
http_core.c
#http的核心模块
#支持动态模块对象
[root@www ~]# 解析:这个命令只能显示核心模块,若想查看已经装载的共享模块可使用[root@www ~]# httpd &-t -DDUMP_MODULES 命令进行查看。配置mpm模块[root@www conf]# vim httpd.conf
# prefork MPM
# StartServers: number of server processes to start
# MinSpareServers: minimum number of server processes which are kept spare
# MaxSpareServers: maximum number of server processes which are kept spare
# ServerLimit: maximum value for MaxClients for the lifetime of the server
# MaxClients: maximum number of server processes allowed to start
# MaxRequestsPerChild: maximum number of requests a server process serves
&IfModule prefork.c&
#条件性指令,判断条件存在与否
StartServers
#启动几个空闲子进程
MinSpareServers
#最少空闲进程数
MaxSpareServers
#最大空闲进程数
ServerLimit
#最多允许并发接进来的同时处于活动状态的进程个数
MaxClients
#最多允许多少个客户端连接进来
MaxRequestsPerChild
#一个进程最多可以处理多少请求
&/IfModule&
# worker MPM
# StartServers: initial number of server processes to start
# MaxClients: maximum number of simultaneous client connections
# MinSpareThreads: minimum number of worker threads which are kept spare
# MaxSpareThreads: maximum number of worker threads which are kept spare
# ThreadsPerChild: constant number of worker threads in each server process
# MaxRequestsPerChild: maximum number of requests a server process serves
&IfModule worker.c&
StartServers
#启动几个服务线程
MaxClients
#最多允许连进来的客户端的个数
MinSpareThreads
#最少空闲线程数
MaxSpareThreads
#最大空闲线程数
ThreadsPerChild
#每个进程允许生成多少线程数
MaxRequestsPerChild
&/IfModule&启用worker类型的MPM模块,可编辑/etc/sysconfig/httpd配置文件,定义如下行:HTTPD=/usr/sbin/httpd.worker
#将此行启用即可3、配置服务器支持长连接或持久链接(keep-alived)长连接,指在一个连接上可以连续发送多个数据包,在连接保持期间,如果没有数据包发送,需要双方发链路检测包,长连接多用于操作频繁,点对点的通讯,而且连接数不能太多的情况。[root@www conf]# vim httpd.conf
# KeepAlive: Whether or not to allow persistent connections (more than
# one request per connection). Set to "Off" to deactivate.
KeepAlive Off
#默认关闭状态;开启KeepAlive On
# MaxKeepAliveRequests: The maximum number of requests to allow
# during a persistent connection. Set to 0 to allow an unlimited amount.
# We recommend you leave this number high, for maximum performance.
MaxKeepAliveRequests 100
#一次持久连接内最多可以请求的资源
# KeepAliveTimeout: Number of seconds to wait for the next request from the
# same client on the same connection.
KeepAliveTimeout 15
#定义超时时间4、配置加载的模块或共享对象的 & 格式:LoadModule foo_module modules/mod_foo.so & 指定模块名称指定模块路径(相对路径,相对于ServerRoot而言的)###########程序自带的模块,可参考路径#############
LoadModule auth_basic_module modules/mod_auth_basic.so
LoadModule auth_digest_module modules/mod_auth_digest.so
LoadModule authn_file_module modules/mod_authn_file.so
LoadModule authn_alias_module modules/mod_authn_alias.so
LoadModule authn_anon_module modules/mod_authn_anon.so
LoadModule authn_dbm_module modules/mod_authn_dbm.so5、配置站点根目录[root@www conf]# vim httpd.conf
DocumentRoot "路径"
#网页存放目录
&Directory "文件系统路径"&
#容器类指令
&/Directory&
#说明用户在访问这么页面资源时应该以什么样的权限进行访问
################或:########################
DocumentRoot "路径"
#网页存放目录
&Location "URL"&
#也是容器类指令,通常用于定义访问方法
&/Location&
解析:容器类路径:用来配置一个路径下所能访问的网页页面文件所使用的方法,特性等等6、配置页面文件访问属性[root@www conf]# vim httpd.conf
&Directory "FS_PATH"&
#容器类指令,定义访问属性
#是否允许索引页面文件,如果不是下载站点建议关闭;
FollowSynLinks:
#是否跟随软链接文件;
SymLinksifOwnerMatch:
#跟随符号链接前提是属组为apache访问目录
#是否允许执行CGI脚本;
#使用所有选项
#不使用任何选项
&/Directory&7、访问控制法则 & 基于客户端(IP)访问控制:(只适用于apache2.4) & Order:定义allow和deny哪个为默认法则;写在后面的为默认法则:写在前面的指令没有明确定义的即受后面的指令控制;Order allow,deny
Allow from all
#all表示所有客户端主机
#################例################
Deny from 172.16.18.1
Allow from 172.16.0.0/16
#测试显示:地址范围定义的越小越是最佳匹配 & 基于用户访问控制 & 首先使用directory封装一下明确说明那个目录下的内容作访问控制就可以了。DocumentRoot "/var/www/html"
&Directory "/PATH/TO/DocumentRoot_SUBDIR"&
Options None
AllowOverride AuthConfig
#是否允许覆盖
AuthName "Realm"
AuthType Basic
#认证类型(摘要认证和基本认证(Basic))
AuthUserFile /path/to/passwords
#用户账号文件
Require jerry tom
#定义哪些用户可以登录
&/Directory& & 然后建立用户帐号文件htpasswd -c -m /path/to/password_file USERNAME & & 解析:-c创建新文件;若没有这个文件第一次创建才使用,以后若再使用会将原有文件覆盖 & & & & & -m 表示使用md5加密方式存放的 & & & & & -s使用SHA方式加密的 & & & & & -p明文存放密码,这种不安全###############示例演练:#######################
[root@www cgi-bin]# htpasswd -c -m /etc/httpd/conf/.htpass jerry
#创建文件.htpass(隐藏文件)后要紧跟用户名
New password:
#输入用户密码
Re-type new password:
Adding password for user jerry
[root@www cgi-bin]# cat /etc/httpd/conf/.htpass
jerry:$apr1$BBBECiJ2$rj8hI7Becv3ycuI4eQiN4.
[root@www cgi-bin]# htpasswd -m /etc/httpd/conf/.htpass zhao
#添加用户,紧记不可再使用-c不然会被覆盖的
New password:
Re-type new password:
Adding password for user zhao
[root@www cgi-bin]# cat /etc/httpd/conf/.htpass
jerry:$apr1$BBBECiJ2$rj8hI7Becv3ycuI4eQiN4.
zhao:$apr1$ogTx3d8r$Kr4v9nhr7zjVb4LJV/uXs/
[root@www conf]# mkdir /var/www/html/downloads
#创建目录文件
[root@www conf]# vim httpd.conf
#编辑配置文件
&Directory "/var/www/html/downloads"&
Options Indexes
AllowOverride AuthConfig
AuthName "Only for employees."
AuthType Basic
AuthUserFile /etc/httpd/conf/.htpass
Require valid-user
#允许所有用户登录
&/Directory&
[root@www conf]# cp /etc/fstab /var/www/html/downloads/
#复制文件到此目录中
[root@www conf]# service httpd reload
#重新加载httpd
Reloading httpd:650) this.width=650;" src="/attachment/210994.png" title="登录.png" style="float:" alt=".png" />8、让每个用户都有自己的网站:userdir&IfModule mod_userdir.c&
# UserDir is disabled by default since it can confirm the presence
# of a username on the system (depending on home directory
# permissions).
UserDir disabled
#默认是禁用此功能的;启用注释此项
# To enable requests to /~user/ to serve the user's public_html
# directory, remove the "UserDir disabled" line above, and uncomment
# the following line instead:
#UserDir public_html
#启用此项,也就是说每个用户在自己的家目录下建一个public_htm目录,然后在此目录下建立一个网页文件,并且让这个网页具有所有人访问权限。
&/IfModule&[root@www conf]# setfacl -m u:apache:x /home/ username /
#让apache有访问家目录权限站点访问:http://HOST/~username9、定义默认主页面DirectoryIndex
index.php index.jsp index.html
#自左而右依次寻找10、配置日志功能 & apache的日志文件是通过自己来管理的,日志类型有两类:访问日志(格式需自定义)、错误日志。 & &定义错误日志:ErrorLog"/path/to/error_log_file" & &定义访问日志:CustomLog/PATH/TO/CUSTEOM_LOG_FILE LOGFORMAT
###########/PATH/TO/CUSTEOM_LOG_FILE:定义路径信息############
###########LOGFORMAT:表示指定日志格式################例如:CustomLoglogs/access_log combined常见日志格式:#############这些格式信息在配置文件中都存在###############
LogFormat "%h %l %u %t \"%r\" %&s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %&s %b" common
LogFormat "%{Referer}i -& %U" referer
LogFormat "%{User-agent}i" agent
##############系统默认使用第一种日志格式##############
[root@www logs]# tail access_log
172.16.254.58 - - [07/Aug/:52 +0800] "GET /~jerry HTTP/1.1" 404 284 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.15 Safari/537.36" & &解析:%h:客户端主机;%l:远程客户端登陆的主机地址(不登陆为空用‘―’表示);%u:认证时所使用的用户名(空用‘―’表示);%t:请求到达的时间;%r:请求报文的起始行; \”:转义字符,转移引号;%&s: 表示原始响应状态码;%b:响应报文的大小以字节为单位;%{Referer}i:定义从哪个超链接跳转过来的;%{User-Agent}i:用户代理。11、设定默认字符集AddDefaultCharset UTF-8
#尽量不要用默认的有时会出现乱码,要根据站点的内容设定字符集。常见的字符集有:ASCII字符集、GB2312字符集、BIG5字符集、 GB18030字符集、Unicode字符集等12、脚本路径别名(定义CGI的执行目录) CGI(CommonGateway Interface)是HTTP服务器与你的或其它机器上的程序进行“交谈”的一种工具,叫做通用网关接口,其程序须运行在网络服务器上。用来解释处理来自表单的输入信息,并在服务器产生相应的处理,或将相应的信息反馈给浏览器。CGI程序使网页具有交互功能。定义: & & & 格式:ScriptAlias /PATH/ /PATH/TO/SOMFEDIR/ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
#所有放在/var/www/cgi-bin/的文件都可以作为cgi的格式来执行,既开放了有定义了别名 & 测试:[root@www conf]# cd /var/www/cgi-bin/
[root@www cgi-bin]# vim test.sh
#!/bin/bash
cat && EOF
Content-Type: text/html
#明确指定格式类型
#明确指定下面是脚本
The hostname is: `/bin/hostname`.
The time is: `date`.
# end of cgi script file
[root@www cgi-bin]# bash -n test.sh
[root@www cgi-bin]# chmod +x test.sh
#赋予权限13、虚拟主机定义:一个web程序进程可以服务于多个站点 虚拟主机类型: & &基于端口的虚拟主机;基于IP的虚拟主机;基于主机名的虚拟主机。注:虚拟主机和主服务器不能同时使用:关闭主服务器,注释主服务器的DocumentRoot即可; & &每个虚拟主机的定义:&VirtualHost IP:PORT&
#指定主机所指定的套接字
ServerName
#指定主机名称
DocumentRoot ""
#指定这个主机的站点路径
&/VirutalHost&
############这里还可以单独定义错误日志和访问日志等等例:(1) 基于端口的虚拟主机172.16.18.1:80 , /web/host1/172.16.18.1:8080, /web/host2/###########确保监听两个端口##############
[root@www conf]# vim httpd.conf
Listen 8080
###########注释掉主服务器################
[root@www conf]# vim httpd.conf
#DocumentRoot "/var/www/html"
###########定义虚拟主机##################
[root@www conf]# vim httpd.conf
### Section 3: Virtual Hosts
&VirtualHost *:80&
ServerName localhost
DocumentRoot "/web/host1"
&/VirtualHost&
&VirtualHost *:8080&
ServerName
DocumentRoot "/web/host2"
&/VirtualHost&
###########创建目录文件##################
[root@www conf]# mkdir /web/host1 Cpv
mkdir: created directory `/web'
mkdir: created directory `/web/host1'
[root@www conf]# mkdir /web/host2 -pv
mkdir: created directory `/web/host2'
[root@www conf]# vim /web/host1/index.html
[root@www conf]# vim /web/host2/index.html
###########检查配置文件##################
[root@www conf]# httpd -t
###########重启服务######################
[root@www conf]# service httpd restart(2)基于IP的虚拟主机172.16.18.1:80 , /web/host1/172.16.18.2:80, /web/host2/############配置两个IP地址##############
[root@www conf]# ifconfig eth0:0 172.16.18.2/16
############编辑配置文件################
&VirtualHost 172.16.18.1:80&
ServerName localhost
DocumentRoot "/web/host1"
&/VirtualHost&
&VirtualHost 172.16.18.2:80&
ServerName
DocumentRoot "/web/host2"
&/VirtualHost&
############重启测试###################
[root@www conf]# service httpd restart650) this.width=650;" src="/attachment/543475.png" title="IP2.png" style="float:" alt=".png" />(3)基于主机名的虚拟主机首先说明在httpd-2.2版本上及其以前的版本上必须启动一个叫做 NameVirtualHost的指令才能完成工作,而在2.4版本以后就不用启动了。172.16.18.1:80 , /web/host1/, 172.16.18.1:80 , /web/host2/, ############编辑启动指令###############
NameVirtualHost 172.16.18.1:80
############编辑虚拟文件属性###########
&VirtualHost 172.16.18.1:80&
ServerName
DocumentRoot "/web/host1"
&/VirtualHost&
&VirtualHost 172.16.18.1:80&
ServerName www.b.org
DocumentRoot "/web/host2"
&/VirtualHost&
[root@www conf]# service httpd restart
###########编辑客户端hosts文件############
172.16.18.1
172.16.18.1
www.b.org###########配置虚拟主机单独额外属性(指定当前虚拟主机有效)###########
#&VirtualHost *:80&
ServerAdmin webmaster@dummy-
DocumentRoot /www/docs/dummy-
ServerName dummy-
ErrorLog logs/dummy--error_log
#定义错误日志
CustomLog logs/dummy--access_log common
#定义访问日志
&Directory ""&
&/Directory&
#定义访问控制容器机制
ScriptAlias /cgi-bin/
#定义CGI脚本的路径别名
#定义自己的路径别名
#&/VirtualHost&HTTPS配置HTTPS是以安全为目标的HTTP通道,即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSLL/TLS会话的建立仅能基于IP地址进行。http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。客户端在使用HTTPS方式与web服务器通信时有以下几个步骤:(1)客户使用https的URL访问web服务器,要求与web服务器建立SSL连接。(2)web服务器收到客户端请求后,会将网站的证书信息传送一份给客户端。(3)客户端的浏览器与web服务器开始协商SSL;连接的安全等级,也就是信息加密的等级。(4)客户端的浏览器根据双方同意的安全等级,建立会话密钥,然后利用的公钥将网站的会话密钥加密,并传送给网站。(5)web服务器利用自己的私钥解密出会话密钥。(6)web服务器利用会话密钥加密与客户端之间的通信。创建过程展示:1)、Apache实现HTTPS需要使用mod_ssl模块,无论采用哪种方式进行配置HTTPS必须首先安装此模块##############安装模块#####################
[root@www ~]# yum -y install mod_ssl
##############查看安装模块后生成的文件###############
[root@www ~]# rpm -ql mod_ssl
/etc/httpd/conf.d/ssl.conf
#被加载的配置文件
/usr/lib64/httpd/modules/mod_ssl.so
/var/cache/mod_ssl
/var/cache/mod_ssl/scache.dir
/var/cache/mod_ssl/scache.pag
/var/cache/mod_ssl/scache.sem
####这些/var/cache/mod_ssl/*文件就是为ssl会话的建立缓存的####2)、自建CA[root@www CA]# (umask 077; openssl genrsa -out private/cakey.pem 2048)
[root@www CA]# openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 365
[root@www CA]# touch index.txt
[root@www CA]# echo 01 & serial3)、为httpd创建私钥签署证书[root@www CA]# cd /etc/httpd/conf
###############生成私钥文件################
[root@www conf]# (umask 077; openssl genrsa -out httpd.key 1024)
###############证书申请####################
[root@www conf]# openssl req -new -key httpd.key -out httpd.csr
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:Henan
Locality Name (eg, city) [Default City]:Zhengzhou
Organization Name (eg, company) [Default Company Ltd]:Magedu
Organizational Unit Name (eg, section) []:Tech
Common Name (eg, your name or your server's hostname) []:
#这里一定是要访问的主机名
Email Address []:
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
####################签署证书######################
[root@www conf]# openssl ca -in httpd.csr -out httpd.crt -days 3654)、配置web的ssl功能[root@www conf]# vim ssl.conf
&VirtualHost _default_:443&
#所有虚拟主机443端口
# General setup for the virtual host, inherited from global configuration
DocumentRoot "/var/web/host1"
#这里为host1主机建立ssl虚拟主机会话
ServerName
#这里要保证和证书名称保持一致
#ServerName :443
# Use separate log files for the SSL note that LogLevel
# is not inherited from httpd.conf.
ErrorLog logs/ssl_error_log
TransferLog logs/ssl_access_log
LogLevel warn
SSL Engine Switch:
Enable/Disable SSL for this virtual host.
SSLEngine on
#是否启用ssl功能
……中间不做阐述…….
# certificate can be generated using the genkey(1) command.
SSLCertificateFile /etc/httpd/conf/httpd.crt
#指定证书文件路径
Server Private Key:
If the key is not combined with the certificate, use this
directive to point at the key file.
Keep in mind that if
you've both a RSA and a DSA private key you can configure
both in parallel (to also allow the use of DSA ciphers, etc.)
SSLCertificateKeyFile /etc/httpd/conf/httpd.key
#指定私钥文件路径
################保存重启服务######################
[root@www conf.d]# service httpd restart5)、测试 命令行测试#############在命令行下可使用openssl s_client测试###############
[root@www conf.d]#openssl s_client -connect :443 -CAfile /etc/pki/CA/cacert.pem
#执行过命令最后一行
GET / HTTP/1.1
#指定请求方法,协议
#指定主机名
HTTP/1.1 200 OK
Date: Wed, 07 Aug :30 GMT
Server: Apache/2.2.15 (CentOS)
Last-Modified: Wed, 07 Aug :31 GMT
ETag: "ee358eee559e1"
Accept-Ranges: bytes
Content-Length: 6
Connection: close
Content-Type: text/ charset=UTF-8
#网页内容 客户端浏览器测试 & & 下载一份证书650) this.width=650;" src="/attachment/706260.png" title="下载证书.png" style="float:" alt=".png" /> & & 将证书名称改为.crt的扩展名结尾安装证书650) this.width=650;" src="/attachment/708728.png" title="证书安装.png" style="float:" alt=".png" /> & & &安装成功登陆测试(这里千万不可使用:443登录哦,要使用登录哦!!)这样,关于HTTPS的设置就基本完成了,关于SSL方面如有不懂可参考上篇博客《Linux加密认证全面解析》也可留言哦!!至此关于web服务器的配置就基本告一段落,如有没有阐述到位或提及的部分请谅解或私信笔者!本文出自 “” 博客,请务必保留此出处
了这篇文章
类别:┆阅读(0)┆评论(0)
本文收录至博客专题:《》
08:09:13 11:22:35 13:12:19 21:13:15 21:31:32

我要回帖

更多关于 tgp饥荒服务器mod 的文章

 

随机推荐