FreeBSD7.2下ports方式安装配置“Nginx0.8.24+PHP5.2.11(FastCGI)+ GD+Mysql5.1.40+系统优化+防ddos攻击”

合集下载

FreeBSD笔记┊ 使用ports来管理软件包

FreeBSD笔记┊ 使用ports来管理软件包

FreeBSD笔记┊使用ports来管理软件包Linux/unix上的软件包真是五花八门,不太统一。

按软件包有redhat下的rpm,ubu ntu的dpkg管理ded包,还有源码编译,pl,py格式的;网络安装有redhat下的yum,ubuntu下的apt-get,suse听说又是另外一套(这个我没用过),现在freebsd下管理网络软件包主要是ports。

今天主要就来学习一下ports的管理。

1、ports套件的安装和简单介绍[1]. 安装ports安装在"FreeBSD笔记┊FreeBSD7.0安装篇之一:系统安装"第6步讲到了,如果你当时没有选择启用ports的话,那么需要在root下输入"sysinstall"来安装它:输入sysinstall --> 选择Configure --> Distributions --> ports,然后安装即可。

[2]. ports路径ports的默认路径是/usr/ports,这个ports的根目录,下面有很多的文件夹及子文件夹,组成一个树状目录,包含大量ports下的软件这些即是套件的软件分类和名称,比如mail代表邮件服务软件;games则是一些游戏;www里面是一些web服务软件;databases则是数据库软件……[root@bsd01 /usr/ports]# cd www[root@bsd01 /usr/ports/www]# ls -d apache*apache-contrib apache13 apache13-modssl+ipv6apache-forrest apache13+ipv6 apache13-sslapache-jserv apache13-modperl apache20apache-mode.el apache13-modssl apache22如果你你需要安装什么软件,只要进入当前目录,然后“make install clean”即可。

Centos7.2安装Nginx实现负载平衡

Centos7.2安装Nginx实现负载平衡

Centos7.2安装Nginx实现负载平衡下载Nginx到官网下载源码文件,可用wget命令下载,也可以在windows系统上下载好再传到linux上。

卸载httpd如果系统默认安装了httpd服务,卸载之。

不卸载也没关系,这里只是方便默认80端口的处理。

yum -y remove httpd解压tar -xzvf nginx-xxxxxx.tar.gz安装编译器和依赖库yum install gcc gcc-c++ zlib-devel pcre-devel openssl-devel openssl-libs o penssl -y如果已经安装,就不必了安装前配置cd命令转到解压后的目录下。

./configure --prefix=/usr/local/nginx这样安装时系统就会把Nginx安装到/usr/local/nginx目录下。

编译make安装make install安装完成,接下来配置环境变量以后就不用使用绝对路径来操作Nginx了:vim /etc/profile.d/http.sh加入以下内容:export PATH=/usr/local/nginx/sbin:$PATH生效配置:source !$启动Nginxnginxnginx -s 后跟stop、reload来关闭和重载nginx,直接运行nginx则启动服务。

如果启动时提示端口被占用,则需要找出被占用的进程,或者更改/usr/local/nginx/conf/nginx.conf文件里的侦听端口。

访问Nginx在浏览器上输入http://ip:port如果出现“Welcome to nginx!”字样,则证明安装成功。

如果访问不了,先确认防火墙是否禁止相应端口了。

负载平衡配置示例#user nobody;worker_processes 2;#error_log logs/error.log;#error_log logs/error.log notice;#error_log logs/error.log info;#pid logs/nginx.pid;events {accept_mutex on; #设置网路连接序列化,防止惊群现象发生,默认为onmulti_accept on; #设置一个进程是否同时接受多个网络连接,默认为offworker_connections 1024;#最大连接数}http {include mime.types;#文件扩展名与文件类型映射表,此映射表主要用于部署在本nginx上的静态资源default_type application/octet-stream;#日志格式log_format main '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent""$http_x_forwarded_for"';access_log logs/access.log main;sendfile on;#tcp_nopush on;keepalive_timeout 65;#连接超时时间gzip on;#反向代理#【配置1】此配置是[配置4]和[配置5]的结合#此配置将请求转发到两个WEB服务器,根据客户端IP分配目标主机,同时按权重分配流量upstream app1 {ip_hash;server 192.168.14.132:8080 weight=5;server 192.168.14.133:80 weight=3;}#【配置2】#默认负载平衡配置,nginx应用HTTP负载平衡来分发请求。

Freebsd7.2下Ports安装PHP5、MySql5.4、Apache22

Freebsd7.2下Ports安装PHP5、MySql5.4、Apache22

<Directory "/usr/local/www/phpMyAdmin">
Options none
AllowOverride Limit
Order Deny,Allow
Deny from all
Allow from 127.0.0.1 #这里可以考虑安全性。
</Directory>
按照上述别名方法,发现在Apache22上并不成功,没有办法,我使用软连接方式实现了,软连接方式相当于将phpmyadmin目录复制到了apache主目录(/usr/local/www/apahce22/data/)中:
$cfg['Servers'][$i]['auth_type'] = 'config';
/* End of servers configuration */
?>
Phpmyadmin的使用:
打开地址http://XXX/phpmyadmin/看是否能使用,登录的用户名和密码是OS的root和密码。
#启动apache
apachectl start
注意这时启动的时候会报一个"No such file or directory: Failed to enable the 'httpready' Accept Filter"错误,经过google后,发现得启动一个内核模块.如下:
cd /usr/local/etc/rc.d/
./mysql-server.sh start
修改mysql的密码:
/usr/local/bin/mysqladmin -u root -p password 'zoux..?'

FreeBSD7安装教程

FreeBSD7安装教程

FreeBSD安装教程文档编写:刘晓晖一、FreeBSD软件获取1.1 Freebsd下载地址:Freebsd的软件下载地址:1.2 Freebsd相关版本下载:在打开FreeBDS网站以后,点击Get FreeBSD Now在Get FreeBSD Now 下面,下面我们会看到很多版本的下载,一般我们选择的是比较新的发行版:RELEASE,另外还有许多CPU适用的版本,而这里我们通常的服务器是I386系列的,所以我们下载的是i386版本,选择ISO镜像文件下载,在网站上,我们看到目前最新发行版为FreeBSD 7.1-RELEASE,选择该版本下载,并选择好相关I386系列的,下载ISO安装包,在里面我们会看到很多文件,这里我们只需要下载7.1-RELEASE-i386-disc1.iso 文件就可以了。

将下载好的ISO文件刻录成安装光盘(注意:直接适用刻录软件用映像文件刻录,请不要将ISO文件解压后刻录,否则刻录以后的光盘无法引导安装程序。

)二、Freebsd安装2.1 FreeBSD安装向导将刻录好的FreeBSD放进光驱,重新启动用光驱引导以后,出现FreeBSD安装画面开始进入安装界面在这里直接敲回车进行默认安装选择国家配置时候选择China 并回车确认这里选择USA ISO 键盘布局并回车在这里选择”Standard”标准安装方式安装并回车这里直接选择OK,回车就可以了2.2 FreeBSD分区选择磁盘分区,这里一些系统会出现很多,一一选择并按D键删除直到只剩下一个分区情况列表(由于磁盘大小不一致,所以图片里面的数值不一致)在这里按A键选择全部分区,然后按Q键退出这里选择”Standard”标准方式安装分区,并回车这里提示直接选OK,回车即可在这里,也是直接按A键,选择自动分配空间,然后Q键退出(注意:由于磁盘大小不同,这里给出的数值也不同!)2.3 FreeBSD安装方式这里选择安装方式,这里选择Minimal方式,空格选择,然后选择OK,回车继续这里选择安装介质选择的是CD/DVD,并回车这里会提示一些信息,选择YES,回车继续开始安装过程……这里有一些提示,选择OK,回车继续2.4 FreeBSD网络配置选择是否配置网络,选择YES,回车继续一般情况下选择第一个(注意:根据网卡型号不同,这里出现的参数也不同)回车继续询问是否适用IPV6协议?选择NO,不使用,回车继续再次询问是否适用DHCH服务,选择NO,不使用,回车继续进入IP地址配置区(Host:填写的是你的主机名,Domain:填写的是你的域,Ipv4 Gateway:填写的是你的网关,Name Server:填写的是你的DNS地址一般填写一个能用的就可以了,Ipv4 Address:填写的是你的IP地址,Netmask:填写的是你的子网掩码,其他的都不用填写了),选择OK,回车继续。

FreeBSD安装教程

FreeBSD安装教程

FreeBSD 8.2图文教程,常用命令以及VI 命令启动mvware虚拟机后,在虚拟光驱中加载FreeBSD系统,启动并按Esc将载入FreeBSD 引导画面,如下图:现在,按回车键或数字1键,选择第1项通过方式启动FreeBSD 安装程序。

如果您不进行选择,安装程序会在十秒后自动使用默认方式启动。

盘方向键选择45 China 中国,为我们的国家,回车键确定。

USA ISO,回车确认进入下一步。

正式进入了安装向导,FreeBSD 7.0 的安装程序名叫Sysinstall。

现在你看到的就是Sysinstall 的主菜单,其中有各种安装选项。

使用方向键选择Standard项目,回车确认,进入标准安装。

现在看到的是分区向导,这里会列出你的硬盘信息。

一般情况下,我们按键盘A键,使用自动分区功能,或者手工创建分区。

这里按A键,自动分区完毕。

按键盘Q键,完成分区。

这里是询问你安装何种硬盘引导程序。

第一项是使用FreeBSD 的启动引导程序,第二项是标准引导,第三项是不安装引导程序。

如果我们安装单操作系统,请选择第二项。

如果有多个操作系统,请选择第一项。

第三项是不安装,这指使用目前已经有的其他操作系统的引导程序。

由于我的虚拟机上安装了多个系统,故选择FreeBSD系统的加载方式(BootMgr),确认。

再确认,进入分区向导。

要注意的是FreeBSD 的磁盘分区与Windows 的分区概念不一样,除了硬盘分区之外,还有一个Label 分区。

我们依然按A键,使用自动分区,软件会为我们分配合适的磁盘分区与虚拟内存,按Q键完成。

现在看到的,是比较重要的部分,选择软件安装包。

我们只需要一个全新干净的FreeBSD,这里我们选择倒数第二项Minimal 最小安装模式,按空格键确认。

这里要注意的是,FreeBSD 有一个很方便的软件包管理和安装器,名叫ports,类似Ubunut 的Apt-get,一般我们都是必须安装的。

安装配置freebsd

安装配置freebsd

一、安装系统这部分比较简单出现启动菜单时,按2(禁用acpi启动,服务器不用电源管理)选择国家->China选择键盘布局->USA ISO出现安装菜单,选择Standard提示需要对硬盘分区,回车,出现分区表,比较简便的方法是按a(使用整个硬盘),分区完成后,按q退出提示选择启动方式->Standard(服务器用的是单系统,所以不需要启动管理器Bootmgr)提示需要划分lable,回车,出现磁盘编辑画面,146G的RAID硬盘/ 512MSWAP 内存X2/var 10240M/tmp 2048M/usr 其它所有的空间.,完成后,按q退出出现安装选项,选择Minimal(最小化安装)选择安装媒体,当然是CD/DVD,出现提示,再次确认。

