2023年7月3日发(作者:)
安装 - CentOS + Nginx 环境搭建教程
前言:本文是关于如何搭建基于“CentOS5.4 + Nginx0.8.24 + PHP5.2.11(FastCGI)+ GD + ZendOptimizer + Mysql5.1.40 + 系统优化 + 防ddos攻击”高性能、高负载Web服务器的文章,安装方式为源代码安装。
获取相关开源软件包
本文中提到的所有开源软件包为截止到2009年10月20日的最新稳定版,且均从官方网站下载。
mkdir -p /home/software
cd /home/software
fetch/nginx/
wgetftp:///pub/software/programming/pcre/
wgetftp:///libxml2/
wget/
wgetftp:///pub/libpng/png/src/
wget/files/
wget/Unix/NonGNU/freetype/
wget/releases/
wget/get//from/this/mirror
wget/downloads/
wget/pub/gnu/libiconv/
安装、升级所需的程序库
利用CentOS Linux系统自带的yum命令安装、升级所需的程序库
yum -y install gcc gcc-c++ autoconf libtool* openssl openssl-devel
安装 Mysql5.1.40 Mysql5.1.40 下载地址:/get/Downloads/MySQL-5.1//from/pick
/usr/sbin/groupadd mysql
/usr/sbin/useradd mysql -g mysql -d /dev/null -s /sbin/nologin
tar zxvf
cd mysql-5.1.40
./configure --prefix=/usr/local/webserver/mysql/ --enable-assembler
--with-extra-charsets=complex --enable-thread-safe-client --with-big-tables
--with-readline --with-ssl --with-embedded-server --enable-local-infile
--with-plugins=innobase
make && make install clean
chmod +w /usr/local/webserver/mysql
chown -R mysql:mysql /usr/local/webserver/mysql
cp /usr/local/webserver/mysql/share/mysql/
/usr/local/webserver/mysql/
cd ..
以mysql用户帐号的身份建立数据表
/usr/local/webserver/mysql/bin/mysql_install_db
--datadir=/usr/local/webserver/mysql/data --user=mysql
创建 Mysql开机启动脚本
cp /usr/local/webserver/mysql/share/mysql/ /etc/init.d/mysql
chmod +x /etc/init.d/mysql
添加Nginx为系统服务(开机自动启动)
chkconfig --add mysql
chkconfig mysql on
启动 Mysql
service mysql start 安装Nginx
安装Nginx所需的pcre库
tar zxvf
cd pcre-8.00
./configure
make && make install clean
cd ..
安装 Nginx0.8.24
tar
cdnginx-0.8.24
./configure --user=www --group=www
--prefix=/usr/local/webserver/nginx--with-http_stub_status_module
--with-http_ssl_module
make && make install clean
cd ..
创建www组、用户、Nginx日志目录
/usr/sbin/groupadd www
/usr/sbin/useradd www -g www -d /dev/null -s /sbin/nologin
mkdir -p /var/log/nginxchmod +w /var/log/nginxchown -R www:www
/var/log/nginx
创建Nginx配置文件
rm -f /usr/local/webserver/nginx/conf/
vi /usr/local/webserver/nginx/conf/
输入以下内容:
user www www;
worker_processes 8;
error_log /var/log/nginx/;
pid /var/log/nginx/;
worker_rlimit_nofile 51200;
events {
use epoll;
worker_connections 51200;
}
http {
include ;
default_type application/octet-stream;
server_names_hash_bucket_size 128;
client_header_buffer_size 32k;
large_client_header_buffers 4 32k;
client_max_body_size 8m;
sendfile on;
tcp_nopush on;
keepalive_timeout 30;
tcp_nodelay on;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 64k;
fastcgi_buffers 4 64k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 128k; gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.1;
gzip_comp_level 2;
gzip_types text/plain application/x-javascript text/css
application/xml
gzip_vary on;
server {
listen 80;
server_name localhost;
root /home/excms;
index ;
location ~ .php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index ;
fastcgi_param SCRIPT_FILENAME
$document_root$fastcgi_script_name;
include fastcgi_params;
}
location /nginx_status {
stub_status on;
access_log off;
}
}
}
创建Nginx开机启动脚本 vi /etc/init.d/nginx
加入以下内容
#!/bin/bash
#
# chkconfig: - 85 15
# description:Nginxis a World Wide Web server.
#
processname:nginxnginx=/usr/local/webserver/nginx/sbin/nginxconf=/usr/local/webserver/nginx/conf/
case $1 in
start)
echo -n "StartingNginx"
$nginx-c $conf
echo " done"
;;
stop)
echo -n "StoppingNginx"
killall -9nginxecho " done"
;;
test)
$nginx-t -c $conf
;;
reload)
echo -n "ReloadingNginx"
ps auxww | grepnginx| grep master | awk '{print $2}' | xargs
kill -HUP
echo " done" ;;
restart)
$0 stop
$0 start
;;
show)
ps -aux|grepnginx;;
*)
echo -n "Usage: $0 {start|restart|reload|stop|test|show}"
;;
esac
为 脚本设置可执行属性
chmod +x /etc/init.d/nginx
添加Nginx为系统服务(开机自动启动)
chkconfig --addnginxchkconfignginxon
启动Nginx
servicenginxstart
在不停止Nginx服务的情况下平滑变更Nginx配置
修改 /usr/local/webserver/nginx/conf/ 配置文件后,请执行以下命令检查配置文件是否正确:
servicenginxtest
如果屏幕显示以下两行信息,说明配置文件正确:
the configuration file /usr/local/webserver/nginx/conf/ syntax is ok the configuration file /usr/local/webserver/nginx/conf/ was tested
successfully
平滑变更Nginx配置
servicenginxreload
安装 GD
安装 zlib
tar zxvf
cd zlib-1.2.3
./configure
make && make install clean
cd ..
安装 libpng
tar zxvf
cd libpng-1.2.40
./configure
make && make install clean
cd ..
安装 jpeg
tar zxvf
cd jpeg-7
./configure -enable-shared -enable-static
make && make install clean
cd .. 安装 freetype
tar zxvf
cd freetype-2.3.11
./configure
make && make install clean
cd ..
安装 gd2.0.35
tar zxvf
cd gd-2.0.35
./configure
make && make install clean
cd ..
安装 libxml2
tar -zxvf
cd libxml2-2.7.6
./configure
make && make install clean
cd ..
安装 PHP
编译安装PHP 5.2.11所需的支持库 libiconv
tar zxvf
cd libiconv-1.13
./configure --prefix=/usr/local
make && make install clean
cd ..
编译安装PHP(FastCGI模式) tar zxvf
gzip -cd | patch -d php-5.2.11 -p1
cd php-5.2.11
./configure --prefix=/usr/local/webserver/php
--with-config-file-path=/usr/local/webserver/php/etc
--with-mysql=/usr/local/webserver/mysql --with-iconv-dir --with-freetype-dir
--with-jpeg-dir --with-png-dir --with-zlib --with-gd --enable-gd-native-ttf
--with-libxml-dir --enable-xml --disable-rpath --enable-discard-path
--enable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem
--enable-inline-optimization --with-curlwrappers --enable-mbregex
--enable-fastcgi --enable-fpm --enable-force-cgi-redirect --enable-mbstring
--with-openssl --enable-pcntl --enable-sockets
make ZEND_EXTRA_LIBS='-liconv'
make install clean
cp -dist /usr/local/webserver/php/etc/
cd ..
安装 ZendOptimizer
ZendOptimizer 官方下载地址:/en/products/guard/downloads
tar zxvf
cd ZendOptimizer-3.3.9-linux-glibc23-i386
cp data/5_2_x_comp/ /usr/local/webserver/php/include/
修改 在末尾添加以下内容
[zend]
zend_zation_level=15
zend_extension="/usr/local/webserver/php/include/"
修改php-fpm配置文件
php-fpm是为PHP打的一个FastCGI管理补丁,可以平滑变更配置而无需重启php-cgi vi /usr/local/webserver/php/etc/
将 name="group">nobody
如要显示PHP调试的错误信息将
以显示PHP错误信息,否则,Nginx会报状态为500的空白错误页。
修改 php-fpm 启动脚本
ln -s /usr/local/webserver/php/sbin/php-fpm /etc/init.d/php-fpm
vi /usr/lcaol/webserver/php/sbin/php-fpm
在 #!/bin/sh 下添加以下内容
#
# chkconfig: - 85 15
# description: php-fpm is PHP FastCGI Process Manage.
# processname: php-fpm
添加 php-fpm 为系统服务
chkconfig --add php-fpm
chkconfig php-fpm on
启动 php-fpm
service php-fpm start
在不停止 PHP-fpm 服务的情况下平滑变更 配置
修改 /usr/local/webserver/php/etc/ 或者
/usr/loca/webserver/php/etc/ 配置文件后,请执行以下命令检查配置文件是否正确:
service php-fpm reload
测试
在/home/excms 目录下新建
vi /home/excms/
加入如下文本
phpinfo(); ?>;
打开浏览器,在地址栏里输入 您服务器的IP/
优化Linux内核参数
vi /etc/
在末尾增加如下文本
_max_backlog = 32768
onn = 32768
_default = 8388608
_default = 8388608
_max = 16777216
_max = 16777216
_max_syn_backlog = 65536
_timestamps = 0
_synack_retries = 2
_syn_retries = 2
_tw_recycle = 1
_tw_reuse = 1
_mem = 94500000 915000000 927000000
_max_orphans = 3276800
_local_port_range = 1024 65535 使配置立即生效:
/sbin/sysctl -p
防ddos攻击
Sysctl 修改
vi /etc/
加入如下文本
sysctl kets=100000
于ddos很有用
sysctl onn=65535
sysctl =2500
##增加并发的socket,对
##打开文件数
##timeout时间
发布者:admin,转转请注明出处:http://www.yc00.com/news/1688383335a129808.html
评论列表(0条)