国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 網(wǎng)站 > Nginx > 正文

Nginx服務(wù)器初期基本配置指南

2024-08-30 12:27:54
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
這篇文章主要介紹了Nginx服務(wù)器初期基本配置指南,包括重定向以及基本的負(fù)載均衡配置等,需要的朋友可以參考下
 

一、準(zhǔn)備
pcre,有關(guān)正則表達(dá)式匹配;zlib,用于壓縮。這些就不細(xì)說(shuō)了,如果要安裝最簡(jiǎn)版的nginx,記得準(zhǔn)備好這兩樣?xùn)|西就好了。 
用root賬戶啟動(dòng)服務(wù)是比較危險(xiǎn)的!  前段時(shí)間,測(cè)試服務(wù)器被黑掉了,終歸到底是通過(guò)一個(gè)root啟動(dòng)的服務(wù)上傳了木馬,最后連ssh都屏蔽了,活生生成為一臺(tái)肉雞。。。 
所以,慘痛的經(jīng)驗(yàn)告訴我,一定要為服務(wù)建立對(duì)應(yīng)的組和用戶,限制訪問(wèn)權(quán)限,降低風(fēng)險(xiǎn)!  
這里為nginx建立一個(gè)www組,并建立一個(gè)不登錄的賬戶nginx: 

#追加一個(gè)www組 groupadd -f www #追加一個(gè)nginx用戶 useradd -s /sbin/nologin -g www nginx 


建立一個(gè)目錄用于存放nginx日志文件,并賦予相應(yīng)權(quán)限: 

#建立nginx日志目錄 mkdir /var/log/nginx #賦予訪問(wèn)權(quán)限 chown nginx.www /var/log/nginx 


二、編譯安裝 
我把pcre、zlib、nginx的壓縮包都放在了/opt/software路徑下,服務(wù)要裝在/opt/servers路徑下。 
先對(duì)pcre、zlib、nginx解壓,然后編譯安裝: 

./configure --prefix=/opt/servers/nginx / --user=nginx / --group=www / --pid-path=/var/run/nginx.pid / --error-log-path=/var/log/nginx/error.log / --http-log-path=/var/log/nginx/access.log / --with-pcre=/opt/software/pcre-8.10 / --with-zlib=/opt/software/zlib-1.2.5 / --with-http_stub_status_module / --with-http_realip_module / --with-http_gzip_static_module / --without-http_fastcgi_module / --without-http_memcached_module / --without-http_map_module / --without-http_geo_module / --without-http_autoindex_module / --with-poll_module && make && make install 


三、系統(tǒng)配置 
我希望nginx可以作為一個(gè)服務(wù),通過(guò)service命令啟動(dòng)或停止。 
這樣做的好處是,不論我用什么用戶調(diào)用這個(gè)service命令,都不會(huì)因?yàn)槭褂缅e(cuò)誤的賬戶帶來(lái)安全問(wèn)題。 
建立一個(gè)系統(tǒng)文件: 

vim /etc/init.d/nginx 


前人栽樹(shù),后人乘涼。已經(jīng)有老鳥(niǎo)做好了啟動(dòng)配置文件: 

#!/bin/bash # v.0.0.1 # create by jackbillow at 2007.10.15 # nginx - This shell script takes care of starting and stopping nginx. # # chkconfig: - 60 50 # description: nginx [engine x] is light http web/proxy server # that answers incoming ftp service requests. # processname: nginx # config: /etc/nginx.conf nginx_path="/opt/servers/nginx" nginx_pid="/var/run/nginx.pid"  # Source function library. . /etc/rc.d/init.d/functions  # Source networking configuration. . /etc/sysconfig/network  # Check that networking is up. [ ${NETWORKING} = "no" ] && exit 0 [ -x $nginx_path/sbin/nginx ] || exit 0 RETVAL=0 prog="nginx" start() { # Start daemons. if [ -e $nginx_pid -a ! -z $nginx_pid ];then   echo "nginx already running...."   exit 1 fi if [ -e $nginx_path/conf/nginx.conf ];then   echo -n $"Starting $prog: "   $nginx_path/sbin/nginx -c $nginx_path/conf/nginx.conf &   RETVAL=$?   [ $RETVAL -eq 0 ] && {     touch /var/lock/subsys/$prog     success $"$prog"   }   echo else   RETVAL=1 fi   return $RETVAL } # Stop daemons. stop() {   echo -n $"Stopping $prog: "   killproc -d 10 $nigx_path/sbin/nginx   RETVAL=$?   echo   [ $RETVAL = 0 ] && rm -f $nginx_pid /var/lock/subsys/$prog } # See how we were called. case "$1" in start)   start   ;; stop)   stop   ;; restart)   stop   start   ;; status)   status $prog   RETVAL=$?   ;; *)   echo $"Usage: $0 {start|stop|restart|status}"   exit 1 esac exit $RETVAL 