2-3分钟后安装完成,出现提示,回车确认提示是否配置网络->Yes出现菜单,选择接入公网的网卡/接口提示是否配置ipv6->No提示是否通过DHCP配置(根据自己情况选择)出现网络配置界面,依次检查/填好各选项,确认(如果自定义的网络设置,会提示是否立即应用,确认即可)提示是否将本机作为网关->No提示是否配置inetd->No提示是否启用SSH连接(远程控制)->Yes提示是否应用匿名的FTP->No提示是否将本机作为NFS服务器->No提示是否将本机作为NFS客户端->No提示是否配置系统控制台->No提示是否设定时区/时间->Yes提示是否与UTC同步->No选择区域->Asia选择国家->China选择时区->1出现提示,回车确认提示是否启用Linux二进制兼容->No(可以兼容90%以上的Linux程序,不过服务器用不上)提示配置鼠标->No提示是否永远禁用ACPI->Yes(服务器无需电源管理)提示是否浏览软件包->No提示是否增加用户->Yes(在这里配置将来的远程访问用户)出现菜单,选择User填好Login ID ,Member groups = wheel , Password后确认(提示:FreeBSD默认情况下只允许wheel用户组成员远程登录,需要修改关键配置时可以su到root,这是“”洋葱式“安全机制的体现)退出编辑用户菜单提示配置root密码,回车确认输入2次密码提示是否编辑其它选项->No退出安装菜单出现提示->Yes第一次启动时,会提示生成远程访问密钥,回车确认三、应用程序及服务安装ports首次运行如下命令代码:以后定期不定期运行代码:默认选项2、AMP环境配置安装mysql 5.1QUOTE:# cd /usr/ports/databases/mysql51-server# make install clean ; rehash# cp /usr/local/share/mysql/f /etc/f # cd /usr/ports/databases/mysql51-scripts# make install clean ; rehash# /usr/local/bin/mysql_install_db# ln -s /usr/local/lib/mysql/libmysqlclient.so.12 /usr/lib # chown -R mysql /var/db/mysql# chown -R root /var/db/mysql# chown -R mysql:mysql /var/db/mysql# chmod 777 /var/db/mysql优化mysqlQUOTE:# ee /etc/fCODE:[mysqld]skip-networkingskip-innodbskip-name-resolveskip-locking#log-bin# 以下选项基于2G内存key_buffer=512Mmax_allowed_packet=4Mtable_cache=1024thread_cache=64join_buffer_size=32Msort_buffer=32Mrecord_buffer=32Mmax_connections=512wait_timeout=120interactive_timeout=120max_connect_errors=30000 long_query_time=1max_heap_table_size=256M tmp_table_size=128Mthread_concurrency=8myisam_sort_buffer_size=128M mysql随系统启动# cp /usr/local/etc/rc.d/mysql-server /usr/local/etc/rc.d/mysql.sh # ee /etc/rc.confCODE:mysql_enable="YES"启动mysqlCODE:cd /usr/local/etc/rc.d/./mysql-server start注:MYSQL数据库文件所在目录:/var/db/mysql修改MYSQL的密码:/usr/local/bin/mysqladmin -u root password 'new -password'安装apache22QUOTE:# cd /usr/ports/www/apache22# make install clean ; rehash安装过程中,取消ipv6apache随系统启动# ee /etc/rc.confCODE:apache22_enable="YES"启动apacheQUOTE:# cd /usr/local/etc/rc.d/# ./apache22 start安装phpQUOTE:# cd /usr/ports/lang/php5# make install clean ; rehash安装过程中,选择apache,取消ipv6安装php扩展CODE:# cd /usr/ports/lang/php5-extensions # make install clean ; rehash选择CALENDARCTYPEGDICONVMBSTRINGMYSQLPCRESESSIONSOCKETSZIPZLIB配置phpQUOTE:# cd /usr/local/etc# cp php.ini-recommended php.ini# ee php.iniCODE:; 基于安全考虑,禁用某些功能,根据自己情况修改disable_functions = passthru, exec, phpinfo, system, ini_alter, readl ink, symlink, leak, proc_open, popepassthru, chroot, scandir, chgrp, chown, escapeshellcmd, escapeshellarg, shell_exec, proc_get_statu s配置apacheQUOTE:# ee /usr/local/etc/apache22/httpd.conf CODE:DocumentRoot "/usr/www" # 网站主目录<Directory "/usr/www"> # 网站主目录Options FollowSymLinks<IfModule dir_module>DirectoryIndex index.html index.php index.htm </IfModule><IfModule mime_module>AddType application/x-gzip .gz .tgzAddType application/x-httpd-php .phpAddType application/x-httpd-php-source .phps </IfModule>AddDefaultCharset GB2312ServerTokens ProdServerSignature Email<IfModule prefork.c> # 优化针对BSD的网络支持StartServers 10MinSpareServers 10MaxSpareServers 15ServerLimit 2000MaxClients 1500MaxRequestsPerChild 10000</IfModule>安装ZendOptimizerZendOptimizer属于商业软件,所以不能通过ports编译安装,只能下载安装QUOTE:# ln -s /lib/libm.so.3 /lib/libm.so.2# mount /cdrom# cp -R /cdrom/Zend /usr/ports/devel/Zend# cd /usr/ports/devel/zend# ./install一路默认安装phpmyadmin也可以通过传统方式,通过ftp下载/上传到机器上,配置好参数即可运行。

Centos7中安装和配置nginx和keepalived(主从模式)

Centos7中安装和配置nginx和keepalived(主从模式)

