Linux下Nginx的安裝與部署_第1頁
Linux下Nginx的安裝與部署_第2頁
Linux下Nginx的安裝與部署_第3頁
Linux下Nginx的安裝與部署_第4頁
Linux下Nginx的安裝與部署_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、一、 Nginx概述Nginx是一個(gè)高性能的HTTP和反向代理服務(wù)器,也是一個(gè)IMAP/POP3/SMTP服務(wù)器。Nginx是由Igor Sysoev為俄羅斯訪問量第二的Rambler.ru站點(diǎn)開發(fā)的,第一個(gè)公開版本0.1.0發(fā)布于2004年10月4日。其將源代碼以類BSD許可證的形式發(fā)布,因它的穩(wěn)定性、豐富的功能集、示例配置文件和低系統(tǒng)資源的消耗而聞名。本文檔中Nginx版本:二、 Nginx安裝準(zhǔn)備2.1關(guān)閉防火墻用root用戶登錄Liunx系統(tǒng)關(guān)閉防火墻,關(guān)閉防火墻的作用在于防火墻阻擋網(wǎng)絡(luò)的端口訪問,照成網(wǎng)絡(luò)訪問不正常。#service iptables stop#chkconfig -

2、level 345 iptables off關(guān)閉selinux命令:#setenforce 02.2創(chuàng)建Nginx用戶創(chuàng)建nginx運(yùn)行的用戶和組#groupadd nginx #useradd -g nginx nginx#passwd nginx改變程序目錄屬主屬性,賦權(quán)給nginx用戶#chown -hR nginx:nginx /home/nginx三、 Nginx依賴包安裝2.1安裝gcc用root登錄名上傳Linux系統(tǒng)鏡像文件到目錄/home/nginx路徑,輸入命令進(jìn)入到nginx用戶的目錄:#cd /home/nginx輸入命令查看所有文件,確保鏡像文件已上傳。:#ls n

3、輸入命令掛在鏡像文件。注意修改鏡像文件名稱。#mount -o loop /home/nginx/rhel-server-6.8-x86_64-dvd.iso /mnt 輸入命令進(jìn)入到已掛載的鏡像文件目錄中:#cd /mnt/Packages輸入命令查看所有軟件包的.rpm安裝包列表:#ls輸入命令以下命令(軟件安裝順序不能錯(cuò)):注意安裝包名稱根據(jù)實(shí)際情況修改,具體名稱可以看ls命令的安裝包列表(上圖)。#2.2安裝pcreNginx的rewrite 模塊需要 pcre 庫用root登錄名將pcre庫安裝包上傳到Linux系統(tǒng)的/home/nginx目錄中。輸入解壓命令:#cd /home/n

4、ginx#輸入命令ls 拷貝解壓后文件夾名稱,再輸入cd 文件夾名稱進(jìn)入到解壓后的路徑,然后利用命令進(jìn)行編譯并安裝。#cd pcre-8.39#./configure接著輸入命令編譯并安裝pcre:#make#make install2.3安裝zlibgzip 模塊需要zlib 庫,用nginx登錄將zlib程序包上傳到nginx目錄中。輸入命令:#cd /home/nginx#輸入命令進(jìn)入解壓后的目錄并安裝編譯:#./configure#make#make install2.4安裝OpenSSL將Open SSL安裝包上傳到nginx目錄中。輸入解壓命令并進(jìn)入解壓后目錄:#cd /home/

5、nginx#輸入命令編譯安裝#./config#make#make install以上步驟將nginx依賴包已安裝完成。四、 Nginx安裝用nginx登錄名上傳Nginx安裝包到linux服務(wù)器/home/nginx目錄下,進(jìn)入到nginx存放路徑里。#cd /home/nginx 輸入解壓命令解壓Nginx安裝包:#t輸入命令,進(jìn)入解壓后的安裝包目錄中。:#安裝完所有的nginx依賴包后,可以編譯并安裝nginx程序,輸入命令:#./configure -prefix=/home/nginx/nginx-10.2 -with-pcre=/home/nginx/pcre-8.39 -with

6、-zlib=/home/nginx/zlib-1.2.8 -with-openssl=/home/nginx/openssl-1.0.1t -with-http_stub_status_module -with-http_realip_module -with-http_ssl_module /一條命令不換行接著執(zhí)行命令:#make#make install以上命令無報(bào)錯(cuò)提示,則nginx已安裝完成。五、 Nginx啟動(dòng)用root登錄名輸入編輯命令:#vi /home/nginx/nginx-10.2/conf/nginx.conf按字母鍵i進(jìn)行編輯nginx.conf :更改之后按鍵盤左上角