注意,這里的路徑: 
引用

nginx_path="/opt/servers/nginx" nginx_pid="/var/run/nginx.pid" 


如果你的nginx安裝路徑在其它位置,請(qǐng)對(duì)應(yīng)修改! 
然后賦予這個(gè)文件執(zhí)行權(quán)限: 

chmod +x /etc/init.d/nginx 


追加為系統(tǒng)服務(wù): 

chkconfig --add nginx chkconfig nginx on 


現(xiàn)在就可以使用,如下命令控制nginx服務(wù)了! 
引用

#啟動(dòng)nginx service nginx start #停止nginx service nginx stop #重啟nginx service nginx restart #查看nginx狀態(tài) service nginx status 


四、基本配置 
完成上述工作后,nginx還不能急于投入使用,需要做一些基本配置與優(yōu)化工作。 
修改nginx配置文件: 

vim /opt/servers/nginx/conf/nginx.conf 

微調(diào) 
引用

#使用的用戶和組,這里我們?yōu)閚ginx服務(wù)新建了nginx賬戶和www工作組 user nginx www; #制定的工作衍生進(jìn)程數(shù)(2倍于CPU內(nèi)核數(shù)) worker_processes 4; #錯(cuò)誤日志存放路徑,日志級(jí)別由低到高[debug | info | notice | warn | error | crit] error_log /var/log/nginx/error.log crit; #指定文件描述符數(shù)量 與ulimit -n數(shù)值保持一致 work_rlimit_nofile 65535; events { #使用的網(wǎng)絡(luò)I/O模型,Linux用epoll模型,Unix用kqueue模型 use epoll; #允許的連接數(shù) worker_connections 51200; } http{  include  mime.types;  default_type application/octet-stream;  #追加 '"$sent_http_cache_control" "$sent_http_pl" "$request_time"'獲取請(qǐng)求細(xì)節(jié)信息  log_format main '$remote_addr - $remote_user [$time_local] "$request" '       '$status $body_bytes_sent "$http_referer" '       '"$http_user_agent" "$http_x_forwarded_for"'       '"$sent_http_cache_control""$sent_http_pl" "$request_time"';  access_log   /var/log/nginx/access.log main;  ...  server{   ...   location / {    root html;    index index.html index.htm index.jsp index.do;    #在header中傳遞請(qǐng)求放host、ip等信息    proxy_set_header Host $host;    proxy_set_header X-Real-IP $remote_addr;    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;    proxy_pass_header Content-Type;    proxy_pass_header Content-Disposition;    proxy_pass_header Content-Length;    ...   }  } } 


五、虛擬目錄 
nginx配置虛擬目錄很簡(jiǎn)單,主要是運(yùn)用root、alias兩個(gè)指令。 
以訪問(wèn)圖片服務(wù)為例: 
root,用于相對(duì)路徑 
引用

  location /image/ {     root /data;   } 

當(dāng)我們?cè)L問(wèn)“/image/”路徑時(shí),實(shí)際上訪問(wèn)的是“/data/image/”,注意“/data”后面不要有“/” 
alias,用于絕對(duì)路徑 
引用

  location /image/ {     alias /data/img/;   } 

當(dāng)我們?cè)L問(wèn)“/image/”路徑時(shí),實(shí)際上訪問(wèn)的是“/data/img/”,注意“/data/img/”以“/”結(jié)尾。