Centos7中安装和配置nginx和keepalived(主从模式)系统版本 Centos7IP:192.168.0.3 MasterIP:192.168.0.4 Slave⼀.Linux安装nginx (主从都安装NGINX)1.安装依赖[root@Master ~]# yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel[root@Slave ~]# yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel2.创建⼀个⽂件夹[root@Master ~]# cd /usr/local[root@Master local]# mkdir nginx[root@Master local]# cd nginx/[root@Master nginx]#[root@Slave ~]# cd /usr/localYou have new mail in /var/spool/mail/root[root@Slave local]# mkdir nginx[root@Slave local]# cd nginx/[root@Slave nginx]#4.编译并make[root@Master nginx]# cd nginx-1.16.1[root@Master nginx-1.16.1]# ./configure --prefix=/usr/local/nginx[root@Master nginx-1.16.1]# make[root@Master nginx-1.16.1]# make install修改nginx访问界⾯html[root@Master nginx-1.16.1]# cd /usr/local/nginx/html/You have new mail in /var/spool/mail/root[root@Master html]# lltotal 8-rw-r--r-- 1 root root 494 Oct 12 03:23 50x.html-rw-r--r-- 1 root root 612 Oct 12 03:23 index.html[root@Master html]# vi index.html<p><em>Master ip:192.168.0.3</em></p>[root@Slave nginx]# cd nginx-1.16.1[root@Slave nginx-1.16.1]# ./configure --prefix=/usr/local/nginx[root@Slave nginx-1.16.1]# make[root@Slave nginx-1.16.1]# make install修改nginx访问界⾯html[root@Slave nginx-1.16.1]# cd /usr/local/nginx/html/You have new mail in /var/spool/mail/root[root@Slave html]# lltotal 8-rw-r--r-- 1 root root 494 Oct 12 03:23 50x.html-rw-r--r-- 1 root root 612 Oct 12 03:23 index.html[root@Slave html]# vi index.html<p><em>Slave ip:192.168.0.4</em></p>常⽤命令#启动/usr/local/nginx/sbin/nginx#修改配置⽂件重新加载/usr/local/nginx/sbin/nginx -s reload#关闭/usr/local/nginx/sbin/nginx2.安装相关依赖,有不⽤下载了[root@Master local]# yum install -y gcc openssl-devel popt-devel[root@Slave local]# yum install -y gcc openssl-devel popt-devel3.编译安装[root@Master local]# cd keepalived-1.4.2[root@Master keepalived-1.4.2]# ./configure --prefix=/usr/local/keepalived[root@Master keepalived-1.4.2]# make[root@Master keepalived-1.4.2]# make install[root@Slave local]# cd keepalived-1.4.2[root@Slave keepalived-1.4.2]# ./configure --prefix=/usr/local/keepalived[root@Slave keepalived-1.4.2]# make[root@Slave keepalived-1.4.2]# make install4.相关配置,复制就完了[root@Master keepalived-1.4.2]# pwd/usr/local/keepalived-1.4.2You have new mail in /var/spool/mail/root[root@Master keepalived-1.4.2]# cp /usr/local/keepalived-1.4.2/keepalived/etc/init.d/keepalived /etc/init.d/[root@Master keepalived-1.4.2]# mkdir /etc/keepalived[root@Master keepalived-1.4.2]# cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/[root@Master keepalived-1.4.2]# cp /usr/local/keepalived-1.4.2/keepalived/etc/sysconfig/keepalived /etc/sysconfig/ [root@Master keepalived-1.4.2]# cp /usr/local/keepalived/sbin/keepalived /usr/sbin/[root@Slave keepalived-1.4.2]# pwd/usr/local/keepalived-1.4.2You have new mail in /var/spool/mail/root[root@Slave keepalived-1.4.2]# cp /usr/local/keepalived-1.4.2/keepalived/etc/init.d/keepalived /etc/init.d/[root@Slave keepalived-1.4.2]# mkdir /etc/keepalived[root@Slave keepalived-1.4.2]# cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/[root@Slave keepalived-1.4.2]# cp /usr/local/keepalived-1.4.2/keepalived/etc/sysconfig/keepalived /etc/sysconfig/ [root@Slave keepalived-1.4.2]# cp /usr/local/keepalived/sbin/keepalived /usr/sbin/[root@Slave keepalived-1.4.2]#使⽤keepalived保证nginx的⾼可⽤(⼀主⼀从),我的主服务器ip为(192.168.0.3),从机(192.168.0.4)在两条服务器分别安装nginx和keepalived,修改keeplived.conf⽂件vim /etc/keepalived/keepalived.conf主机配置⽂件! Configuration File for keepalivedglobal_defs {#⼀个没重复的名字即可router_id LVS_DEVEL}# 检测nginx是否运⾏vrrp_script chk_nginx {script "/etc/keepalived/nginx_check.sh"interval 2#权重减少20,减少完要⽐从机的值⼩weight -20}vrrp_instance VI_1 {# MASTER代表主机state MASTER# ⽹卡名字 ip addr 可以查看interface eno16777736# 同⼀个keepalived集群的virtual_router_id相同virtual_router_id 51# 权重,master要⼤于slavepriority 100# 主备通讯时间间隔advert_int 1# 如果两节点的上联交换机禁⽤了组播,则采⽤vrrp单播通告的⽅式# 本机ipunicast_src_ip 192.168.118.3unicast_peer {# 其他机器ip192.168.118.5}# 设置nopreempt防⽌抢占资源nopreempt# 主备保持⼀致authentication {auth_type PASSauth_pass 1111}# 与上⽅nginx运⾏状况检测呼应track_script {chk_nginx}virtual_ipaddress {# 虚拟ip地址(VIP,⼀个尚未占⽤的内⽹ip即可)192.168.118.118}}[root@Master keepalived-1.4.2]# cd /etc/keepalived/[root@Master keepalived]# lltotal 4-rw-r--r-- 1 root root 3550 Oct 12 03:41 keepalived.conf[root@Master keepalived]# cp keepalived.conf keepalived.conf.bak [root@Master keepalived]# vi /etc/keepalived/keepalived.conf global_defs {router_id LVS_DEVEL}vrrp_script chk_nginx {script "/etc/keepalived/nginx_check.sh"interval 2weight -20}vrrp_instance VI_1 {state MASTERinterface enp0s3virtual_router_id 51priority 100advert_int 1unicast_src_ip 192.168.0.3unicast_peer {192.168.0.4}nopreemptauthentication {auth_type PASSauth_pass 1111}track_script {chk_nginx}virtual_ipaddress {192.168.0.10}}从机配置⽂! Configuration File for keepalivedglobal_defs {#⼀个没重复的名字即可router_id LVS_DEVEL}# 检测nginx是否运⾏vrrp_script chk_nginx {script "/etc/keepalived/nginx_check.sh"interval 2weight -20}vrrp_instance VI_1 {# 代表是从机state BACKUP# ⽹卡名字,ip addr获取interface eno16777736# 同⼀个keepalived集群的virtual_router_id相同virtual_router_id 51# 权重,master要⼤于slavepriority 90# 主备通讯时间间隔advert_int 1# 如果两节点的上联交换机禁⽤了组播,则采⽤vrrp单播通告的⽅式# 本机ipunicast_src_ip 192.168.118.5unicast_peer {# 其他机器ip192.168.118.3}# 设置nopreempt防⽌抢占资源nopreempt# 主备保持⼀致authentication {auth_type PASSauth_pass 1111}# 与上⽅nginx运⾏状况检测呼应track_script {chk_nginx}virtual_ipaddress {# 虚拟ip地址(VIP,⼀个尚未占⽤的内⽹ip即可)192.168.118.118}}-------------------------------------------------------------从机配置⽂![root@Slave keepalived-1.4.2]# cd /etc/keepalived/You have new mail in /var/spool/mail/root[root@Slave keepalived]# lltotal 4-rw-r--r-- 1 root root 3550 Oct 12 03:42 keepalived.conf[root@Slave keepalived]# cp keepalived.conf keepalived.conf.bak[root@Slave keepalived]# vi /etc/keepalived/keepalived.confglobal_defs {router_id LVS_DEVEL}vrrp_script chk_nginx {script "/etc/keepalived/nginx_check.sh"interval 2weight -20}vrrp_instance VI_1 {state Slaveinterface enp0s3virtual_router_id 51priority 90advert_int 1unicast_src_ip 192.168.0.4unicast_peer {192.168.0.3}nopreemptauthentication {auth_type PASSauth_pass 1111}track_script {chk_nginx}virtual_ipaddress {192.168.0.10}}主从机都需配置检测nginx是否在运⾏,不在允许就直接启动nginx的脚本,和keepalived放在⼀起脚本名称 nginx_check.sh#!/bin/bashA=`ps -C nginx –no-header |wc -l`if [ $A -eq 0 ];then/usr/local/nginx/sbin/nginxsleep 2if [ `ps -C nginx --no-header |wc -l` -eq 0 ];thenkillall keepalivedfifi[root@Master keepalived]# pwd/etc/keepalived[root@Master keepalived]# vi nginx_check.sh#!/bin/bashA=`ps -C nginx –no-header |wc -l`if [ $A -eq 0 ];then/usr/local/nginx/sbin/nginxsleep 2if [ `ps -C nginx --no-header |wc -l` -eq 0 ];thenkillall keepalivedfifi[root@Slave keepalived]# pwd/etc/keepalived[root@Slave keepalived]# vi nginx_check.sh#!/bin/bashA=`ps -C nginx –no-header |wc -l`if [ $A -eq 0 ];then/usr/local/nginx/sbin/nginxsleep 2if [ `ps -C nginx --no-header |wc -l` -eq 0 ];thenkillall keepalivedfifi只要配置好了,以后直接启动keepalived就好了,keepalived运⾏之后就会检测nginx是否在运⾏,不在运⾏就通过脚本去启动⾃动重启不了解决⽅案查看脚本是否有运⾏的权限如果你是root登陆的话(不是的话,切换到root⽤户,对*.sh 赋可执⾏的权限)chmod 777*.sh或者chmod +x *.sh主:[root@Master keepalived]# chmod +x nginx_check.sh[root@Master keepalived]# lltotal 12-rw-r--r-- 1 root root 572 Oct 12 03:55 keepalived.conf-rw-r--r-- 1 root root 3550 Oct 12 03:48 keepalived.conf.bak-rwxr-xr-x 1 root root 205 Oct 12 04:04 nginx_check.sh[root@Master keepalived]#备:[root@Slave keepalived]# chmod +x nginx_check.sh[root@Slave keepalived]# lltotal 12-rw-r--r-- 1 root root 575 Oct 12 04:02 keepalived.conf-rw-r--r-- 1 root root 3550 Oct 12 03:57 keepalived.conf.bak-rwxr-xr-x 1 root root 205 Oct 12 04:04 nginx_check.sh[root@Slave keepalived]#keepalived常⽤命令#启动service keepalived start#停⽌service keepalived stop#查看状态service keepalived status主:[root@Master keepalived]# service keepalived startStarting keepalived (via systemctl): [ OK ][root@Master keepalived]# service keepalived stopStopping keepalived (via systemctl): [ OK ][root@Master keepalived]# service keepalived startStarting keepalived (via systemctl): [ OK ][root@Master keepalived]# service keepalived status● keepalived.service - LVS and VRRP High Availability MonitorLoaded: loaded (/usr/lib/systemd/system/keepalived.service; disabled; vendor preset: disabled)Active: active (running) since Mon 2020-10-12 04:08:03 EDT; 14s agoProcess: 9822 ExecStart=/usr/local/keepalived/sbin/keepalived $KEEPALIVED_OPTIONS (code=exited, status=0/SUCCESS) Main PID: 9823 (keepalived)CGroup: /system.slice/keepalived.service├─9823 /usr/local/keepalived/sbin/keepalived -D├─9824 /usr/local/keepalived/sbin/keepalived -D└─9825 /usr/local/keepalived/sbin/keepalived -DOct 12 04:08:05 Master Keepalived_vrrp[9825]: Sending gratuitous ARP on enp0s3 for 192.168.0.10Oct 12 04:08:09 Master Keepalived_vrrp[9825]: Track script chk_nginx is being timed out, expect idle - skipping runOct 12 04:08:10 Master Keepalived_vrrp[9825]: Sending gratuitous ARP on enp0s3 for 192.168.0.10Oct 12 04:08:10 Master Keepalived_vrrp[9825]: VRRP_Instance(VI_1) Sending/queueing gratuitous ARPs on enp0s3 for 192.168.0.10 Oct 12 04:08:10 Master Keepalived_vrrp[9825]: Sending gratuitous ARP on enp0s3 for 192.168.0.10Oct 12 04:08:10 Master Keepalived_vrrp[9825]: Sending gratuitous ARP on enp0s3 for 192.168.0.10Oct 12 04:08:10 Master Keepalived_vrrp[9825]: Sending gratuitous ARP on enp0s3 for 192.168.0.10Oct 12 04:08:10 Master Keepalived_vrrp[9825]: Sending gratuitous ARP on enp0s3 for 192.168.0.10Oct 12 04:08:13 Master Keepalived_vrrp[9825]: Track script chk_nginx is being timed out, expect idle - skipping runOct 12 04:08:17 Master Keepalived_vrrp[9825]: Track script chk_nginx is being timed out, expect idle - skipping run[root@Master keepalived]#备:[root@Master keepalived]# service keepalived startStarting keepalived (via systemctl): [ OK ][root@Master keepalived]# service keepalived stopStopping keepalived (via systemctl): [ OK ][root@Master keepalived]# service keepalived startStarting keepalived (via systemctl): [ OK ][root@Master keepalived]# service keepalived status● keepalived.service - LVS and VRRP High Availability MonitorLoaded: loaded (/usr/lib/systemd/system/keepalived.service; disabled; vendor preset: disabled)Active: active (running) since Mon 2020-10-12 04:08:03 EDT; 14s agoProcess: 9822 ExecStart=/usr/local/keepalived/sbin/keepalived $KEEPALIVED_OPTIONS (code=exited, status=0/SUCCESS)Main PID: 9823 (keepalived)CGroup: /system.slice/keepalived.service├─9823 /usr/local/keepalived/sbin/keepalived -D├─9824 /usr/local/keepalived/sbin/keepalived -D└─9825 /usr/local/keepalived/sbin/keepalived -DOct 12 04:08:05 Master Keepalived_vrrp[9825]: Sending gratuitous ARP on enp0s3 for 192.168.0.10Oct 12 04:08:09 Master Keepalived_vrrp[9825]: Track script chk_nginx is being timed out, expect idle - skipping runOct 12 04:08:10 Master Keepalived_vrrp[9825]: Sending gratuitous ARP on enp0s3 for 192.168.0.10Oct 12 04:08:10 Master Keepalived_vrrp[9825]: VRRP_Instance(VI_1) Sending/queueing gratuitous ARPs on enp0s3 for 192.168.0.10 Oct 12 04:08:10 Master Keepalived_vrrp[9825]: Sending gratuitous ARP on enp0s3 for 192.168.0.10Oct 12 04:08:10 Master Keepalived_vrrp[9825]: Sending gratuitous ARP on enp0s3 for 192.168.0.10Oct 12 04:08:10 Master Keepalived_vrrp[9825]: Sending gratuitous ARP on enp0s3 for 192.168.0.10Oct 12 04:08:10 Master Keepalived_vrrp[9825]: Sending gratuitous ARP on enp0s3 for 192.168.0.10Oct 12 04:08:13 Master Keepalived_vrrp[9825]: Track script chk_nginx is being timed out, expect idle - skipping runOct 12 04:08:17 Master Keepalived_vrrp[9825]: Track script chk_nginx is being timed out, expect idle - skipping run[root@Master keepalived]#Welcome to nginx!If you see this page, the nginx web server is successfully installed and working. Further configuration is required.For online documentation and support please refer to .Commercial support is available at .Thank you for using nginx.Master ip:192.168.0.3Welcome to nginx!If you see this page, the nginx web server is successfully installed and working. Further configuration is required.For online documentation and support please refer to .Commercial support is available at .Thank you for using nginx.Slave ip:192.168.0.4Welcome to nginx!If you see this page, the nginx web server is successfully installed and working. Further configuration is required.For online documentation and support please refer to .Commercial support is available at .Thank you for using nginx.Master ip:192.168.0.3⼀切正常,将主机的keepalived服务给停掉,模拟服务器宕机的场景[root@Master keepalived]# service keepalived stopStopping keepalived (via systemctl): [ OK ]You have new mail in /var/spool/mail/root[root@Master keepalived]#Welcome to nginx!If you see this page, the nginx web server is successfully installed and working. Further configuration is required.For online documentation and support please refer to .Commercial support is available at .Thank you for using nginx.Slave ip:192.168.0.4成功切换到备⽤服务器接下来重启主服务器,再访问虚拟ip[root@Master keepalived]# service keepalived startStarting keepalived (via systemctl): [ OK ][root@Master keepalived]#Welcome to nginx!If you see this page, the nginx web server is successfully installed and working. Further configuration is required.For online documentation and support please refer to .Commercial support is available at .Thank you for using nginx.Master ip:192.168.0.3由此可见,当主机dowm掉的时候才会访问从机,当主机连进来的时候⼜回去访问主机当主机正常运⾏通过ip addr命令的时候可以看到⽹络下多了个虚拟ip,⽽从机却没有,只要当主机挂了时候从机才会显⽰xuniip 主:[root@Master keepalived]# ip addr1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope hostvalid_lft forever preferred_lft forever2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 08:00:27:19:70:2f brd ff:ff:ff:ff:ff:ffinet 192.168.0.3/24 brd 192.168.0.255 scope global noprefixroute enp0s3valid_lft forever preferred_lft foreverinet 192.168.0.10/32 scope global enp0s3valid_lft forever preferred_lft foreverinet6 fe80::58e8:d448:52fb:c18c/64 scope link noprefixroutevalid_lft forever preferred_lft forever[root@Master keepalived]#备:[root@Slave keepalived]# ip addr1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope hostvalid_lft forever preferred_lft forever2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 08:00:27:93:55:c9 brd ff:ff:ff:ff:ff:ffinet 192.168.0.4/24 brd 192.168.0.255 scope global noprefixroute enp0s3valid_lft forever preferred_lft foreverinet6 fe80::4ee7:51c7:e8fe:f5e5/64 scope link noprefixroutevalid_lft forever preferred_lft foreverYou have new mail in /var/spool/mail/root[root@Slave keepalived]#。

