FreeBSD + Nginx 環(huán)境搭建教程_第1頁
FreeBSD + Nginx 環(huán)境搭建教程_第2頁
FreeBSD + Nginx 環(huán)境搭建教程_第3頁
FreeBSD + Nginx 環(huán)境搭建教程_第4頁
FreeBSD + Nginx 環(huán)境搭建教程_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、.:.;FreeBSD + Nginx 環(huán)境搭建教程2021-03-30 12:272021年02月22日 星期一 下午 05:12為什么要選擇 FreeBSD?官方網(wǎng)站: HYPERLINK / t _blank 中文網(wǎng)站: HYPERLINK /zh_CN/ t _blank /zh_CN/FreeBSD是一個(gè)優(yōu)秀的unix操作系統(tǒng),基于寬松的BSD協(xié)議,是完美的企業(yè)級(jí)操作系統(tǒng),以重點(diǎn)突出性能和平安而出名,行業(yè)領(lǐng)先的企業(yè)多年以來不斷 運(yùn)用FreeBSD效力器。具有同一切其它開源軟件操作系統(tǒng)競爭的高級(jí)性能。 Unix兼容性強(qiáng)速度快極其穩(wěn)定、可靠強(qiáng)大的網(wǎng)絡(luò)功能多用戶、多義務(wù)運(yùn)用方便(按照極好的

2、闡明文件操作)為什么要選擇 Nginx? HYPERLINK / t _blank Nginx (“engine x) 是一個(gè)高性能的 和 HYPERLINK /wiki/Reverse_proxy t _blank 反向代理 效力器,也是一個(gè) IMAP/POP3/SMTP HYPERLINK /wiki/Proxy_server t _blank 代理效力器。Nginx 是由 HYPERLINK sysoev.ru/en/ t _blank Igor Sysoev 為俄羅斯訪問量第二的 HYPERLINK rambler.ru/ t _blank Rambler.ru 站點(diǎn)開發(fā)的,它曾經(jīng)在該

3、站點(diǎn)運(yùn)轉(zhuǎn)超越四年多了。Igor 將源代碼以類BSD答應(yīng)證的方式發(fā)布。自Nginx 發(fā)布四年來,Nginx 曾經(jīng)由于它的穩(wěn)定性、豐富的功能集、 例如配置文件和低系統(tǒng)資源的耗費(fèi)而出名了。目前國內(nèi)各大門戶網(wǎng)站曾經(jīng)部署了Nginx,如新浪、網(wǎng)易、騰訊等;國內(nèi)幾個(gè)重要的視頻分享網(wǎng)站也部署了 Nginx,如六房間、酷6等。 新近發(fā)現(xiàn)Nginx 技術(shù)在國內(nèi)日趨熾熱,越來越多的網(wǎng)站開場部署Nginx。Nginx 是一個(gè)很牛的高性能Web和反向代理效力器, 它具有有很多非常優(yōu)越的特性:在高銜接并發(fā)的情況下,Nginx是Apache效力器不錯(cuò)的替代品: Nginx在美國是做虛擬主機(jī)生意的老板們經(jīng)常選擇的軟件平臺(tái)之

4、一. 可以支持高達(dá) 50,000 個(gè)并發(fā)銜接數(shù)的呼應(yīng), 贊賞Nginx為我們選擇了 HYPERLINK kegel/c10k.html o kegel/c10k.html epoll and kqueue 作為開發(fā)模型;內(nèi)存耗費(fèi)少:在3萬并發(fā)銜接下,開啟10個(gè)Nginx進(jìn)程耗費(fèi)150M左右內(nèi)存15M*10;不要錢:Nginx為開源軟件,可以免費(fèi)運(yùn)用。而購買F5 BIG-IP、NetScaler等硬件負(fù)載平衡交換機(jī)剛需求十多萬至幾十萬元人民幣;Nginx作為負(fù)載平衡效力器: Nginx 既可以在內(nèi)部直接支持 HYPERLINK wiki.codemongers/NginxRubyonRailsM