六、重定向 
有時(shí)候鏈接不加考慮就放出去了,突然哪天需要調(diào)整,又不能及時(shí)撤回已放出的鏈接地址。只好自己修改nginx配置。 
譬如,放出去的鏈接:/activity.do?m=v 想讓它指到/路徑上: 
引用

rewrite ^/activity(.*)$ / last;


想要把請(qǐng)求來(lái)的參數(shù)也帶上: 
引用

rewrite ^/activity(.*)$ /$1 last;


$1指得是第一個(gè)參數(shù),以此類推。


六、監(jiān)控 
引用

  location /status {    stub_status on;    access_log off;    allow 10.10.0.0/16;    allow 10.1.0.0/16;    allow 10.11.0.0/16;    deny all;   }


引用

Active connections: 14 server accepts handled requests 62 62 302 Reading: 0 Writing: 3 Waiting: 11 


七、日志分割 

#!/bin/bash # THis script run at 00:00 # author dongliang at 2012-09-07 # Nginx Log Path logs_path="/var/log/nginx/" # Nginx PID Path nginx_pid="/var/run/nginx.pid"  mkdir -p ${logs_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")/  mv ${logs_path}access.log ${logs_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")/access_$(date -d "yesterday" +"%Y%m% d").log  mv ${logs_path}error.log ${logs_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")/error_$(date -d "yesterday" +"%Y%m%d" ).log  kill -USR1 `cat $nginx_pid` 


賦予執(zhí)行權(quán)限 

chmod +x nginx_log.sh 

凌晨執(zhí)行 

crontab -e 0 0 * * * /opt/script/nginx_log.sh 

八、Nginx負(fù)載均衡 
在http{...}中配置一個(gè)upstream{...},參考如下: 
引用

 upstream tomcat {   server 10.11.155.26:8080;   server 10.11.155.41:8080;  } 

接著修改location節(jié)點(diǎn),配置代理: 
引用

location / {   ...    proxy_pass http://tomcat;   ... }

當(dāng)訪問(wèn)根路徑時(shí),會(huì)輪播路由到兩臺(tái)服務(wù)器上,至于后端服務(wù)器是tomcat還是jetty之類的,都無(wú)所謂,照葫蘆畫(huà)瓢就是了。 
當(dāng)然,有的機(jī)器性能好,或者負(fù)載低,可以承擔(dān)高負(fù)荷訪問(wèn)量,可以通過(guò)權(quán)重(weight),提升訪問(wèn)頻率。數(shù)值越高,被分配到的請(qǐng)求數(shù)越多。 
server指令參數(shù)如下: 
weight——權(quán)重,數(shù)值越大,分得的請(qǐng)求數(shù)就越多,默認(rèn)值為1。
max_fails——對(duì)訪問(wèn)失敗的后端服務(wù)器嘗試訪問(wèn)的次數(shù)。默認(rèn)值為1,當(dāng)設(shè)置為0時(shí)將關(guān)閉檢查。
fail_timeout——失效超時(shí)時(shí)間,當(dāng)多次訪問(wèn)失敗后,對(duì)該節(jié)點(diǎn)暫停訪問(wèn)。
down——標(biāo)記服務(wù)器為永久離線狀態(tài),用于ip_hash指令。
backup——僅當(dāng)非backup服務(wù)器全部宕機(jī)或繁忙時(shí)啟用。

例如,可以這樣配置: 
引用

 upstream tomcat {   server 10.11.155.26:8080 weight=5;   server 10.11.155.41:8080 weight=10;  } 

后者分得的請(qǐng)求數(shù)就會(huì)較高。



發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 朔州市| 沈丘县| 岳阳县| 朝阳市| 镇远县| 静海县| 普洱| 大理市| 顺昌县| 伽师县| 青田县| 错那县| 崇礼县| 同江市| 安阳县| 瓮安县| 长丰县| 天祝| 神农架林区| 修水县| 南木林县| 固原市| 花莲市| 太康县| 沅江市| 龙江县| 鱼台县| 同江市| 昌邑市| 新和县| 安新县| 谷城县| 思南县| 普安县| 武平县| 乌鲁木齐市| 孝昌县| 屏边| 黔西县| 福鼎市| 永顺县|