FreeBSD的一些命令及FAMP配置安装

FreeBSD的一些命令及FAMP配置安装

FreeBSD的一些命令及AMP配置安装关机命令#halt -p和shutdown -p now重启命令#shutdown -r now挂载和卸载光盘命令#mount /cdrom#unmount /cdrom#cd /cdrom查找文件命令#find /etc -name "*conf*"查看机器情况# uname –rna通过ports安装程序安装上传下载文件插件lrzsz#cd /usr/ports/comms/lrzsz#make clean install clean && rehash要下载就输入lsz ,上传就输入lrz,出现对话框挂载U盘#cd /mnt#mkdir usb#moun -t msdosfd /dev/da0s1 /mnt/usb用ports安装gmake有些程序在安装的时候需要用gmake来编译源码# cd /usr/ports/devel/gmake/# make all然后系统就开始自动下载从gnu官方站点上下载最新的gmake源码:然后系统就开始自动编译然后再重启系统:xinsoftbsd# reboot重启以后,FreeBSD就支持gmake了。

pkg安装gmake挂载第二张光盘,找到gmake-3.81_2.tbz#pkg_add gmake-3.81_2.tbz安装freetype2出错#./configure出现GNU make(> = 3.79.1) or makepp (> = 1.19) is required to build FreeType2.原因:make或gmake版本过低解决办法:#vi configure把GNUMAKE=make改成GNUMAKE=gmake再通过pkg安装gmake在php中编译#./configure --prefix=/usr/local/apache2/bin/apxs --with-mysql=/usr/local/mysql --with-xml --with-png --with-jpeg-dir=/usr/local/jpeg6 --with-zlib --with-freetype-dir --with-gd --with-curl --enable-track-vars --disable-debug --enable-url-includes --enable-sockets --enable-force-cgi-redirect--enable-magic-quotes --enable-ftp --enable-gd-native-ttf --with-ttf --with-gdbm --with-gettext--with-iconv --enable-mbstring=all --enable-memory-limit出现configure: error: DBA: Could not find necessary header file(s).是因为没安装gdbm,在第二张盘里有gdbm-1.8.3_3.tbz#pkg_add gdbm-1.8.3_3.tbz即可通过编译安装完php后启动apache出现httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName解决办法:# vi /usr/local/apache2/conf/httpd.conf添加这么一行:ServerName 127.0.0.1:80AMP配置安装1、下载首先从网上下载以下版本的压缩包 (1) mysql-5.0.41.tar.gz(2) httpd-2.2.8.tar.gz(3) php-5.1.4.tar.gz(4) libxml2-2.6.19.tar.gz(5) zlib-1.2.3.tar.gz(6) libpng-1.2.34.tar.gz(7) jpegsrc.v6b.tar.gz(8) gd-2.0.33.tar.gz(9) freetype-2.1.10.tar.gz(10) curl-7.15.0.tar.(11) gzlibxslt-1.1.15.tar.gz(12) mediawiki-1.9.3cn.zip2、开始安装Mysql-5.0.41.tar.gz#tar –xvf mysql-5.0.41.tar.gz#cd mysql-5.0.41#./configure --prefix=usr/local/mysql# make#make install为mysql加入访问的组与用户#pw group add mysql#pw user add mysql –g mysql#cp support-files/f /etc/f #cd /usr/local/mysql# chown -R mysql .#chgrp -R mysql .# bin/mysql_install_db --user=mysql# chown -R root .#chown -R mysql var#bin/mysqld_safe --user=mysql &#/usr/local/bin/mysqladmin -u root password '123456'#mysql -u root –p设置开机自动运行#vi /usr/local/etc/rc.d/mysql_start.sh添加#! /bin/sh/usr/local/mysql/bin/mysql_safe &编辑完成后保存并将属性更改为可执行#chmod +x mysql_start.sh3. Apache2的安装(httpd-2.2.8.tar.gz)#./configure --prefix=/usr/local/apache2 --enable-shared=max --enable-module=rewrite --enable-so#make#make install建立自动运行执行文件#vi /usr/local/etc/rc.d/apache_start.sh添加#! /bin/sh/usr/local/apache2/bin/httpd –k start保存后修改为可执行#chmod +x /usr/local/etc/rc.d/apache_start.sh4. 为PHP的安装做好准备而安装的各种包安装xml2-2.6.19.tar.gz#tar –xvf xml2-2.6.19.tar.gz#cd xml2-2.6.19#./configure#make#make install安装zlib-1.2.3.tar.gz#tar –xvf zlib-1.2.3.tar.gz#cd zlib-1.2.3#./configure#make#make install安装libpng-1.2.34.tar.gz#tar –xvf libpng-1.2.34.tar.gz#cd png-1.2.8#./configure --prefix=/usr/local/libpng2#make#make install安装jpegsrc.v6b.tar.gz#mkdir –p /usr/local/jpeg6#mkdir –p /usr/local/jpeg6/bin#mkdir –p /usr/local/jpeg6/lib#mkdir –p /usr/local/jpeg6/include#mkdir –p /usr/local/jpeg6/man#mkdir –p /usr/local/jpeg6/man1#mkdir –p /usr/local/jpeg6/man/man1#./configure--prefix=/usr/local/jpeg6--enable-shared--enable-static#make#make install安装freetype-2.1.10.tar.gz这个软件采用gmake来安装,因此首先将configure文件中的make修改为gmake #./configure#gmake#gmake install安装curl-7.15.0.tar#./configure#make#make install安装gzlibxslt-1.1.15.tar.gz#./configure#make#make install5.开始安装PHP5源代码:php-5.1.4.tar.gz#tar-zxvf php-5.1.4.tar.gz#cd php-5.1.4#./configure –prefix=/usr/local/php –with-apxs2=/usr/local/apache2/bin/apxs –with-xml –with-mysql=/usr/local/mysql –with-zlib –with-jpeg-dir=/usr/local/jpeg6 --with-png-dir=/usr/local/libpng2 –with-config-file-path=/usr/local/lib –disable-debug –enable-safe-mode –enable-trans-sid –enable-memory-limit –enable-short-tags –disable-posix –enable-exif –enable-ftp --enable-sockets#make#make install#cp /usr/src/php-5.1.4/php.ini-dist /usr/local/lib/php.ini把php加到apache里去代码:#vi /usr/local/apache2/conf/httpd.conf添加LoadModule php5_module modules/libphp5.soAddType application/x-httpd-php .phpAddType application/x-httpd-php-source .phps然后放个test.php文件上去测试看看成功vi /usr/local/apache2/htdocs/test.phpPHP代码:<?phpinfo();>启动一下apache服务#/usr/local/apache2/bin/apachectl start在浏览器中输入http://127.0.0.1/phpinfo.php这应该会出现一些php的测试信息6.安装MediaWiki 1_9_3上传到/usr/local/apache2/htdocs/目录下#cd /usr/local/apache2/htdocs#chmod a+w config #这样保证Wiki的setup程序可以有执行权利点击set up the wiki然后开始安装前的一些检测信息填入你的一些相关信息后,执行,如果成功会出现类似画面。

CentOS7.2如何安装Nginx1.10.2

CentOS7.2如何安装Nginx1.10.2

CentOS 7.2如何安装Nginx 1.10.2一、使用Y um安装(推荐)使用Y um安装是推荐的方式,整体的流程非常的简单,也不容易出错,如果不需要什么特殊配置,建议使用Y um尽进行安装。

1、安装epel-release源并进行安装yum install epel-releaseyum updateyum install nginx2、执行相关的应用操作systemctl start nginx #启动systemctl stop nginx #停止systemctl restart nginx #重启systemctl status nginx #查看运行状态systemctl enable nginx #开机启动3、设置防火墙在启动完以后可能无法通过IP访问,需要进一步设置防火墙firewall-cmd --permanent --zone=public --add-service=httpfirewall-cmd --permanent --zone=public --add-service=httpsfirewall-cmd --reload至此,安装完毕。

参考文章:https:///community/tutorials/how-to-install-nginx-on-centos-7二、通过源码编译安装1、安装编译所需工具yum groupinstall “Development Tools”yum install wget2、到官网下载最新的源代码(https:///en/)cd /usr/local/srcwget http:///download/tar zxvf3、安装依赖包yum install zlib zlib-devel openssl openssl-devel pcre pcre-develzlib: 为nginx提供gzip模块,需要zlib库支持,传输数据打包,省流量(但消耗资源)openssl: 为nginx提供ssl功能pcre: 为支持地址重写rewrite功能4、创建用来运行nginx的用户及组groupadd nginxuseradd -g nginx -M nginx –s /sbin/nologin-g参数为nginx用户指定了一个组。