7、的Esc鍵,并輸入命令: :wq ,回車保存并退出。輸入nginx啟動(dòng)命令:#/home/nginx/nginx-10.2/sbin/nginx本機(jī)訪問地,顯示以下網(wǎng)頁就說明Nginx啟動(dòng)成功。Nginx檢測命令:#./nginx #啟動(dòng)#nginx -t #nginx語法檢查#nginx -s stop #關(guān)閉#nginx -s reload #重新加載配置文件#ps -ef | grep nginx#查找進(jìn)程號#killall -9 nginx # kill -9殺掉進(jìn)程 六、 Nginx負(fù)載均衡配置輸入命令:#vi /home/nginx/nginx-10.2/conf/nginx.co

8、nf按字母鍵i進(jìn)行編輯nginx.conf:以上紅色字體需要更改或者添加user nginx; # 定義Nginx運(yùn)行的用戶和用戶組worker_processes 8; #啟動(dòng)進(jìn)程, 通常設(shè)置成和cpu的數(shù)量相等; 用 cat /proc/cpuinfo查看cpu信息, cpu cores一欄顯示內(nèi)核數(shù)error_log logs/error.log; #全局錯(cuò)誤日志#error_log logs/error.log notice;#error_log logs/error.log info; pid logs/nginx.pid; # 進(jìn)程id存儲(chǔ)文件events use epoll; #

9、epoll是多路復(fù)用IO(I/O Multiplexing)中的一種方式,但是僅用于linux2.6以上內(nèi)核,可以大大提高nginx的性能worker_connections 204800; #單個(gè)后臺(tái)worker process進(jìn)程的最大并發(fā)鏈接數(shù),理論上每臺(tái)nginx服務(wù)器的最大連接數(shù)為。worker_processes*worker_connectionshttp include mime.types;default_type application/octet-stream;log_format main'$remote_addr - $remote_user $time_lo

10、cal "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"'access_log logs/access.log ; #設(shè)定日志格式sendfile on; #必須設(shè)為 on,如果用來進(jìn)行下載等應(yīng)用磁盤IO重負(fù)載應(yīng)用,可設(shè)置為 off,以平衡磁盤與網(wǎng)絡(luò)I/O處理速度,降低系統(tǒng)的uptimeserver_tokens off; #關(guān)閉

11、在錯(cuò)誤頁面中的nginx版本數(shù)字,這樣對于安全性是有好處的autoindex on; #開啟目錄列表訪問,合適下載服務(wù)器,默認(rèn)關(guān)閉tcp_nopush on; #防止網(wǎng)絡(luò)阻塞#keepalive_timeout 0;keepalive_timeout 60; #給客戶端分配keep-alive連接超時(shí)時(shí)間tcp_nodelay on; #告訴nginx不要緩存數(shù)據(jù),而是一段一段的發(fā)送;當(dāng)需要及時(shí)發(fā)送數(shù)據(jù)時(shí),就應(yīng)該給應(yīng)用設(shè)置這個(gè)屬性,這樣發(fā)送一小塊數(shù)據(jù)信息時(shí)就不能立即得到返回值gzip on; #開啟gzip壓縮gzip_disable "MSIE 1-6.(?!.*SV1)"

12、; #指定的客戶端禁用gzip功能。我們設(shè)置成IE6或者更低版本以使我們的方案能夠廣泛兼容。#設(shè)定請求緩沖client_header_buffer_size 1k;large_client_header_buffers 4 4k;#打開緩存的同時(shí)也指定了緩存最大數(shù)目,以及緩存的時(shí)間; 我們可以設(shè)置一個(gè)相對高的最大時(shí)間,這樣我們可以在它們不活動(dòng)超過20秒后清除掉。open_file_cache max=100000 inactive=20s; open_file_cache_valid 30s; #在open_file_cache中指定檢測正確信息的間隔時(shí)間open_file_cache_min

13、_uses 2; #定義了open_file_cache中指令參數(shù)不活動(dòng)時(shí)間期間里最小的文件數(shù)open_file_cache_errors on; #指定了當(dāng)搜索一個(gè)文件時(shí)是否緩存錯(cuò)誤信息,也包括再次給配置中添加文件。我們也包括了服務(wù)器模塊,這些是在不同文件中定義的。如果你的服務(wù)器模塊不在這些位置,你就得修改這一行來指定正確的位置。#虛擬主機(jī)的配置文件include /etc/nginx/conf.d/*.conf;include /etc/nginx/sites-enabled/*;#設(shè)定負(fù)載均衡的服務(wù)器列表upstream myCluster #采用默認(rèn)輪詢算法,后端兩個(gè)tomcat接口(

14、tomcat服務(wù)器IP及端口)server :8080 max_fails=2 fail_timeout=30s;server 50:8080 max_fails=2 fail_timeout=30s;server listen 80; #偵聽80端口server_name 20; #定義使用IP訪問#charset utf-8; ; #設(shè)定本虛擬主機(jī)的訪問日志location / root html;index index.html index.htm;proxy_pass http:/myCluster; #這里的名字

15、和上面的cluster的名字相同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_s

