- 浏览: 2887902 次
- 性别:
- 来自: 武汉
-
文章分类
- 全部博客 (1173)
- 名言警句 (5)
- 心情随笔 (50)
- 数据库 (57)
- Java基础 (241)
- J2EE框架 (91)
- 数据结构 (12)
- 程序设计 (21)
- WEB技术 (128)
- 网络日志 (12)
- IT资讯 (247)
- linux (64)
- solaris (2)
- 其它 (143)
- WebService (4)
- 日语学习 (2)
- 机器人 (5)
- Android (5)
- cgywin (3)
- Game (1)
- DWR (1)
- spring (8)
- canvas (1)
- Guava (3)
- Modbus (5)
- 测试 (6)
- mongodb (9)
- Quartz (2)
- Cron (1)
- windows (2)
- 持续集成 (1)
- bootstrap (3)
- 结对编程 (1)
- nodejs (1)
- Netty (1)
- 安全 (3)
- webstorm (2)
- sparkline (1)
- Job (1)
- git (3)
- Maven (3)
- knockout (5)
- jquery (1)
- bower (1)
- docker (1)
- confluence (4)
- wiki (1)
- GoogleMap (1)
- jekyll (10)
- ruby (2)
- npm (3)
- browserify (1)
- gulp (3)
- openwrt (1)
- discuz (3)
- 输入法 (1)
- JPA (1)
- eclipse (2)
- IntelliJ (1)
- css (1)
- 虚拟机 (1)
- 操作系统 (1)
- azkaban (2)
- scrum (1)
最新评论
-
pangxiea_:
你好, 想请问一下 Linux下 这么使用rxtxcomm 在 ...
使用Java进行串口通信 -
abababudei:
请教一下,这个您是怎么解决的:/dev/ttyS2enteri ...
Java应用程序的MODBUS通讯 -
xuniverse:
hannibal005 写道楼主,我问下 request.se ...
用javascript与java进行RSA加密与解密 -
atxkm:
找了一下午,终于找到了
gulp 拷贝文件时如何移除文件目录结构 -
kalogen:
gtczr 写道非常感谢,经过我自己的修改,已经完美实现。发出 ...
用javascript与java进行RSA加密与解密
概述
本文主要是为了做虚拟主机的人准备的,做resin的虚拟主机有几种方式:
1.缺省情况下,root用户运行resin,最不安全
强烈不建议这种方式,不过这种方式基本不需要配置
2.以另外一个用户,例如resin用户来运行resin
安全一些,类似缺省apache的方式,不过需要配置一些目录设置,否则无法运行
3.每个虚拟主机一个用户,虚拟主机用户多的时候太麻烦,不过最安全.
用户之间互不影响.配置相对麻烦一些.
安装
resin默认仅提供了源码方式,所以需要编译安装.(有第三方提供了rpm,但还是自己编译好控制和升级).
resin和apache的连接模块也需要编译,所以还需要apache有apxs程序,一般apache编译的版本才有这个程序,所以我们只好编译安装apache.
一般用户还需要安装php等等,不在赘述,下面开始安装.
下载apache 2.0.54,php5.0.5 or php 4.4,resin rpo 3.0.14,放在/temp目录下,并用tar zxvf命令展开.
编译安装apache,类似命令如下
./configure --prefix=/web/apache --with-mpm=worker --enable-so --enable-rewrite
make
make install
注意允许了apache的so模块和rewrite模块,开启apache的worker工作方式,具体请参考apache的文档.如果用户需要其他设置,请浏览configure的帮助. (./configure --help)
编译php4:
./configure --prefix=/web/php --with-apxs2=/web/apache/bin/apxs --with-config-file-path=/web/php --with-mysql
make
make install
指定php安装目录,设定apache的目录和php.ini的目录,并配置mysql.开启其他选项也请看帮助.
安装后把php.ini-recommend 复制到/web/php/php.ini,然后按照自己的需要修改.
(主要修改Safe_mode为on等等安全措施)
php5提示:如果同时安装mysql和mysqli,生成的Makefile会有一个小错误,多了一个-lmysqlclient ,去掉即可. ( http://cn.php.net/mysqli )
安装jdk:
下载rpm包安装
设置JAVA_HOME变量,把jdk/bin目录加入到path里
并把tools.jar设置到classpath中.classpath里面还要包括当前路径,也就是一个点.
一般是通过修改/etc/profile设置,可搜索相关文档.
编译resin:
./configure --prefix=/web/resin --with-apxs=/web/apache/bin/apxs
make
make install
resin默认提供了启动脚本,位于contrib目录下,我一般把init.resin.in复制到/etc/init.d/resin,然后使用checkconfig 设置,可以打开这个文件看看如何设置.
然后打开这个文件,修改JAVA_HOME,RESIN_HOME为实际目录:
JAVA_HOME=/usr/java/jdk1.5
RESIN_HOME=/web/resin
至此,apache,php,resin的默认设置就可以运行了.
注:resin安装的时候,已经把和apache连接的模块和配置都设置好了,可以打开apache的httpd.conf看看:
LoadModule caucho_module modules/mod_caucho.so
ResinConfigServer localhost 6802
CauchoStatus yes
其中php 的设置也自动设置好了,如下:
LoadModule php5_module modules/libphp5.so
#
# Cause the PHP interpreter to handle files with a .php extension.
#
AddType application/x-httpd-php .php
# AddType application/x-httpd-php-source .phps
设置apache
首先是设置apache的基本属性:
调整cgi设置,如果你要运行cgi程序: AddHandler cgi-script .cgi .pl
设置默认编码 AddDefaultCharset GB2312
DirectoryIndex DirectoryIndex index.htm index.html index.php index.jsp
连接数:参考文档吧,这个要根据实际情况调整了,注意如果是worker模块,设置worker部分的连接数即可
邮件地址ServerAdmin
Group nobody
为了java web程序的安全,我们在httpd.conf里加入
<LocationMatch "/WEB-INF/">
AllowOverride None
deny from all
</LocationMatch>
<LocationMatch "/META-INF/">
AllowOverride None
deny from all
</LocationMatch>
我们在apache里新增一个虚拟主机:
<VirtualHost *:80> ServerAdmin testuser@testuser.com DocumentRoot /home/testuser/html ServerName www.testuser.com ServerAlias testuser.com ftp.testuser.com ScriptAlias /cgi-bin/ "/home/testuser/cgi-bin/" <Directory /home/testuser/cgi-bin/> ##本用户可以运行cgi,其他用户要看httpd.conf的设置了,我是没有默认开启的,只允许特定用户运行cgi AddHandler cgi-script .pl .cgi </Directory> ##把日志放到自己的目录下,这样用户可以看自己的日志了,出了错误好跟踪 ErrorLog /home/testuser/tmp/log/testuser-error_log CustomLog /home/testuser/tmp/log/testuser-access_log common </VirtualHost>
注:如果/home/testuser/tmp/log目录权限可以设置为合适的用户权限,方便用户管理日志,例如删除
为了防止日志过大,还可以浏览logratate,cronolog等程序来设置.例如,安装了cronolog的情况下设置为:
CustomLog "|/usr/local/sbin/cronolog /home/testuser/tmp/log/access_%m_%d.log" common
警告:为了用户能删除日志,你可能需要对目录做额外设置(例如777),否则用户是不能删除目录下的文件的. 或者采用定期删除日志的方法也可以.
设置resin
新增一个resin用户,为了运行resin,这个用户要求有shell,不能是true或者nologin.假设我们增加了一个用户resin,组也是resin.
修改/etc/init.d/resin,修改一行:
USER=resin
这样默认resin程序就以resin用户的身份运行了,为了运行缺省的程序,需要把resin安装目录的所有owner,group修改为resin.resin,递归修改.
负载均衡:resin支持设置多个端口启动,来做负载均衡,可以参考相关文档.
<cluster> <srun server-id="" host="127.0.0.1" port="6802"/> <srun server-id="" host="127.0.0.1" port="6803"/> <srun server-id="" host="127.0.0.1" port="6804"/> </cluster>
对应apache的httpd.conf也要修改:
ResinConfigServer localhost 6802
ResinConfigServer localhost 6803
ResinConfigServer localhost 6804
因为apache默认已经有access日志了,还可以关闭resin的access日志.
<access-log path="logs/resinlog/access.log"
format=’%h %l %u %t "%r" %s %b "%{Referer}i" "%{User-Agent}i"’
rollover-period="1D"/>
注释掉这段即可关闭.
现在我们来配置对应apache的虚拟主机:
<host id=’’> <web-app id=’/’ document-directory="/home/testuser/html"> <work-dir>/home/testuser/tmp/work</work-dir> <temp-dir>/home/testuser/tmp/tmp</temp-dir> <stdout-log path=’/home/testuser/tmp/resinlog/stdout.log’ rollover-period=’1D’ archive-format="stdout_%m%d.log" /> <stderr-log path=’/home/testuser/tmp/resinlog/stderr.log’ rollover-period=’1D’ archive-format="stderr_%m%d.log" /> </web-app> </host>
注意如果有多个虚拟主机,id需要写上域名,因为目前只有一个虚拟主机,所以id为空就是默认的都访问这个.
<host id=’www.testuser.com’>
我们可以看到,这个虚拟主机设置了resin的work-dir和resin-dir,并设置了stdout和stderr日志,都放在用户的目录下.
如果不设置work-dir的话,resin默认是在WEB-INF下建立一个work目录.
如果不设置temp-dir的话,resin默认是在WEB-INF下建立一个tmp目录.
但是用户的目录对resin来说是没权限的,所以要首先建立这些目录,并且设置目录的owner是resin,这样resin程序才能操作.
(root用户运行情况下不存在此问题)
两种日志也放到用户的目录下,方便用户调试,除错,日志目录的owner也要设置为resin,否则也无法正常运作.日志设置为一天产生一个,可以根据需要修改.
警告:为了用户能删除日志,你可能需要对目录做额外设置(例如777),否则用户是不能删除目录下的文件的. 或者采用定期删除日志的方法也可以.
警告:work,tmp,resinlog目录都是必须要管理员建立的,并设置为resin用户拥有,否则resin无法运行,而且注意目录不应该被web页面访问到.
发表评论
-
30个你必须熟记的CSS选择器
2015-06-27 08:44 1787你学会了基本的id,class类选择器和descendant ... -
40 个超棒的免费 Bootstrap HTML5 网站模板
2015-04-11 16:12 2908Bootstrap 是快速开发Web应用程序的前端工具包。它 ... -
必须记住的 30 类 CSS 选择器
2014-12-30 08:56 1017大概大家读知道`id`,`class`以及`descenda ... -
如何防止google map 加载Roboto字体
2014-12-26 13:16 893思路是在window.onload中当检测到加载Roboto ... -
JavaScript Equality Table
2014-12-09 16:17 1906Tables displaying the issue: ... -
WebStorm快捷键收集
2014-11-25 10:40 30211、webstorm快捷键: IntelliJ-Idea ... -
webstorm 常用快捷键
2014-08-25 15:58 958常用快捷键 Ctrl+/ 或 Ctrl+Shift+/ ... -
how to change bower components folder
2014-08-25 09:26 7881. create the file bower.json ... -
程序员应该知道的 13 个设计技巧
2014-07-14 09:34 758开发你的美感 … 我最喜欢的站点是: a ... -
tomcat7中tomcat-users.xml配置
2014-04-26 15:48 723将以下代码加入tomcat-users.xml中,即可登录t ... -
tomcat-maven-plugin的使用
2014-03-04 10:52 895环境: Ubuntu 8.10, tomcat6, ma ... -
Jsp动态显示服务器时间
2013-12-31 13:16 1093<script language=" ... -
前端工程与性能优化(下):静态资源管理与模板框架
2013-09-25 08:57 1005本系列文章从一个全新的视角来思考web性能优化与前端工程之间 ... -
前端工程与性能优化(上):静态资源版本更新与缓存
2013-09-20 09:35 985每个参与过开发企业级 ... -
Handy and Useful jQuery Snippets for Developers
2013-09-18 15:43 822jQuery is a cross browser Java ... -
11 个用来创建图形和图表的 JavaScript 工具包
2013-08-13 07:00 1379Aristochart DEMO || Download ... -
Jive 论坛 license破解
2013-08-03 13:27 13431. 找到文件 \admin\global.jspf 注释 ... -
2012年度最佳Web前端开发工具和框架
2013-01-10 10:52 17892012年,Web 开发领域继续在快速的发展,HTML5 ... -
为网页设计师准备的 10 个色彩方案生成器
2012-02-22 23:01 1228Pictaculous ColorExplo ... -
13个最常用的CSS和HTML快速开发工具
2012-02-21 08:18 12871)CleverCSS CleverCSS ...
相关推荐
python学习资源
jfinal-undertow 用于开发、部署由 jfinal 开发的 web 项目
基于Andorid的音乐播放器项目设计(国外开源)实现源码,主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。
python学习资源
python学习资源
python学习一些项目和资源
【毕业设计】java-springboot+vue家具销售平台实现源码(完整前后端+mysql+说明文档+LunW).zip
HTML+CSS+JavaScarip开发的前端网页源代码
python学习资源
【毕业设计】java-springboot-vue健身房信息管理系统源码(完整前后端+mysql+说明文档+LunW).zip
成绩管理系统C/Go。大学生期末小作业,指针实现,C语言版本(ANSI C)和Go语言版本
1_基于大数据的智能菜品个性化推荐与点餐系统的设计与实现.docx
【毕业设计】java-springboot-vue交流互动平台实现源码(完整前后端+mysql+说明文档+LunW).zip
内容概要:本文主要探讨了在高并发情况下如何设计并优化火车票秒杀系统,确保系统的高性能与稳定性。通过对比分析三种库存管理模式(下单减库存、支付减库存、预扣库存),强调了预扣库存结合本地缓存及远程Redis统一库存的优势,同时介绍了如何利用Nginx的加权轮询策略、MQ消息队列异步处理等方式降低系统压力,保障交易完整性和数据一致性,防止超卖现象。 适用人群:具有一定互联网应用开发经验的研发人员和技术管理人员。 使用场景及目标:适用于电商、票务等行业需要处理大量瞬时并发请求的业务场景。其目标在于通过合理的架构规划,实现在高峰期保持平台的稳定运行,保证用户体验的同时最大化销售额。 其他说明:文中提及的技术细节如Epoll I/O多路复用模型以及分布式系统中的容错措施等内容,对于深入理解大规模并发系统的构建有着重要指导意义。
基于 OpenCV 和 PyTorch 的深度车牌识别
【毕业设计-java】springboot-vue教学资料管理系统实现源码(完整前后端+mysql+说明文档+LunW).zip
此数据集包含有关出租车行程的详细信息,包括乘客人数、行程距离、付款类型、车费金额和行程时长。它可用于各种数据分析和机器学习应用程序,例如票价预测和乘车模式分析。
把代码放到Word中,通过开发工具——Visual Basic——插入模块,粘贴在里在,把在硅基流动中申请的API放到VBA代码中。在Word中,选择一个问题,运行这个DeepSeekV3的宏就可以实现在线问答
【毕业设计】java-springboot+vue机动车号牌管理系统实现源码(完整前后端+mysql+说明文档+LunW).zip
【毕业设计】java-springboot-vue交通管理在线服务系统的开发源码(完整前后端+mysql+说明文档+LunW).zip