FreeBSD7.2详细安装过程(包括参数设置)

FreeBSD7.2详细安装过程(包括参数设置)

FreeBSD7.2(相信大部分人都是刚开始学习FreeBSD,因此都是用的虚拟机,因此本文也适合虚拟机下的安装,本文是本人在文库中的另一位作者的版本上改的,在此也谢谢这位朋友)By 月下独饮2011-9-251.首先在BIOS中将服务器设置为从光盘启动,将FreeBSD7.2的安装盘(Disk1)放入光驱,启动机器。

2.服务器从光盘启动之后将有一个引导的过程,在此过程中不需要手工干预,引导完毕之后将出现如图1所视画面:图13.出现此画面之后直接按Enter键,如图2:图24.在图2窗口中采用默认设置,直接按Enter键进入下一步,见图3:图35.在图3窗口中选择“Standard”项,将活动光标移动到“Select”按钮上按Enter键,进入图4所示窗口:图46.在图4窗口中直接按Enter键,进入图5所示窗口:图57.在图5窗口中按字母键“A”(注:A=Use Entire Disk,将整块硬盘用于FreeBSD安装),如图6所示:图6按字母键“Q”退出,进入图7所示窗口(注:也许你现在所装的服务器以前装过其他系统,硬盘上有其他分区,则在按字母键“A”选择整个硬盘之前,请先分别选中每个分区,按字母键“D”删除这些分区)8.图7默认是第一项:BootMgr,直接选择“OK”按钮进入下一步,见图8 9.图8直接按“Enter”键进入下一步,见图910.图9在此窗口中按字母键“A”(A=Auto Defaults),出现图10所示窗口:图10在此窗口中按字母键“Q”退出,进入图11所示窗口:12.图11在此窗口中将光标条移动到第4项(4 Developer),按“Enter”键选中,进入图12所示窗口:图12在此窗口中直接按“Enter”键进入下一窗口,见图13:14.图13在此窗口中将光标条移动到第1项上(X Exit),然后选择“OK”按钮进入下一窗口,见图14:图14在此窗口中选择安装源,默认是第1项(1 CD/DVD),直接选择“OK”按钮进入下一步,见图15:16.图15在此窗口中直接按“Enter”键继续,安装进程开始,请等待。

centos7nginx安装启动与配置通用Nginx.conf

centos7nginx安装启动与配置通用Nginx.conf

centos7nginx安装启动与配置通⽤Nginx.conf1、安装:yum -y install nginx2、安装成功后nginx的⼏个默认⽬录输⼊命令: whereis nginx执⾏⽬录:/usr/sbin/nginx模块所在⽬录:/usr/lib64/nginx/modules配置所在⽬录:/etc/nginx/默认站点⽬录:/usr/share/nginx/html主要配置⽂件:/etc/nginx/nginx.conf 指向:/etc/nginx/conf.d/default.confPID⽬录:/var/run/nginx.pid错误⽇志:/var/log/nginx/error.log访问⽇志:/var/log/nginx/access.log3、查看nginx状态(未启动前)命令1:systemctl status nginx.service4、启动、停⽌、重载命令systemctl start nginx.servicesystemctl stop nginx.servicesystemctl reload nginx.servicesystemctl status nginx.service注意:当配置完Nginx.conf并重新启动Nginx时,需要⼀定的时间才会⽣效。

5、查看nginx的状态及进程与端⼝(启动后)命令1:systemctl status nginx.service以上nginx就已安装成功了命令2:netstat -antp | grep :80(查看80端⼝被哪个服务占⽤)or netstat -antpuel | grep ":22" | grep -v grep(过虑grep本⾝)命令3:netstat -antp | grep :(查看所有端⼝占⽤情况) 命令4:ps aux | grep nginx(查看nginx进程运⾏状态)or ps aux | grep :80 | grep -v grep(过虑grep本⾝)查看端⼝被占⽤情况命令5:lsof -i:端⼝号命令6:netstat -tunlp|grep 端⼝号6、杀掉进程命令a)相关nginx进⾏全部杀掉:killall -9 nginxb)把PID两个进程杀掉:kill -9 pid1 and kill -9 pid17、查看版本命令:nginx -V8、server配置说明"#"代表注释,最重要的是server{}块这部分就代表每⼀个web站点,此处先暂时设置三个站点分别使⽤不同的端⼝80、81、82保存退出并且重启nginxsystemctl reload nginx.service每⼀个server就是⼀个虚拟主机,我们有⼀个当作web服务器来使⽤listen 80;代表监听80端⼝server_name ;代表外⽹访问的域名location / {};代表⼀个过滤器,/匹配所有请求,我们还可以根据⾃⼰的情况定义不同的过滤,⽐如对静态⽂件js、css、image制定专属过滤root html;代表站点根⽬录index index.html;代表默认主页9、负载均衡配置负载均衡功能往往在接收到某个请求后分配到后端的多台服务器上,那我们就需要upstream{}块来配合使⽤upstream xxx{};upstream模块是命名⼀个后端服务器组,组名必须为后端服务器站点域名,内部可以写多台服务器ip和port,还可以设置跳转规则及权重等等ip_hash;代表使⽤ip地址⽅式分配跳转后端服务器,同⼀ip请求每次都会访问同⼀台后端服务器server;代表后端服务器地址server{};server模块依然是接收外部请求的部分server_name;代表外⽹访问域名location / {};同样代表过滤器,⽤于制定不同请求的不同操作proxy_pass;代表后端服务器组名,此组名必须为后端服务器站点域名server_name和upstream{}的组名可以不⼀致,server_name是外⽹访问接收请求的域名,upstream{}的组名是跳转后端服务器时站点访问的域名配置⼀下Windows的host将我们要访问的域名指向Linux因为硬件有限,我是将Windows中的IIS作为Nginx的后端服务器,所以配置⼀下IIS的站点域名打开cmd再ping⼀下确实指向Linux系统了,再打开浏览器输⼊会显⽰bbb这个站点就代表负载成功了。

FreeBSD 7.0安装手册

FreeBSD 7.0安装手册

FreeBSD 7 安装说明准备工作本文档以宝德PowerLeader PR1280D/Q系列产品为基础。

硬盘空间:8G以上;内存容量:256M以上;光盘介质:FreeBSD 7安装光盘1.设置BIOS为从光盘引导;2.将安装盘放入光驱;一、安装及基础设置步骤第一步启动安装程序从光盘启动安装程序后,就会出现如图1所示的画面。

图1 安装引导界面安装界面上有7个选项供用户选择:(1)“Boot FreeBSD [default]”项,引导FreeBSD[默认];(2)“Boot FreeBSD with ACPI disabled”项,当ACPI不可用时引导FreeBSD;(3)“Boot FreeBSD in Safe Mode”项,引导至安全模式;(4)“Boot FreeBSD in single user mode”项,引导至单一用户模式;(5)“Boot FreeBSD with verbose logging”项,引导FreeBSD详细登陆。

(6)“Escape to loader prompt”项,进入引导程序;(7)“Reboot”项,用来重新启动计算机。

可以根据具体情况进入相应选项中,此处为安装FreeBSD选“1”,当然如果不选择的话,到时间后安装程序会自己进入默认项中。

也可以按空格键让选择时间暂停。

本安装直接按回车键继续。

第二步选择国家进入“Boot FreeBSD[default]”后,程序会出现如图1.1所示的“CountrySelection”界面,进行国家的选择,默认为美国。

使用Pgdn和Pgup键和Tab键进行操作。

选“45 China”后,“OK”。

图1.1 选择国家第三步选择键盘出现如图1.2所示的界面,在这步中对键盘类型进行设置,默认为“USA ISO”,按默认设置,“OK”。

图1.2 System Console Keymap第四步选择安装方式出现如图1.3所示的界面,将对安装方式进行设置,FreeBSD的安装程序给它的安装方式定义了三种,分别为:“Standard、Express和Custom”(标准、快速和自定义)。

windows下nginx安装配置与使用

windows下nginx安装配置与使用

windows下nginx安装配置与使用Nginx 是一个高性能的HTTP和反向代理服务器,在 Windows 平台上也能够提供高效稳定的服务。

下面是关于在 Windows 下安装、配置和使用 Nginx 的步骤和指南。

一、安装 NginxWindows 平台上安装 Nginx 非常简单,只需按照以下步骤进行操作:2.解压文件3.环境变量配置将 Nginx 的安装目录添加到环境变量中,以便在任何地方都能够方便地使用 Nginx 命令。

二、配置 Nginx在安装完 Nginx 后,需要对其进行一些配置:1.打开配置文件进入 Nginx 的安装目录,找到并打开"conf"文件夹中的"nginx.conf"文件。

2.修改端口默认情况下,Nginx 使用的 HTTP 端口为 80,如果你希望使用其他端口,可以修改"listen"行的端口号。

3.配置虚拟主机在 Nginx 的配置文件中添加虚拟主机的配置,例如可以配置多个服务。

4.保存退出完成所需的配置后,保存并关闭配置文件。

三、使用 Nginx完成安装和配置后,可以通过以下方式使用 Nginx:1. 启动 Nginx使用命令提示符或 PowerShell 进入 Nginx 的安装目录,执行"nginx.exe"命令来启动 Nginx。

2.检查服务状态执行"nginx.exe -t"命令,可以检查 Nginx 的配置文件是否正确。

3. 停止 Nginx执行"nginx.exe -s stop"命令,可以停止 Nginx 服务。

4.重新加载配置文件执行"nginx.exe -s reload"命令,可以重新加载更新后的配置文件。

5.检查访问情况四、常见问题和解决方案在安装、配置和使用 Nginx 过程中,可能会遇到一些常见的问题:1.端口被占用如果你的系统中已经有其他服务在使用相同的端口号,可以在 Nginx 的配置文件中修改端口号。

CentOS下安装、配置Nginx,配合IIS做负载均衡

CentOS下安装、配置Nginx,配合IIS做负载均衡

CentOS下安装、配置Nginx,配合IIS做负载均衡一、环境准备∙安装CentOS版本:6.2关于CentOS介绍,请参考:/view/26404.htmNginx版本:1.2.1关于Nginx介绍,请参考:/view/926025.htm二、Linux常用命令介绍工欲善其事,必先利其器。

在进行Linux系统操作之前,我们必须掌握一些基础的命令,相信用过dos的人都不会太陌生,基本上包括windows、linux,其命令行模式都是从unix系统发展而来。

在此仅列出一些,在本篇博客会涉及到的一些命令,更多的介绍请参考相关资料。