5、ongrel Rails 和 HYPERLINK wiki.codemongers/NginxFcgiExample PHP 程序?qū)ν膺M(jìn)展效力, 也可以支持作為 HYPERLINK wiki.codemongers/NginxHttpProxyModule HTTP代理 效力器對外進(jìn)展效力. Nginx采用C進(jìn)展編寫, 不論是系統(tǒng)資源開銷還是CPU運(yùn)用效率都比 HYPERLINK danga/perlbal/ Perlbal 要好很多;作為郵件代理效力器: Nginx 同時(shí)也是一個(gè)非常優(yōu)秀的郵件代理效力器最早開發(fā)這個(gè)產(chǎn)品的目的之一也是作為郵件代理效力器, HYPERLINK blog.fast

6、mail.fm/2007/01/04/webimappop-frontend-proxies-changed-to-nginx/ Last.fm描 述了勝利并且愉快的運(yùn)用閱歷;Nginx 是一個(gè) #installation 安裝 非常的簡單 ,配置文件?非常簡約還可以支持perl語法, HYPERLINK /CHANGES-0.5 Bugs非 常少的效力器: Nginx 啟動(dòng)特別容易, 并且?guī)缀蹩梢宰龅?*24不延續(xù)運(yùn)轉(zhuǎn),即使運(yùn)轉(zhuǎn)數(shù)個(gè)月也不需求重新啟動(dòng). 他還可以不延續(xù)效力的情況下進(jìn)展軟件版本的晉級(jí);穩(wěn)定性高:用于反向代理,宕機(jī)的概率微乎其微。4GB內(nèi)存的效力器+Apacheprefork方式

7、普通只能處置3000個(gè)并發(fā)銜接,由于它們將占用3GB以上的內(nèi) 存,還得為系統(tǒng)預(yù)留1GB 的內(nèi)存。 Nginx 0.7.51 + PHP 5.2.8 (FastCGI) 效力器在3萬并發(fā)銜接下,開啟的10個(gè)Nginx進(jìn)程耗費(fèi)150M內(nèi)存15M*10=150M,開啟的64個(gè)php-cgi進(jìn)程耗費(fèi)1280M內(nèi)存 20M*64=1280M,加上系統(tǒng)本身耗費(fèi)的內(nèi)存,總共耗費(fèi)不到2GB內(nèi)存。假設(shè)效力器內(nèi)存較小,完全可以只開啟25個(gè)php-cgi進(jìn)程,這樣 php-cgi耗費(fèi)的總內(nèi)存數(shù)才500M。為什么Nginx的性能要比Apache高得多?這得益于Nginx運(yùn)用了最新的 epollLinux 2.6內(nèi)核和

8、kqueuefreebsd網(wǎng)絡(luò)I/O模型,而Apache那么運(yùn)用的是傳統(tǒng)的select模型。目前Linux下可以接受高并發(fā)訪問的 Squid、Memcached都采用的是epoll網(wǎng)絡(luò)I/O模型。處置大量的銜接的讀寫,Apache所采用的select網(wǎng)絡(luò)I/O模型非常低效。下面用一個(gè)比喻來解析Apache采用的select模型和 Nginx采用的epoll模型進(jìn)展之間的區(qū)別:假設(shè)他在大學(xué)讀書,住的宿舍樓有很多間房間,他的朋友要來找他。select版樓管大媽就會(huì)帶著他的朋友挨個(gè)房間去找,直 到找到他為止。而 epoll版樓管大媽會(huì)先記下每位同窗的房間號(hào),他的朋友來時(shí),只需通知他的朋友他住在哪個(gè)房

9、間即可,不用親身帶著他的朋友滿大樓找人。假設(shè)來了 10000個(gè)人,都要找本人住這棟樓的同窗時(shí),select版和epoll版樓管大媽,誰的效率更高,不言自明。同理,在高并發(fā)效力器中,輪詢I/O是最 耗時(shí)間的操作之一,select和epoll的性能誰的性能更高,同樣不言自明了。安裝 FreeBSD7.2操作系統(tǒng)的安裝建議參考FreeBSD Handbook,在此僅給出鏈接,以防止不用要的反復(fù)勞動(dòng):英文版 HYPERLINK /doc/en_US.ISO8859-1/books/handbook/install.html t _blank /doc/en_US.ISO8859-1/books/han

