CentOS + Nginx 环境搭建教程

CentOS + Nginx 环境搭建教程

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/

nobody

name="group">nobody 中的 nobody 改为 www, 并去掉前后的注释标签

如要显示PHP调试的错误信息将 0 修改为 1 ,并去掉前后的注释标签 ,

以显示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/

加入如下文本

;

打开浏览器,在地址栏里输入 您服务器的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条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信