三、安装Nginx完成安装centos后,使用root用户进入到系统,使用wget方式安装nginx包∙wget /download/nginx-1.2.1.tar.gz∙解压包tar -zxvf nginx-1.2.1.tar.gz∙安装gcc编译器及相关工具yum -y install gcc gcc-c++ autoconf automake make∙安装相关依赖的模块yum -y install zlib zlib-devel openssl openssl--devel pcre pcre-devel∙通过编译源码的方式进行安装:./configure∙执行命令:make∙执行命令:make install四、配置Nginx配置文件示例:配置文件说明:∙nginx server做前端反向代理∙后端配置两台IIS作为分流服务器∙基于ip-hash的负载方式∙测试配置文件是否有错误:/$your directory/nginx/sbin/nginx -t五、如何启动Nginx直接执行文件启动:# /usr/local/nginx/sbin/nginx启动成功后,查看nginx进程信息:# ps -ef | grep nginx ,看是否存在nginx的进程来确认是否成功启动。

如何安装和配置Nginx服务器

如何安装和配置Nginx服务器

如何安装和配置Nginx服务器第一章:介绍Nginx服务器Nginx是一个高性能的开源Web服务器和反向代理服务器。

它以其出色的性能和可靠性而闻名,是许多网站和应用程序的首选。

本章将介绍Nginx服务器的特点和优势。

第二章:准备工作在安装和配置Nginx之前,我们需要进行一些准备工作。

首先,了解你的操作系统。

Nginx可以在多种操作系统上运行,包括Linux、Windows和BSD等。

其次,确保你已经获得管理员权限。

最后,确保你的系统已经安装了所需的依赖项,例如PCRE和OpenSSL。

第三章:安装Nginx本章将详细介绍如何安装Nginx服务器。

对于不同的操作系统,安装步骤可能会有所不同。

我们将重点介绍在Linux系统上安装Nginx的步骤。

首先,下载最新版本的Nginx软件包。

然后,解压并编译Nginx。

最后,安装Nginx并启动服务。

第四章:配置Nginx在安装Nginx之后,我们需要对其进行一些基本配置。

本章将详细介绍Nginx的主要配置文件nginx.conf。

我们将学习如何设置基本的全局配置,如监听端口、工作进程数等。

此外,我们还将介绍如何配置虚拟主机和反向代理等高级功能。

第五章:管理Nginx一旦Nginx服务器安装和配置完成,我们需要学习如何管理服务器。

本章将介绍几个常用的管理命令。

我们将学习如何启动和停止Nginx服务,并检查其状态。

此外,我们还将学习如何重新加载配置文件以及管理Nginx的日志文件。

第六章:优化Nginx性能为了确保Nginx服务器的最佳性能,我们需要进行一些优化。

本章将介绍一些优化Nginx性能的方法。

我们将学习如何设置缓存、开启Gzip压缩以及限制访问速率等。

通过这些优化措施,可以提高Nginx服务器的响应速度和吞吐量。

第七章:保护Nginx服务器保护Nginx服务器免受恶意攻击是非常重要的。

本章将介绍一些保护Nginx服务器的方法。

我们将学习如何设置防火墙规则,禁止IP访问和使用SSL证书等。

FreeBSD上搭建大型网站(Nginx代理服务器篇)

FreeBSD上搭建大型网站(Nginx代理服务器篇)

七、Porxy服务器配置Proxy服务器(192.168.10.20)主要是负责终端客户的接入,为两台Squid缓存服务器提供均衡负载。

现在我们就开始吧!服务器网络配置# ee /etc/rc.confifconfig_lnc0="inet 192.168.10.20 netmask 255.255.255.0"defaultrouter="192.168.10.10"hostname="proxy.rd.bj"# ee /etc/hosts192.168.10.20 proxy.rd.bj# ee /etc/resolv.confnameserver 192.168.10.40网络环境配置好后,我们开始安装Nginx,在那里,告诉我# whereis nginxnginx: /usr/ports/www/nginx# make config# make showconfig #我的配置选项===> The following configuration options are available for nginx-0.5.34:DEBUG=off "Enable nginx debugging"HTTP_MODULE=on "Enable HTTP module"HTTP_ADDITION_MODULE=on "Enable http_addition module"HTTP_DA V_MODULE=on "Enable http_webdav module"HTTP_FLV_MODULE=on "Enable http_flv module"HTTP_PERL_MODULE=on "Enable http_perl module"HTTP_REALIP_MODULE=on "Enable http_realip module"HTTP_REWRITE_MODULE=on "Enable http_rewrite module"HTTP_SSL_MODULE=on "Enable http_ssl module"HTTP_STATUS_MODULE=on "Enable http_stub_status module"HTTP_SUB_MODULE=on "Enable http_sub module"MAIL_MODULE=off "Enable IMAP4/POP3/SMTP proxy module"MAIL_IMAP_MODULE=off "Enable IMAP4 proxy module"MAIL_POP3_MODULE=off "Enable POP3 proxy module"MAIL_SMTP_MODULE=off "Enable SMTP proxy module"MAIL_SSL_MODULE=off "Enable mail_ssl module"WWW=on "Enable html sample files"===> Use 'make config' to modify these settings# make install clean又开始等待了...终于完了,现在开始配置吧!# cd /usr/local/etc/nginx# ee nginx.conf #更改配置文件我更改后的配置文件如下:user www www;worker_processes 1;error_log /var/log/nginx_error.log;pid /var/run/nginx.pid;events {use kqueue;worker_connections 65535;}http {include mime.types;default_type application/octet-stream;log_format main '$remote_addr - $remote_user [$time_local] $request ' '"$status" $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';access_log /var/log/nginx_access.log main;client_header_timeout 3m;client_body_timeout 3m;send_timeout 3m;sendfile on;tcp_nopush on;tcp_nodelay on;keepalive_timeout 65;client_header_buffer_size 1k;large_client_header_buffers 4 4k;output_buffers 1 32k;postpone_output 1460;gzip on;gzip_min_length 1100;gzip_buffers 4 8k;gzip_types text/plain;upstream mysvr {server 192.168.10.30:3128 weight=5;server 192.168.10.31:3128 weight=5;}server {listen 80;server_name www.rd.bj;charset gbk;access_log /var/log/nginx_host.access.log main;location / {proxy_pass http://mysvr/;proxy_redirect off;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;client_max_body_size 10m;client_body_buffer_size 128k;proxy_connect_timeout 90;proxy_send_timeout 90;proxy_read_timeout 90;proxy_buffer_size 4k;proxy_buffers 4 32k;proxy_busy_buffers_size 64k;proxy_temp_file_write_size 64k;}location /nginx {stub_status on;access_log on;auth_basic "NginxStatus";auth_basic_user_file /usr/local/etc/nginx/htpasswd;}}}保存配置文件退出后,现在对刚才设置的文件进行验证。

FreeBSD Nginx 环境搭建教程

FreeBSD   Nginx 环境搭建教程

FreeBSD + Nginx 环境搭建教程2010-03-30 12:272010年02月22日星期一下午 05:12为什么要选择 FreeBSD?官方网站:中文网站:/zh_CN/ FreeBSD是一个优秀的unix操作系统,基于宽松的BSD协议,是完美的企业级操作系统,以重点突出性能和安全而闻名,行业领先的企业多年以来一直使用FreeBSD服务器。

具有同所有其它开源软件操作系统竞争的高级性能。

1.Unix兼容性强2.速度快3.极其稳定、可靠4.强大的网络功能5.多用户、多任务6.使用方便(按照极好的说明文件操作)为什么要选择 Nginx?Nginx(“engine x”) 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。

Nginx 是由Igor Sysoev为俄罗斯访问量第二的Rambler.ru站点开发的,它已经在该站点运行超过四年多了。

Igor 将源代码以类BSD许可证的形式发布。

自Nginx 发布四年来,Nginx 已经因为它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名了。

目前国内各大门户网站已经部署了Nginx,如新浪、网易、腾讯等;国内几个重要的视频分享网站也部署了 Nginx,如六房间、酷6等。

新近发现Nginx 技术在国内日趋火热,越来越多的网站开始部署Nginx。

Nginx 是一个很牛的高性能Web和反向代理服务器, 它具有有很多非常优越的特性:在高连接并发的情况下,Nginx是Apache服务器不错的替代品: Nginx 在美国是做虚拟主机生意的老板们经常选择的软件平台之一. 能够支持高达 50,000 个并发连接数的响应, 感谢Nginx为我们选择了epolland kqueue作为开发模型;∙内存消耗少:在3万并发连接下,开启10个Nginx进程消耗150M左右内存(15M*10);∙不要钱:Nginx为开源软件,可以免费使用。

Centos7安装Nginx-配置文件说明

Centos7安装Nginx-配置文件说明

