freebsd以其简洁、高效、安全完全征服了我,相见恨晚。其气质就是有追求的程序一样,什么可以被清清楚楚,明明白白的看到,控制到。再也不用suse, redhat这些发行版,太花了。先从一个nice的内核开始!
===================
编译内核
去掉本机不用的硬件支持,去掉不用文件系统NTFS, IPV6这些东西。
内核选项除了能明确其意义的去掉没关系。但改一些参数,还是到sysctl里调,除非能有一个度量的结果。否则网上说的那些优化参数绝大多数过时了,帮不到你什么忙。若不知,勿调。
如果系统没有kernel的源码,就用sysinstall在CD里装一下,这种方法最简洁!
sysintall这种不用X系统的图形化配置工具,真是让人非常喜爱。并不是什么都要命令行。
在/usr/src下
make buildkernel KERNCONF=*
记得install
make installkernel KERNCONF=*
===========================
安装Port技巧
用portsnap fetch extract update 比svup方便,高效的多
绝大多数软件都可以在port下找到,包括ruby、nginx, mongodb,这比自己去下源码安装方便多了
在编译时,为了不总弹出编译选项选择,最快编译好。
export BATCH="yes"
make -DBATCH install clean
使用axel加速port下载
a.axel(据说能搞定文件夹钳套,不错!推荐使用 )
cd /usr/ports/ftp/axel
make install clean
vi /etc/make.conf 加入
FETCH_CMD=axel -a
DISABLE_SIZE=yes
vi /usr/local/etc/axelrc 修改代码
#num_connections = 4
num_connections = 10
=================
安装必要的利器
freebsd虽然简约,但高级的利器如bash, vim还是不能少的。用其它的难爱。有了port非常方便,在windows下装个软件也没有这么方便啊!
在port里install bash
chsh 改bash为自己的shell
同样的,在vim里 make install clean
=================
用pkg_add包安装
用port下源代码安装太费时间,直接用pkg_add要快的多,推荐安装那些非关键软件,版本新旧没有太大关系,而关键软件还是用port安装!pkg_add安装好处是快,不好的地方,会直接安装依赖的软件包,而这些软件包有可能会产生冲突。
pkg_add -r vim
vim, bash, svn都用apk_add安装
==============
清理服务
关掉sendmail, freebsd是个干净的系统,不知为何,sendmail被打开了呢。在rc.conf中
sendmail_enable="NONE"
打开sshd
sshd_enable='YES'
这样的Freebsd非常nice,总共才用了28M内存!
==============
防火墙
ipfilter要比官方的ipfw要精小,规则要明了一点,决定使用之。
规则:
pass in quick on em1 proto tcp from any to any port=22 flags S keep state
pass in quick on em1 proto tcp from any to any port=80 flags S keep state
pass in quick proto icmp from any to any icmp-type 8 keep state
pass out quick proto icmp from any to any icmp-type 8 keep state
#pass out quick proto tcp from any to any keep state
#pass out quick proto udp from any to any keep state
block out quick all
block in quick all
以下几条由于最后二条,就不再使用
block in log quick all with short
block in log quick all with ipopts
block in log quick all with frag
block in log quick all with opt lsrr
block in log quick all with opt ssrr
当需要向外部要安装软件什么的,就可以去掉#,打开对外通讯
==============
安全:
有些敏感的文件如psswd, ipf.rules都要设成600,中有root才有权限查阅
accton打开系统计帐功能
用newsyslog配置日志文件压缩与归档
mongod服务默认打开了27017,28017,等于打开了数据库大门!在启动参数里加上--bind_ip 127.0.0.1,不向外开放端口,这样外部就访问不到了!
=================
硬件性能测量
只有测度才能有进步,理论上我们应清楚所有硬件、带宽、操作系统、应用软件的吞吐量,与所用代价。
测试硬件性能有unixbench, 测试带宽有iperf, 服务则用 iperf -sD -p80 (开到80测试用)
测试硬盘,做一个简单的benchmark,不用像windows系统找第三方软件, 用diskinfo -vt /dev/ad0就搞定!
==============
RoR生产环境搭建
基本环境:
用port安装ruby, mongo, nginx
安装gem
注意的是在freebsd, gem不在ruby发行中,需要独立安装,port目录/usr/ports/devel/ruby-gems
安装rails后bundle
有了gem就可以装rails, 装好rails 3×就用了bundle。
如果用了iconv, 需要在单独装
在/usr/ports/convert/ruby-iconv
生产环境不用装文档gem install --no-rdoc --no-ri ×××,是不是有点洁癖!
项目环境
只用在本地装capistrano把项目部署装到服务器(本项目用svn,没有就用pkg_add装一个),项目上去就好办了, bundle install 把组件都装上!
bundle install --without=development (去除没有必要的gem包)
capistrano
在本地安装,远程部署到生产服务环境。
为了把Unicorn集成进去,需要把unicorn启动,停止和重启写到cap任务中。
namespace :deploy do
desc "start unicorn"
task :start, :roles => :app do
run "cd #{current_path} && /usr/local/bin/unicorn_rails -c #{current_path}/config/unicorn.rb -E production -D"
end
desc "stop unicorn"
task :stop, :roles => :app do
run "kill -QUIT `cat #{current_path}/tmp/pids/unicorn.pid`"
end
desc "restart unicorn"
task :restart, :roles => :app, :except => { :no_release => true } do
run "kill -USR2 `cat #{current_path}/tmp/pids/unicorn.pid`"
end
end
Nginx+Unicorn
unicorn作为应为服务器可以用unix socket端口侦听
worker_processes 3
working_directory "/yourapp"
# This loads the application in the master process before forking
# worker processes
# Read more about it here:
# http://unicorn.bogomips.org/Unicorn/Configurator.html
preload_app true
timeout 30
# This is where we specify the socket.
# We will point the upstream Nginx module to this socket later on
listen "/yourapp/tmp/sockets/unicorn.sock", :backlog => 64
pid "/yourapp/tmp/pids/unicorn.pid"
# Set the path of the log files inside the log folder of the testapp
stderr_path "/yourapp/log/unicorn.stderr.log"
stdout_path "/yourapp/log/unicorn.stdout.log"
======
常用路径
mongod启动脚本:/usr/local/etc/rc.d/mongod
分享到:
相关推荐
FreeBSD下搭建高性能企业级网关与代理服务器FreeBSD下搭建高性能企业级网关与代理服务器
通过上述步骤,我们可以成功地在FreeBSD上搭建一套完整的开发环境,包括但不限于CVS Server、Samba Server和NFS Server等服务。相比于其他操作系统,FreeBSD提供了更加稳定、安全且高效的开发环境,特别适合于企业级...
FreeBSD操作系统知识点: 1. FreeBSD概述:FreeBSD是一个自由的类Unix操作系统...而在FreeBSD上搭建C++开发环境的步骤涉及到虚拟机的创建、硬件配置、系统安装以及基本配置,为进行C++编程提供了一个良好的系统环境。
搭建一个大型网站架构的实验环境,特别是在FreeBSD系统设置篇中,涉及到了多个关键的知识点,包括系统安装后的基础设置、网络配置、SSH服务配置、密钥认证以及系统的升级等。下面将对这些知识点进行详细解析。 ### ...
Nginx采用了epoll (Linux 2.6内核) 和 kqueue (FreeBSD) 网络I/O模型,这使得它在高并发连接场景下表现出色,可处理超过50,000个并发连接,相比Apache服务器在资源消耗上更为节省。在国内,Nginx已被许多大型网站如...
在FreeBSD操作系统上安装并配置CompizFusion桌面环境是一个技术性强且有趣的过程,它可以为用户提供炫酷的3D特效和高度自定义的工作环境。CompizFusion是Compiz的一个分支,它集成了多种视觉效果插件,为Linux和类...
过程中涉及了FreeBSD的包管理、PHP环境搭建、MySQL/MariaDB配置、Web服务器配置等多个IT技术点。通过这个过程,你可以学习到如何在类UNIX系统中管理和部署Web应用程序,这对于系统管理员和开发人员来说是非常重要的...
在本实验环境中,我们将利用FreeBSD操作系统来搭建一个大型网站架构,主要涉及的组件包括Nginx、Squid和Apache。这样的配置旨在提供高效、稳定且可扩展的服务,适用于处理高流量的网站需求。 首先,我们要在VMware...
对于中文化环境的搭建,FreeBSD提供了完整的中文支持。首先,需要安装中文语言包: ``` pkg install zh-lang ``` 然后,设置locale(区域和语言设置)为中文,比如简体中文(zh_CN),在`/etc/locale.conf`中添加...
11. **开发环境**:针对开发者,讲述了如何在FreeBSD上搭建开发环境,包括编译器、调试器和其他开发工具的使用。 手册的维护是由FreeBSD文档项目团队进行的,他们不断更新内容以适应FreeBSD的最新版本。此外,还有...
这个资源包提供了所有必需的组件,使得开发者可以按照文档逐步操作,在Linux环境中搭建起Ruby on Rails的开发环境。对于初学者或需要在非标准环境中部署RoR应用的人来说,这是一个非常有价值的资源。
在FreeBSD下用源代码安装DHCP服务是一个深入理解网络基础设施...至此,DHCP服务已经在FreeBSD下成功安装并配置完成,网络设备将能够自动从DHCP服务器获取IP地址,简化了网络管理流程,提高了网络环境的灵活性和稳定性。
这里主要介绍在VMware环境下安装FreeBSD 7.0的过程。 ##### (1)准备环境 - **安装VMware Workstation**:确保你的主机系统已安装VMware Workstation或类似虚拟机软件。 - **下载FreeBSD 7.0 ISO镜像**:访问...
接下来,我们详细介绍一下在FreeBSD环境下制作U盘启动盘的步骤和所涉及的知识点: 1. 首先,我们需要准备一个空的U盘,其存储空间至少需要足够放下FreeBSD的bootonly镜像文件,大约50MB左右。制作过程中,U盘上所有...
freeBSD11.0系列安装文档,本人实际操作记录,希望给大家带来上些帮助
在给定的`freebsd.tar.gz`压缩包中,包含的是FreeBSD v4.4版本的内核源码,这对于那些对操作系统底层原理、内核编程或者想要深入理解FreeBSD操作系统的开发者和爱好者来说,是一份宝贵的资源。 **1. BSD内核架构** ...
搭建一个大型网站架构的实验环境(FreeBSD系统安装篇)(FreeBSD系统设置篇)(FreeBSD系统优化篇)(Nginx代理服务器篇)(Squid缓存服务器篇)(Web服务器篇)(集成篇)(虚拟机篇)
FreeBSD11下安装Apache24的详细过程