10、dbook/install.html中文版 HYPERLINK /doc/zh_CN.GB2312/books/handbook/install.html t _blank /doc/zh_CN.GB2312/books/handbook/install.html安裝時(shí)的本卷須知1. 磁盤分區(qū)由于是WEB效力系統(tǒng),網(wǎng)站目錄都放于/home目錄下,因此home分區(qū)要有足夠的空間。以一塊硬盤146G/內(nèi)存4G的效力器為例,可做如下分 區(qū):/ 1024Mswap 4096M/var 10G/usr 20G/home 110G/tmp 1024M2. 軟件包的選擇我們的WEB效力系統(tǒng)是要對外效力的,所

11、以盡能夠少的選擇軟件包,安裝時(shí)建議選擇Minimal,然后進(jìn)入Custom選擇 doc,info,man,src即可。配置1. 編輯/etc/rc.conf確保有如下內(nèi)容:sshd_enable=YESnamed_enable=YES2根據(jù)硬件的配置重新編譯內(nèi)核,編譯內(nèi)核的方法參考FreeBSD Handbook,這里只給出鏈接:英文版 HYPERLINK /doc/en_US.ISO8859-1/books/handbook/kernelconfig.html t _blank /doc/en_US.ISO8859-1/books/handbook/kernelconfig.html中文版

12、HYPERLINK /doc/zh_CN.GB2312/books/handbook/kernelconfig.html t _blank /doc/zh_CN.GB2312/books/handbook/kernelconfig.html編譯后系統(tǒng)的性能將得到較大的提升。獲取相關(guān)開源軟件包本文中提到的一切開源軟件包為截止到2021年10月20日的最新穩(wěn)定版,且均從官方網(wǎng)站下載。mkdir -p /home/softwarecd /home/softwarefetch HYPERLINK sysoev.ru/nginx/nginx-0.8.24.tar.gz sysoev.ru/nginx/n

13、ginx-0.8.24.tar.gzfetch HYPERLINK ftpftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.00.tar.gz t _blank ftpftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.00.tar.gzfetch HYPERLINK /libxml2/libxml2-2.7.6.tar.gz /libxml2/libxml2-2.7.6.tar.gzfetch HYPERLINK /zlib-1.2.3.tar.gz /zlib-1.2.3.

14、tar.gzfetch HYPERLINK /pub/libpng/png/src/libpng-1.2.40.tar.gz /pub/libpng/png/src/libpng-1.2.40.tar.gzfetch HYPERLINK /files/jpegsrc.v7.tar.gz /files/jpegsrc.v7.tar.gzfetch HYPERLINK /Unix/NonGNU/freetype/freetype-2.3.11.tar.gz /Unix/NonGNU/freetype/freetype-2.3.11.tar.gzfetch HYPERLINK /releases/g

15、d-2.0.35.tar.gz /releases/gd-2.0.35.tar.gzfetch HYPERLINK /get/php-5.2.11.tar.gz/from/this/mirror /get/php-5.2.11.tar.gz/from/this/mirrorfetch HYPERLINK /downloads/php-5.2.11-fpm-0.5.13.diff.gz /downloads/php-5.2.11-fpm-0.5.13.diff.gzfetch HYPERLINK /pub/gnu/libiconv/libiconv-1.13.tar.gz /pub/gnu/li

16、biconv/libiconv-1.13.tar.gz安裝 Mysql5.1.40Mysql5.1.40 下載地址: HYPERLINK dev.mysql/get/Downloads/MySQL-5.1/mysql-5.1.40.tar.gz/from/pick t _blank dev.mysql/get/Downloads/MySQL-5.1/mysql-5.1.40.tar.gz/from/pick pw groupadd mysqlpw useradd mysql -g mysql -d /dev/null -s /sbin/nologintar zxvf mysql-5.1.40.

17、tar.gzcd 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=innobasemake & make install cleanchmod +w /usr/local/webserver/mysql

18、chown -R mysql:mysql /usr/local/webserver/mysqlcp /usr/local/webserver/mysql/support-files/my-mediumf /usr/local/webserver/mysql/myfcd .以mysql用戶帳號(hào)的身份建立數(shù)據(jù)表/usr/local/webserver/mysql/bin/mysql_install_db datadir=/usr/local/webserver/mysql/data user=mysql創(chuàng)建 Mysql 開機(jī)啟動(dòng)腳本cp /usr/local/webserver/mysql/sha