16、ize 4k;proxy_buffers 32 4k;proxy_busy_buffers_size 64k;#靜態(tài)對象web緩沖location * .(htm|html|xml|gif|jpg|jpeg|png|bmp|ico|rar|zip|java|jar|txt|flv|swf|txt|wma|exe|css|js)$proxy_pass http:/myCluster; #這里的名字和上面的cluster的名字相同proxy_redirect off;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_add

17、r;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; #動(dòng)態(tài)對象轉(zhuǎn)發(fā)至tomcat處理location * .(jsp|login|vc|ka|do)$ proxy_pass http:/myCluster; #這里的名字和上面的cluster的名字相同 #error_page 404 /404.html; # redirect server error pages

18、to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html root html; # proxy the PHP scripts to Apache listening on :80 # #location .php$ # proxy_pass ; # # pass the PHP scripts to FastCGI server listening on :9000 # #location .php$ #

19、root html; # fastcgi_pass :9000; # fastcgi_index index.php; # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; # include fastcgi_params; # # deny access to .htaccess files, if Apache's document root # concurs with nginx's one # #location /.ht # deny all; # # another virtu

20、al host using mix of IP-, name-, and port-based configuration # #server # listen 8000; # listen somename:8080; # server_name somename alias another.alias; # location / # root html; # index index.html index.htm; # # # HTTPS server # #server # listen 443 ssl; # server_name localhost; # ssl_certificate

21、 cert.pem; # ssl_certificate_key cert.key; # ssl_session_cache shared:SSL:1m; # ssl_session_timeout 5m; # ssl_ciphers HIGH:!aNULL:!MD5; # ssl_prefer_server_ciphers on; # location / # root html; # index index.html index.htm; # #更改之后按鍵盤左上角的Esc鍵,并輸入命令: :wq ,回車保存并退出。重啟nginx:/home/nginx/nginx-10.2/sbin/n

22、ginx -s reload為了查看nginx的最終效果,更改了服務(wù)器上Tomcat50上Tomcat的index.html頁面,再次訪問地址:,并刷新幾次頁面。改變程序目錄屬主屬性,賦權(quán)給nginx用戶# chown -hR nginx:nginx /home/nginx/nginx-10.2用戶限制更改:更改nginx文件描述符數(shù)、進(jìn)程數(shù)限制#vi /etc/security/limits.conf按鍵i進(jìn)行編輯,最底部增加如下內(nèi)容nginx soft nproc 65535nginx hard nproc 65535nginx soft nofile 65535n

23、ginx hard nofile 65535按Esc鍵之后 :wq 保存編輯用戶環(huán)境變量修改:#vi /.bash_profile按鍵i進(jìn)行編輯,增加如下內(nèi)容export LIBPATH=$LIBPATH:/usr/local/libexport PATH=$PATH:/home/nginx/sbin/export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib按Esc鍵之后 :wq 保存編輯執(zhí)行命令使環(huán)境變量生效:#source /.bash_profile切換到用戶nginx更新環(huán)境變量:#su nginx$vi /.bash_profile

24、按鍵i進(jìn)行編輯,增加如下內(nèi)容export NGINX_HOME=/home/nginxexport LANG=zh_CNexport LIBPATH=$LIBPATH:/usr/local/libexport PATH=$PATH:/home/nginx/sbin/export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/libexport PS1=whoami''hostname':$PWD>'按Esc鍵之后 :wq 保存編輯執(zhí)行命令使環(huán)境變量生效:$source /.bash_profile用root用戶將n

25、ginx執(zhí)行權(quán)限賦給nginx#su - root#cd /home/nginx/nginx-10.2/sbin #chown root nginx #chmod u+s nginx七、 調(diào)度算法參考Nginx的upstream指令用于指定proxy_pass和fastcgi_pass所使用的后端服務(wù)器,即nginx的反向代理功能,因此可以將兩者結(jié)合起來使用以達(dá)到負(fù)載均衡的目的,而Nginx也支持多種調(diào)度算法:1、輪詢(默認(rèn))每個(gè)請求按時(shí)間順序逐一分配到不同的后端服務(wù)器,如果后端服務(wù)器down掉,則會(huì)跳過該服務(wù)器分配至下一個(gè)監(jiān)控的服務(wù)器。并且它無需記錄當(dāng)前所有連接的狀態(tài),所以它是一種無狀態(tài)調(diào)度

26、。2、weight指定在輪詢的基礎(chǔ)上加上權(quán)重,weight和訪問比率成正比,即用于表明后端服務(wù)器的性能好壞,若后端服務(wù)器性能較好則可將大部分請求分配給它,已實(shí)現(xiàn)其力所能及。例如:我后端服務(wù)器48配置:E5520*2 CPU,8G內(nèi)存后端服務(wù)器48配置:Xeon(TM)2.80GHz * 2,4G內(nèi)存我希望在有30個(gè)請求到達(dá)前端時(shí),其中20個(gè)請求交給48處理,剩余10個(gè)請求交給49處理,就可做如下配置upstream web_poll server 48 weight=10;server 172.23

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論