Centos7安装Nginx-配置⽂件说明安装基础包yum -y install gcc gcc-c++ lrzsz wget vim安装完成, 查看gcc版本gcc -v输出:gcc 版本 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC)需要安装 spensslyum install -y openssl openssl-devel如果没有可能会报如下错误:./configure: error: the HTTP rewrite module requires the PCRE library.You can either disable the module by using --without-http_rewrite_moduleoption, or install the PCRE library into the system, or build the PCRE librarystatically from the source with nginx by using --with-pcre=<path> option.解压 & 进⼊⽬录tar -zxvf nginx-1.14.0.tar.gzcd nginx-1.14.0使⽤默认位置./configure编译安装makemake install找到Nginx的⽬录whereis nginx启动Nginx/usr/local/nginx/sbin/nginxNginx 操作指令nginx -c /etc/nginx/nginx.conf (启动Nginx)nginx -s stop (快速停⽌)nginx -s quit (完整有序的停⽌)nginx -s reload (重新加载)nginx -s reopen (重新打开⽇志⽂件)nginx -s quitkill -s QUIT 1628ps -ax|grep nginx (获取所有正在运⾏的Nginx进程列表)nginx -t (验证配置是否有语法错误)nginx -v (查看Nginx的简介版本号)nginx -V (查看Nginx的详细版本号)/usr/local/nginx/sbin/nginx -t (检查配置⽂件是否正确)/usr/local/nginx/sbin/nginx -s reload (刷新)获取所有正在运⾏的Nginx进程列表ps -ax|grep nginx配置 Nginx 开机启动修改权限:chmod 755 /etc/rc.d/rc.local编辑:vim /etc/rc.d/rc.local添加/usr/local/nginx/sbin/nginx#!/bin/bash# THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES## It is highly advisable to create own systemd services or udev rules# to run scripts during boot instead of using this file.## In contrast to previous versions due to parallel execution during boot# this script will NOT be run after all other services.## Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure# that this script will be executed during boot.touch /var/lock/subsys/local/usr/local/nginx/sbin/nginxNginx配置⽂件的结构及说明:# 运⾏⽤户user root;# ⼯作进程的数量通常设置和CPU数量相等 auto:⾃动调整worker_processes auto;# 全局的错误⽇志error_log /var/log/nginx/error.log;# ⽇志级别, 从左到右(由低到⾼): debug做详细, crit最少, 默认是: crit# debug|info|notice|warn|error|crit|alert|emerg:# ⽣产场景⼀般⽤: warn|error|crit; 注意: 不要配置info级别较低的等级, 会带来⼤量的磁盘I/O消耗#error_log logs/error.log;#error_log logs/error.log notice;#error_log logs/error.log info;# ⽇志没有配置默认#error_log logs/error.log error;# 不记录⽇志可以这么写#error_log /dev/null# PID⽂件记录Nginx主进程的ID号pid /run/nginx.pid;# 指定⼯作模式及连接数上限events {# use ⽤来指定Nginx的⼯作模式# Nginx⽀持的⼯作模式有select、poll、kqueue、epoll、rtsig和/dev/poll# epoll是多路复⽤IO(I/O Multiplexing)中的⼀种⽅式# 仅⽤于linux2.6以上内核,可以⼤⼤提⾼nginx的性能use epoll;# 单个⼯作进程进程可以允许同时建⽴外部连接的数量# 进程的最⼤并发连接数: 并发总数 = worker_processes * worker_connections;worker_connections 1024;}http {include mime.types;default_type application/octet-stream;# 设定⽇志格式# 格式变量解释:# $remote_addr: 记录访问⽹站的客户端地址# $remote_user: 远程客户端⽤户名# $time_local: 记录访问时间和时区# $request: ⽤户的Http请求起始⾏信息# $status: http状态码, 记录请求返回的状态码# $body_bytes_sent: 服务器发送给客户端的相应body字节数# $http_referer: 记录此次请求是从那个连接访问过来的, 可以根据此参数进⾏防盗链设置# $http_user_agent: 记录客户端访问信息, 例如:浏览器、⼿机客户端等# $http_x_forwarded_for: 当前端有代理服务时, 设置Web节点记录客户端地址的配置, 此参数⽣效的前提是代理服务器也要进⾏相关的x_forwarded_for设置 #log_format main '$remote_addr - $remote_user [$time_local] "$request" '# '$status $body_bytes_sent "$http_referer" '# '"$http_user_agent" "$http_x_forwarded_for"';# ⽇志⽂件的路径及使⽤何种⽇志格式记录⽇志#access_log logs/access.log main# sendfile 是Linux 2.0+ 以后推出的⼀个系统调⽤# sendfile 指令指定 nginx 是否调⽤ sendfile 函数(zero copy ⽅式)来传输⽂件# 对于普通应⽤, 必须设为 on# 如果⽤来进⾏下载等应⽤磁盘IO重负载应⽤, 可设置为 off# 对⽐⼀般的数据⽹络传输sendfile会有更少的切换和更少的数据拷贝# 在nginx配置⽂件⾥⾯, 打开sendfile on选项能够提⾼ web server 性能sendfile on;# 在nginx中, tcp_nopush必须和sendfilep搭配使⽤, 它可以配置⼀次发送数据包的⼤⼩, 它不是按时间累计0.2秒后发送包, ⽽是当包累计到⼀定⼤⼩后就发送 # 在nginx中, tcp_nopush和tcp_nodelay是互斥的#tcp_nopush on;#tcp_nodelay on;# 连接超时时间#keepalive_timeout 0;keepalive_timeout 65;# 开启 gzip 压缩 (on | off) 默认: offgzip on;# 设置⽤于处理请求压缩的缓冲区数量和⼤⼩gzip_buffer 32 4k | 16 8k# 压缩级别(1-9), 越⼤的压缩率越⾼, 同时消耗CPU资源也越多gzip_comp_level 3;# 压缩协议版本, 默认是1.1 (1.0 | 1.1)gzip_http_version 1.1;# ⼩于1k的资源不压缩gzip_min_length 1k;# 当nginx处于反向代理的时候启⽤(off | expired | no-cache | no-store | private | no_last_modified | no_etag | auth | any ...) # off: 禁⽌所有代理请求的压缩# expired: 在Header中包含'Expires'头信息, 启⽤压缩# no-cache: 在Header中包含'Cache-Control:no-cache'头信息, 启⽤压缩# no-store: 在Header中包含'Cache-Control:no-store'头信息, 启⽤压缩# private: 在Header中包含'Cache-Control:private'头信息, 启⽤压缩# no_last_modified: 在Header中包含'Last-Modified'头信息, 启⽤压缩# no_etag: 在Header中包含'ETag'头信息, 启⽤压缩# auth: 在Header中包含'Authorization'头信息, 启⽤压缩# any: ⽆条件压缩所有结果数据# 默认: offgzip_proxied off;# 需要压缩哪些响应类型的资源, 多个空格隔开, 不建议压缩图⽚(mime-type ...)# 默认: text/htmlgzip_types text/plain application/javascript application/x-javascript text/javascript text/xml text/css;# 配置禁⽤gzip条件, ⽀持正则, 此处表⽰IE6以下不开启gzip, 因为低版本的IE不⽀持gzip_disable "MSIE [1-6].";# 是否添加"Vary:Accept-Encoding"响应头(on | off)# 默认: offgzip_vary on;# 设置客户端请求头的缓冲区⼤⼩client_header_buffer_size 1k;# 读取客户端读取请求头超时时间client_header_timeout 60s;# 设置⽤于读取⼤型客户端请求头的缓冲区的最⼤数和⼤⼩large_client_header_buffers 4 8k;# 设定虚拟主机配置server {# 侦听端⼝listen 80 default_server;# 服务的名称: 使⽤ 访问server_name ;# 设置⽹站在服务器上的根⽬录root /data/www# 设置缓冲⽇志写⼊的路径格式和配置# 默认: access_log logs/access.log combined;access_log# 默认请求location = / {# 定义⾸页索引⽂件的名称# 默认: index index.html;index index.html;}# 定义错误页⾯error_page 404 /404.html;error_page 500 502 503 504 /50x.html;location = /50x.html {}}}。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

版权声明本文版权归作者所有,如其他个人、第三方网站或媒体报刊等需转载全文或节选,请注明原文链接:/manual/freebsd-nginx-php-mysql-ports.html如果因此而给您带来麻烦,请您原谅,谢谢合作。

前言∙版本:1.0∙作者:lynn <lynn@>∙项目主页:∙个人主页:∙最后更新:2009-11-11(光棍节)本文档是在FreeBSD7.2系统下,以ports系统为基础,所涉及软件全部是开源软件,版权以GPL为主,作为企业应用没有任何版权/法律问题。

编写本文的初衷,是给那些希望快速架设高性能、高负载Web服务系统而不想过多了解复杂的系统知识的网管/用户。

本文假定读者是在FreeBSD 7.2 平台上安装,并具有一定的Unix平台 / FreeBSD平台系统经验,懂得ports基本命令及常规的系统操作,如文件的删除,目录创建,改名,和vi编辑器的基本使用等。

源代码方式安装请参考(推荐):/manual/freebsd-nginx-php-mysql-source.html目录∙为什么要选择FreeBSD?∙为什么要选择Nginx?∙软件组成∙安装FreeBSD7.2∙更新ports∙安装axel提高ports的安装速度∙安装Mysql5.1.40∙安装Nginx安装pcre8.00安装Nginx0.8.24∙安装libxml2-2.7.6∙安装GD安装zlib1.2.3安装libpng1.2.40安装jpeg v7安装freetype2.3.11安装gd2.0.35∙安装PHP安装php5.2.11(FastCGI模式)∙测试∙系统优化∙防ddos攻击∙结束语∙ChangeLog为什么要选择FreeBSD?官方网站:中文网站:/zh_CN/FreeBSD是一个优秀的unix操作系统,基于宽松的BSD协议,是完美的企业级操作系统,以重点突出性能和安全而闻名,行业领先的企业多年以来一直使用FreeBSD服务器。

具有同所有其它开源软件操作系统竞争的高级性能。

1.Unix兼容性强2.速度快3.极其稳定、可靠4.强大的网络功能5.多用户、多任务6.使用方便(按照极好的说明文件操作)为什么要选择Nginx?Nginx("engine x") 是一个高性能的 HTTP 和反向代理服务器,也是一个IMAP/POP3/SMTP 代理服务器。

Nginx 是由Igor Sysoev为俄罗斯访问量第二的Rambler.ru 站点开发的,它已经在该站点运行超过四年多了。

Igor 将源代码以类BSD许可证的形式发布。

自Nginx 发布四年来,Nginx 已经因为它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名了。

目前国内各大门户网站已经部署了Nginx,如新浪、网易、腾讯等;国内几个重要的视频分享网站也部署了Nginx,如六房间、酷6等。

新近发现Nginx 技术在国内日趋火热,越来越多的网站开始部署Nginx。

Nginx 是一个很牛的高性能Web和反向代理服务器, 它具有有很多非常优越的特性:∙在高连接并发的情况下,Nginx是Apache服务器不错的替代品: Nginx在美国是做虚拟主机生意的老板们经常选择的软件平台之一. 能够支持高达50,000 个并发连接数的响应, 感谢Nginx为我们选择了epoll and kqueue作为开发模型;∙内存消耗少:在3万并发连接下,开启10个Nginx进程消耗150M左右内存(15M*10);∙不要钱:Nginx为开源软件,可以免费使用。