19、re/mysql/mysql.server /usr/local/etc/rc.d/mysql.sh為 mysql.sh 腳本設(shè)置可執(zhí)行屬性chmod +x /usr/local/etc/rc.d/mysql.sh修正 /etc/rc.confvi /etc/rc.conf參與以下內(nèi)容mysql_enable=YES啟動(dòng) Mysql/usr/local/etc/rc.d/mysql.sh start安裝 Nginx安裝Nginx所需的pcre庫tar zxvf pcre-8.00.tar.gzcd pcre-8.00./configuremake & make install cleancd

20、.安裝 Nginx0.8.24tar zxvf nginx-0.8.24.tar.gzcd nginx-0.8.24./configure user=www group=www prefix=/usr/local/webserver/nginx with-http_stub_status_module with-http_ssl_modulemake & make install cleancd .創(chuàng)建 Nginx 日志目錄mkdir -p /var/log/nginxchmod +w /var/log/nginxchown -R www:www /var/log/nginx創(chuàng)建 Nginx

21、配置文件rm -f /usr/local/webserver/nginx/conf/nginx.confvi /usr/local/webserver/nginx/conf/nginx.conf輸入以下內(nèi)容:user www www;worker_processes 8;error_log /var/log/nginx/error.log;pid /var/log/nginx/nginx.pid;worker_rlimit_nofile 51200;events use kqueue; worker_connections 51200; include mime.types; default_

22、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 3

23、00; 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; serv

24、er listen 80; server_name localhost; root /home/excms; index index.html index.htm index.php; location .php$ fastcgi_pass :9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; location /nginx_status stub_status on; access_log off; 創(chuàng)建

25、 Nginx 開機(jī)啟動(dòng)腳本vi /usr/local/etc/rc.d/nginx.sh參與以下內(nèi)容#!/bin/shnginx=/usr/local/webserver/nginx/sbin/nginxconf=/usr/local/webserver/nginx/conf/nginx.confcase $1 in start) echo -n Starting Nginx $nginx -c $conf echo done ; stop) echo -n Stopping Nginx killall -9 nginx echo done ; test) $nginx -t -c $conf

26、 ; reload) echo -n Reloading Nginx ps auxww | grep nginx | grep master | awk print $2 | xargs kill -HUP echo done ; restart) $nginx stop $nginx start ; show) ps -aux|grep nginx ; *) echo -n Usage: $0 start|restart|reload|stop|test|show ;esac為 nginx.sh 腳本設(shè)置可執(zhí)行屬性chmod +x /usr/local/etc/rc.d/nginx.sh修正

27、 /etc/rc.confvi /etc/rc.conf參與以下內(nèi)容nginx_enable=YES啟動(dòng) Nginx/usr/local/etc/rc.d/nginx.sh start在不停頓 Nginx 效力的情況下平滑變卦 Nginx 配置修正 /usr/local/webserver/nginx/conf/nginx.conf 配置文件后,請執(zhí)行以下命令檢查配置文件能否正確:/usr/local/etc/rc.d/nginx.sh test假設(shè)屏幕顯示以下兩行信息,闡明配置文件正確:the configuration file /usr/local/webserver/nginx/con

28、f/nginx.conf syntax is okthe configuration file /usr/local/webserver/nginx/conf/nginx.conf was tested successfully平滑變卦 Nginx 配置/usr/local/etc/rc.d/nginx.sh reload安裝 GD安裝 zlibtar zxvf zlib-1.2.3.tar.gzcd zlib-1.2.3./configuremake & make install cleancd .安裝 libpngtar zxvf libpng-1.2.40.tar.gzcd libpng

29、-1.2.40./configuremake & make install cleancd .安裝 jpegtar zxvf jpegsrc.v7.tar.gzcd jpeg-7./configure prefix=/usr/local/jpeg7 -enable-shared -enable-staticmake & make install cleancd .安裝 freetypetar zxvf freetype-2.3.11.tar.gzcd freetype-2.3.11./configuremake & make install cleancd .安裝 gd2.0.35tar zx

30、vf gd-2.0.35.tar.gzcd gd-2.0.35./configure -prefix=/usr/local/gd2 -with-jpeg=/usr/local/jpeg7 -width-png -width-zlib -width-freetypemake & make install cleancd .安裝 libxml2tar -zxvf libxml2-2.7.6.tar.gzcd libxml2-2.7.6./configuremake & make install cleancd .安裝 PHP5.2.11編譯安裝PHP 5.2.11所需的支持庫 libiconvta

