利用Nginx架設高效能的Web環境

2021-09-05 21:29:17 字數 4487 閱讀 6455

nginx ("engine x") 是乙個高效能的 http 和反向**伺服器,也是乙個 imap/pop3/smtp **伺服器。 nginx 是由 igor sysoev 為俄羅斯訪問量第二的 rambler.ru 站點開發的,它已經在該站點執行超過兩年半了。igor 將源**以類bsd許可證的形式發布。

nginx 超越 apache 的高效能和穩定性,使得國內使用 nginx 作為 web 伺服器的**也越來越多,其中包括

網易新聞等門戶**頻道,

六間房、

discuz!官方論壇、

水木社群等知名論壇,

豆瓣、yupoo相簿、

海內sns、

實驗環境

centos4.5

pcre-7.8.tar.gz      正規表示式

nginx-0.7.26.tar

php-5.2.6.tar.bz2

php-5.2.6-fpm-0.5.9.diff.gz

php-fpm是為

php打的乙個fastcgi

管理補丁,可以平滑變更php.ini配置而無需重啟php-cgi

注:php的版本要和fpm的版本一致 my

sql-5.0.67.tar.gz

discuz!_6.0.0_sc_utf8.zip

1、安裝pcre

# tar -zxvf pcre-7.8.tar.gz

# cd pcre-7.8

# ./configure

# make && make install

2、安裝nginx

# tar -zxvf nginx-0.7.26.tar.gz

# cd nginx-0.7.26

# ./configure --prefix=/usr/local/nginx

# make && make install

啟動nginx

# /usr/local/nginx/sbin/nginx

停止nginx

# kill -quit `cat /usr/local/nginx/logs/nginx.pid`

重啟nginx

kill -hup `cat /usr/local/nginx/logs/nginx.pid`

新增到自啟動

# echo "/usr/local/nginx/sbin/nginx">>/etc/rc.local

3、安裝

mysql

# tar -zxvf mysql-5.0.67.tar.gz

# cd mysql-5.0.67

# groupadd mysql

# useradd -g mysql -s /sbin/nologin -m mysql

# ./configure --prefix=/usr/local/mysql --with-charset=gbk --with-extra-charset=all --enable-hread-safe-client --enable-local-infile --with-low-memory

# make && make install

# cp support-files/my-medium.cnf  /etc/my.cnf

# chown -r mysql.mysql /usr/local/mysql/

# /usr/local/mysql/bin/mysql_install_db --user=mysql

# chown -r root.root /usr/local/mysql/

# chown -r mysql.mysql /usr/local/mysql/var/ 啟動

資料庫服務,並新增到自啟動

# /usr/local/mysql/bin/mysqld_safe --user=mysql &

#cp  support-files/mysql.server  /etc/rc.d/init.d/mysqld

#chmod  755  /etc/rc.d/init.d/mysqld

加入自動啟動服務佇列:

#chkconfig --add mysqld

#chkconfig  --level  345  mysqld  on

新增root密碼

# /usr/local/mysql/bin/mysqladmin -u root password "123456"

測試一下:

# /usr/local/mysql/bin/mysql -u root -p

輸入密碼:123456,看能不能進入到

資料庫配置庫

檔案搜尋路徑

# echo "/usr/local/mysql/lib/mysql">>/etc/ld.so.conf

# ldconfig

# ldconfig -v

新增/usr/local/mysql/bin到環境變數path中

#echo "export path=$path:/usr/local/mysql/bin">>/etc/profile

#source /etc/profile

4、安裝php

這裡產生的是可執行檔案,和

apache的不一樣,和apache結合的時候產生的是動態庫

# tar -jxvf php-5.2.6.tar.bz2

# gzip -cd php-5.2.6-fpm-0.5.9.diff.gz |patch -d php-5.2.6 -p1

# cd php-5.2.6

# ./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --enable-fastcgi --enable-fpm --with-config-file-path=/usr/local/php/etc --enable-force-cgi-redirect

# make && make install

# cp php.ini-recommended /usr/local/php/etc/php.ini

# vi /usr/local/php/php-fpm.conf

(1)127.0.0.1:9000

修改為ip:9000  //本機就用預設的127.0.0.1

(2)下面這兩行去掉注釋並修改                       

/usr/sbin/sendmail -t -i

1(3)nobody   //去注釋

(4)nobody  //去注釋

(5)127.0.0.1   //允許連線的pc,本機就用127.0.0.1

啟動php-fpm

# /usr/local/php/sbin/php-fpm start

新增到自啟動

# echo "/usr/local/php/sbin/php-fpm start">>/etc/rc.local

5、修改nginx的配置檔案,支援php

} 注:

server部分為php虛擬主機

127.0.0.1:9000為fastcgi的pc,我這裡用的本機

/var/www/blog$fastcgi_script_name; 為php網頁儲存的目錄

測試配置檔案:

# /usr/local/nginx/sbin/nginx -t

6、優化linux核心引數

# vi /etc/sysctl.conf

在末尾增加以下內容:

net.ipv4.tcp_fin_timeout = 30

net.ipv4.tcp_keepalive_time = 300

net.ipv4.tcp_syncookies = 1

net.ipv4.tcp_tw_reuse = 1

net.ipv4.tcp_tw_recycle = 1

net.ipv4.ip_local_port_range = 5000    65000

使配置立即生效:

# /sbin/sysctl -p

利用Nginx架設高效能的Web環境

注 php的版本要和fpm的版本一致 mysql 5.0.67.tar.gz discuz 6.0.0 sc utf8.zip 1 安裝pcre tar zxvf pcre 7.8.tar.gz cd pcre 7.8 configure make make install 2 安裝nginx ta...

高效能的伺服器的架設 軟體

高效能的伺服器的架設 軟體 php mysql 對於高效能 請求量大,如何支撐?1方面,要減少請求 靜態 php mysql 對於開發人員 合併css,js,背景 icon,減少mysql查詢等.資源的預載入 2 對於運維 nginx的expires,利用瀏覽器快取等,減少查詢.3 利用cdn來響應...

高效能Nginx最佳實踐

三,nginx配置location 配置塊 server 詳情 location會嘗試根據使用者請求中的uri來匹配location的uri表示式,如果可以匹配,就選擇location塊中的配置來處理使用者請求。示例 四,nginx常規配置 一 定義環境變數 語法 evn var var value...