而购买F5 BIG-IP、NetScaler等硬件负载均衡交换机刚需要十多万至几十万元人民币;∙Nginx作为负载均衡服务器: Nginx 既可以在内部直接支持Rails和PHP程序对外进行服务, 也可以支持作为HTTP代理服务器对外进行服务. Nginx采用C进行编写, 不论是系统资源开销还是CPU使用效率都比Perlbal要好很多;∙作为邮件代理服务器: Nginx 同时也是一个非常优秀的邮件代理服务器(最早开发这个产品的目的之一也是作为邮件代理服务器),Last.fm描述了成功并且美妙的使用经验;∙Nginx 是一个[#installation 安装] 非常的简单,配置文件?非常简洁(还能够支持perl语法),Bugs非常少的服务器: Nginx 启动特别容易, 并且几乎可以做到7*24不间断运行,即使运行数个月也不需要重新启动. 你还能够不间断服务的情况下进行软件版本的升级;∙稳定性高:用于反向代理,宕机的概率微乎其微。

4GB内存的服务器+Apache(prefork模式)一般只能处理3000个并发连接,因为它们将占用3GB以上的内存,还得为系统预留1GB的内存。

Nginx 0.7.51 + PHP 5.2.8 (FastCGI) 服务器在3万并发连接下,开启的10个Nginx进程消耗150M内存(15M*10=150M),开启的64个php-cgi进程消耗1280M内存(20M*64=1280M),加上系统自身消耗的内存,总共消耗不到2GB内存。

如果服务器内存较小,完全可以只开启25个php-cgi进程,这样php-cgi 消耗的总内存数才500M。

为什么Nginx的性能要比Apache高得多?这得益于Nginx使用了最新的epoll(Linux 2.6内核)和kqueue(freebsd)网络I/O模型,而Apache则使用的是传统的select模型。

目前Linux下能够承受高并发访问的Squid、Memcached都采用的是epoll网络I/O模型。

处理大量的连接的读写,Apache所采用的select网络I/O模型非常低效。

下面用一个比喻来解析Apache采用的select模型和Nginx采用的epoll模型进行之间的区别:假设你在大学读书,住的宿舍楼有很多间房间,你的朋友要来找你。

select版楼管大妈就会带着你的朋友挨个房间去找,直到找到你为止。

而epoll版楼管大妈会先记下每位同学的房间号,你的朋友来时,只需告诉你的朋友你住在哪个房间即可,不用亲自带着你的朋友满大楼找人。

如果来了10000个人,都要找自己住这栋楼的同学时,select版和epoll版楼管大妈,谁的效率更高,不言自明。

同理,在高并发服务器中,轮询I/O是最耗时间的操作之一,select和epoll的性能谁的性能更高,同样不言自明了。

软件组成软件名称版本说明FreeBSD7.2FreeBSD是一个优秀的unix操作系统,基于宽松的BSD协议Mysql 5.1.40最受欢迎的开源数据库pcre8.00(Perl兼容正则表达式)Nginx 所需Nginx0.8.24很牛的高性能Web和反向代理服务器libxml2 2.7.6xml c语言版的解析器zlib 1.2.3支援gzip档案格式的函数库libpng 1.2.40PNG格式图象解析库jpeg v7JPEG格式图象解析库freetype 2.3.11高质量、可移植的字体引擎gd 2.0.35动态图象建立图形库libiconv 1.13多语言编码处理转换库php 5.2.11最流行的超级文本预处理语言安装FreeBSD7.2操作系统的安装建议参考FreeBSD Handbook,在此仅给出链接,以避免不必要的重复劳动:∙英文版/doc/en_US.ISO8859-1/books/handbook/install.html ∙中文版/doc/zh_CN.GB2312/books/handbook/install.html安装时的注意事项1. 磁盘分区由于是WEB服务系统,网站目录,数据库文件都放于/var目录下,因此var分区要有足够的空间。

以一块硬盘146G/内存4G的服务器为例,可做如下分区:/ 1024Mswap 4096M/usr 20G/var 120G/tmp 1024M2. 软件包的选择我们的WEB服务系统是要对外服务的,所以尽可能少的选择软件包,安装时建议选择Minimal。

配置根据硬件的配置重新编译内核,编译内核的办法参考FreeBSD Handbook,这里只给出链接: ∙英文版/doc/en_US.ISO8859-1/books/handbook/kernelconfig.html ∙中文版/doc/zh_CN.GB2312/books/handbook/kernelconfig.html编译后系统的性能将得到较大的提升。

更新portsportsnap fetch extract安装axel提高ports的安装速度cd /usr/ports/ftp/axelmake install#修改 /et/make.confee /etc/make.conf#加入以下内容FETCH_CMD=axelFETCH_BEFORE_ARGS= -n 10 -aFETCH_AFTER_ARGS=DISABLE_SIZE=yesMASTER_SITE_OVERRIDE?=\/${DIST_SUBDIR}/\/${DIST_SUBDIR}/\ftp:///pub/FreeBSD/ports/distfiles/${DIST_SUBDIR} /MASTER_SITE_OVERRIDE?=${MASTER_SITE_BACKUP}安装Mysql5.1.40cd /usr/ports/databases/mysql51-servermake WITH_CHARSET=gbk WITH_XCHARSET=all WITH_PROC_SCOPE_PTH=yes BUILD_OPTIMIZED=yes BUILD_STATIC=yes SKIP_DNS_CHECK=yes WITHOUT_INNODB=yes install clean#安装系统数据库/usr/local/bin/mysql_install_db --user=mysqlcp /usr/local/share/mysql/f /etc/f#设置mysql 开机启动vi /etc/rc.conf#添加以下内容mysql_enable="YES"#启动mysql/usr/local/etc/rc.d/mysql-server start安装Nginx安装pcre8.00pcre 是Nginx 所需的 Perl兼容正则表达式库cd /usr/ports/devel/pcremake install安装Nginx0.8.24cd /usr/ports/www/nginxmake install#配置编译参数[ ] DEBUG Enable nginx debugging[ ] IPV6 Enable IPv6[ ] GOOGLE_PERFTOOLS Enable google perftools module [X] HTTP_MODULE Enable HTTP module[ ] HTTP_ADDITION_MODULE Enable http_addition module[X] HTTP_CACHE_MODULE Enable http_cache module[ ] HTTP_DAV_MODULE Enable http_webdav module[ ] HTTP_FLV_MODULE Enable http_flv module[X] HTTP_GZIP_STATIC_MODULE Enable http_gzip_static module [ ] HTTP_IMAGE_FILTER_MODULE Enable http_image_filter module [ ] HTTP_PERL_MODULE Enable http_perl module[ ] HTTP_RANDOM_INDEX_MODULE Enable http_random_index module [ ] HTTP_REALIP_MODULE Enable http_realip module[X] HTTP_REWRITE_MODULE Enable http_rewrite module[ ] HTTP_SECURE_LINK_MODULE Enable http_secure_link module [ ] HTTP_SSL_MODULE Enable http_ssl module[X] HTTP_STATUS_MODULE Enable http_stub_status module [ ] HTTP_SUB_MODULE Enable http_sub module[ ] HTTP_XSLT_MODULE Enable http_xslt module[ ] MAIL_MODULE Enable IMAP4/POP3/SMTP proxy module [ ] MAIL_IMAP_MODULE Enable IMAP4 proxy module[ ] MAIL_POP3_MODULE Enable POP3 proxy module[ ] MAIL_SMTP_MODULE Enable SMTP proxy module[ ] MAIL_SSL_MODULE Enable mail_ssl module[ ] WWW Enable html sample files[ ] HTTP_ACCESSKEY_MODULE 3rd party http_accesskey module [ ] HTTP_EVAL_MODULE 3rd party eval module[ ] HTTP_FANCYINDEX_MODULE 3rd party http_fancyindex module [ ] HTTP_MOGILEFS_MODULE 3rd party mogilefs module[ ] HTTP_MP4_H264_MODULE 3rd party mp4/h264 module[ ] HTTP_NOTICE_MODULE 3rd party notice module[ ] HTTP_REDIS_MODULE 3rd party http_redis module[ ] HTTP_RESPONSE_MODULE 3rd party http_response module [ ] HTTP_UPLOAD_MODULE 3rd party upload module[ ] HTTP_UPLOAD_PROGRESS 3rd party upload_progress module [ ] HTTP_UPSTREAM_FAIR 3rd party upstream fair module [ ] HTTP_UPSTREAM_KEEPALIVE 3rd party upstream keepalive module [ ] HTTP_ZIP_MODULE 3rd party http_zip module[ ] PASSENGER_MODULE 3rd party passenger module#修改 nginx 配置文件vi /usr/local/etc/nginx/nginx.conf#设置 mysql 开机启动vi /etc/rc.conf#添加以下内容mysql_enable="YES"#启动nginx/usr/local/etc/rc.d/nginx start安装libxml2-2.7.6cd /usr/ports/textproc/libxml2make install安装GD安装libpng1.2.40cd /usr/ports/graphics/pngmake install安装jpeg v7cd /usr/ports/graphics/jpegmake install安装freetype2.3.11cd /usr/ports/print/freetype2make install安装gd2.0.35cd /usr/ports/graphics/gdmake install#配置编译参数[ ] X11 X11 support[ ] XPM XPM color bitmap loading support (requires X11) [ ] FONTCONFIG fontconfig library support (requires X11)[X] ICONV iconv support安装PHP安装php5.2.11(FastCGI模式)cd /usr/ports/lang/php5make install clean#配置编译参数[X] CLI Build CLI version[X] CGI Build CGI version[ ] APACHE Build Apache module[ ] DEBUG Enable debug[X] SUHOSIN Enable Suhosin protection system (not for jails) [ ] MULTIBYTE Enable zend multibyte support[ ] IPV6 Enable ipv6 support[ ] MAILHEAD Enable mail header patch[ ] REDIRECT Enable force-cgi-redirect support (CGI only) [ ] DISCARD Enable discard-path support (CGI only)[X] FASTCGI Enable fastcgi support (CGI only)[X] PATHINFO Enable path-info-check support (CGI only)#安装 php5-extensionscd /usr/ports/lang/php5-extensionsmake install clean#配置编译参数[ ] BCMATH bc style precision math functions[ ] BZ2 bzip2 library support[ ] CALENDAR calendar conversion support[X] CTYPE ctype functions[X] CURL CURL support[ ] DBA dba support[ ] DBASE dBase library support[X] DOM DOM support[ ] EXIF EXIF support[ ] FILEINFO fileinfo support[X] FILTER input filter support[ ] FRIBIDI FriBidi support[ ] FTP FTP support[X] GD GD library support[ ] GETTEXT gettext library support[ ] GMP GNU MP support[X] HASH HASH Message Digest Framework[X] ICONV iconv support[ ] IMAP IMAP support[ ] INTERBASE Interbase 6 database support (Firebird) [X] JSON JavaScript Object Serialization support [ ] LDAP OpenLDAP support[X] MBSTRING multibyte string support[ ] MCRYPT Encryption support[ ] MHASH Crypto-hashing support[ ] MING ming shockwave flash support[ ] MSSQL MS-SQL database support[X] MYSQL MySQL database support[ ] MYSQLI MySQLi database support[ ] NCURSES ncurses support (CLI only)[ ] ODBC unixODBC support[ ] OPENSSL OpenSSL support[ ] PCNTL pcntl support (CLI only)[X] PCRE Perl Compatible Regular Expression support [ ] PDF PDFlib support (implies GD)[X] PDO PHP Data Objects Interface (PDO)[X] PDO_SQLITE PDO sqlite driver[ ] PGSQL PostgreSQL database support[X] POSIX POSIX-like functions[ ] PSPELL pspell support[ ] READLINE readline support (CLI only)[ ] RECODE recode support[X] SESSION session support[ ] SHMOP shmop support[X] SIMPLEXML simplexml support[ ] SNMP SNMP support[ ] SOAP SOAP support[ ] SOCKETS sockets support[X] SPL Standard PHP Library[ ] SQLITE sqlite support[ ] SYBASE_CT Sybase database support[ ] SYSVMSG System V message support [ ] SYSVSEM System V semaphore support [ ] SYSVSHM System V shared memory support [ ] TIDY TIDY support[X] TOKENIZER tokenizer support[ ] WDDX WDDX support (implies XML) [X] XML XML support[X] XMLREADER XMLReader support[ ] XMLRPC XMLRPC-EPI support[X] XMLWRITER XMLWriter support[ ] XSL XSL support (Implies DOM) [ ] YAZ YAZ support (ANSI/NISO Z39.50) [ ] ZIP ZIP support[X] ZLIB ZLIB support#安装过程中遇到的软件配置编译参数默认选择即可安装ZendOptimizer3.3.9测试系统优化防ddos攻击结束语ChangeLog。

相关文档
最新文档