31、r zxvf libiconv-1.13.tar.gzcd libiconv-1.13./configure prefix=/usr/localmake & make install cleancd .編譯安裝PHPFastCGI方式tar zxvf php-5.2.11.tar.gzgzip -cd php-5.2.11-fpm-0.5.13.diff.gz | patch -d php-5.2.11 -p1cd php-5.2.11./configure prefix=/usr/local/webserver/php with-config-file-path=/usr/local/web

32、server/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 w

33、ith-curlwrappers enable-mbregex enable-fastcgi enable-fpm enable-force-cgi-redirect enable-mbstring with-openssl enable-pcntl enable-socketsmake ZEND_EXTRA_LIBS=-liconvmake install cleancp php.ini-dist /usr/local/webserver/php/etc/php.inicd .安裝 ZendOptimizerZendOptimizer 官方下載地址: HYPERLINK zend/en/pr

34、oducts/guard/downloads t _blank zend/en/products/guard/downloadstar zxvf ZendOptimizer-3.3.9-freebsd6.0-i386.tar.gzcd ZendOptimizer-3.3.3-freebsd6.0-i386ln -s /usr/lib/libc.so /usr/lib/libc.so.6ln -s /usr/lib/libcrypt.so /usr/lib/libcrypt.so.3ln -s /usr/lib/libutil.so /usr/lib/libutil.so.5ln -s /usr

35、/lib/libm.so /usr/lib/libm.so.4./install-ttycd .安裝過程中的提示全默許就可以,指定php.ini文件途徑 /usr/local/webserver/php/etc,到Apache Web Server選no修正php-fpm配置文件php-fpm是為PHP打的一個(gè)FastCGI管理補(bǔ)丁,可以平滑變卦php.ini配置而無需重啟php-cgivi /usr/local/webserver/php/etc/php-fpm.conf將 nobody和 nobody 中的 nobody 改為 www, 并去掉前后的注釋標(biāo)簽 ;如要顯示PHP調(diào)試的錯(cuò)誤信息

36、將 0 修正為 1 ,并去掉前后的注釋標(biāo)簽 , 以顯示PHP錯(cuò)誤信息,否那么,Nginx 會(huì)報(bào)形狀為500的空白錯(cuò)誤頁。創(chuàng)建 PHP-fpm 開機(jī)啟動(dòng)腳本vi /usr/local/etc/rc.d/php-fpm.sh參與以下內(nèi)容#! /bin/shphp_fpm_BIN=/usr/local/webserver/php/bin/php-cgiphp_fpm_CONF=/usr/local/webserver/php/etc/php-fpm.confphp_fpm_PID=/usr/local/webserver/php/logs/php-fpm.pidphp_opts=-fpm-confi

37、g $php_fpm_CONFwait_for_pid () try=0 while test $try -lt 35 ; do case $1 in created) if -f $2 ; then try= break fi ; removed) if ! -f $2 ; then try= break fi ; esac echo -n . try=expr $try + 1 sleep 1 donecase $1 in start) echo -n Starting php_fpm $php_fpm_BIN -fpm $php_opts if $? != 0 ; then echo f

38、ailed exit 1 fi wait_for_pid created $php_fpm_PID if -n $try ; then echo failed exit 1 else echo done fi ; stop) echo -n Shutting down php_fpm if ! -r $php_fpm_PID ; then echo warning, no pid file found - php-fpm is not running ? exit 1 fi kill -TERM cat $php_fpm_PID wait_for_pid removed $php_fpm_PI

39、D if -n $try ; then echo failed exit 1 else echo done fi ; quit) echo -n Gracefully shutting down php_fpm if ! -r $php_fpm_PID ; then echo warning, no pid file found - php-fpm is not running ? exit 1 fi kill -QUIT cat $php_fpm_PID wait_for_pid removed $php_fpm_PID if -n $try ; then echo failed exit 1 else echo done fi ; restart) $0 stop $0 start ; reload) echo -n Reload service php-fpm if ! -r $php_fpm_PID ; then echo warning, no pid file found - php-fpm is not running ? exit 1 fi kill -USR2 cat $php_fpm_PID echo done ;

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論