nginx在linux配置
⑴ linux下如何配置nginx伺服器
網路nginx,就有很多配置安裝技巧了。問題的涉及范圍太廣了,不好回答。
僅作參考:
#運行用戶
usernobody;
#啟動進程,通常設置成和cpu的數量相等
worker_processes1;
#全局錯誤日誌及PID文件
#error_loglogs/error.log;
#error_loglogs/error.lognotice;
#error_loglogs/error.loginfo;
#pidlogs/nginx.pid;
#工作模式及連接數上限
events{
#epoll是多路復用IO(I/OMultiplexing)中的一種方式,
#僅用於linux2.6以上內核,可以大大提高nginx的性能
useepoll;
#單個後台workerprocess進程的最大並發鏈接數
worker_connections1024;
#並發總數是worker_processes和worker_connections的乘積
#即max_clients=worker_processes*worker_connections
#在設置了反向代理的情況下,max_clients=worker_processes*worker_connections/4為什麼
#為什麼上面反向代理要除以4,應該說是一個經驗值
#根據以上條件,正常情況下的NginxServer可以應付的最大連接數為:4*8000=32000
#worker_connections值的設置跟物理內存大小有關
#因為並發受IO約束,max_clients的值須小於系統可以打開的最大文件數
#而系統可以打開的最大文件數和內存大小成正比,一般1GB內存的機器上可以打開的文件數大約是10萬左右
#我們來看看360M內存的VPS可以打開的文件句柄數是多少:
#$cat/proc/sys/fs/file-max
#輸出34336
#32000<34336,即並發連接總數小於系統可以打開的文件句柄總數,這樣就在操作系統可以承受的范圍之內
#所以,worker_connections的值需根據worker_processes進程數目和系統可以打開的最大文件總數進行適當地進行設置
#使得並發總數小於操作系統可以打開的最大文件數目
#其實質也就是根據主機的物理CPU和內存進行配置
#當然,理論上的並發總數可能會和實際有所偏差,因為主機還有其他的工作進程需要消耗系統資源。
#ulimit-SHn65535
}
http{
#設定mime類型,類型由mime.type文件定義
includemime.types;
default_typeapplication/octet-stream;
#設定日誌格式
log_formatmain'$remote_addr-$remote_user[$time_local]"$request"'
'$status$body_bytes_sent"$http_referer"'
'"$http_user_agent""$http_x_forwarded_for"';
access_loglogs/access.logmain;
#sendfile指令指定nginx是否調用sendfile函數(zero方式)來輸出文件,
#對於普通應用,必須設為on,
#如果用來進行下載等應用磁碟IO重負載應用,可設置為off,
#以平衡磁碟與網路I/O處理速度,降低系統的uptime.
sendfileon;
#tcp_nopushon;
#連接超時時間
#keepalive_timeout0;
keepalive_timeout65;
tcp_nodelayon;
#開啟gzip壓縮
gzipon;
gzip_disable"MSIE[1-6].";
#設定請求緩沖
client_header_buffer_size128k;
large_client_header_buffers4128k;
#設定虛擬主機配置
server{
#偵聽80埠
listen80;
#定義使用www.zz04.com訪問
server_namewww.zz04.com;
#定義伺服器的默認網站根目錄位置
roothtml;
#設定本虛擬主機的訪問日誌
access_loglogs/nginx.access.logmain;
#默認請求
location/{
#定義首頁索引文件的名稱
indexindex.phpindex.htmlindex.htm;
}
#定義錯誤提示頁面
error_page500502503504/50x.html;
location=/50x.html{
}
#靜態文件,nginx自己處理
location~^/(images|javascript|js|css|flash|media|static)/{
#過期30天,靜態文件不怎麼更新,過期可以設大一點,
#如果頻繁更新,則可以設置得小一點。
expires30d;
}
#PHP腳本請求全部轉發到FastCGI處理.使用FastCGI默認配置.
location~.php${
fastcgi_pass127.0.0.1:9000;
fastcgi_indexindex.php;
fastcgi_paramSCRIPT_FILENAME$document_root$fastcgi_script_name;
includefastcgi_params;
}
#禁止訪問.htxxx文件
location~/.ht{
denyall;
}
}
}
⑵ linux系統怎麼安裝nginx
這里以CentOS6.6系統(32位)中安裝nginx的源碼包,進行講解。
1. nginx源碼包的下載
nginx官方下載地址:http://nginx.org/
選擇你要安裝的nginx版本,這里,我選擇的是 nginx-1.10.2 。
具體的下載鏈接為:http://nginx.org/download/nginx-1.10.2.tar.gz
可以在其他電腦下載好,通過ftp軟體傳給要安裝的linux電腦。也可以直接在linux電腦上使用wget命令下載。這里我們使用後一種方式。
在linux的根目錄,創建一個多級空目錄 /my_package/source,用來存放下載的源碼包。
mkdir -p /my_package/sourcecd /my_package/source12
執行下載命令:
wget http://nginx.org/download/nginx-1.10.2.tar.gz1
下載完成後,在 /my_package/source 目錄中,就有了 nginx-1.10.2.tar.gz 源碼包壓縮文件。
2. nginx的安裝與配置
2.1 准備工作
安裝nginx之前,需要先安裝pcre庫。如果你的linux系統中沒有pcre,需要先進行安裝。
這里,我們使用yum工具,在線快速安裝pcre:
yum -y install pcre
yum -y install pcre-devel12
可以通過下面的命令,找到已安裝的pcre和pcre-devel的位置:
rpm -ql pcre
rpm -ql pcre-devel或
find / -name "*pcre*"1234
2.2 nginx的安裝
配置nginx安裝的參數,比如:安裝路徑,指定依賴庫的具體位置等。
這里我們使用默認安裝配置:
tar -zxvf nginx-1.10.2.tar.gzcd nginx-1.10.2./configure123
如果這一步執行正確,在提示信息中會告知nginx將要安裝的位置、可執行文件的位置等,如下:
nginx path prefix: "/usr/local/nginx"nginx binary file: "/usr/local/nginx/sbin/nginx"nginx moles path: "/usr/local/nginx/moles"nginx configuration prefix: "/usr/local/nginx/conf"nginx configuration file: "/usr/local/nginx/conf/nginx.conf"nginx pid file: "/usr/local/nginx/logs/nginx.pid"nginx error log file: "/usr/local/nginx/logs/error.log"nginx http access log file: "/usr/local/nginx/logs/access.log"nginx http client request body temporary files: "client_body_temp"nginx http proxy temporary files: "proxy_temp"nginx http fastcgi temporary files: "fastcgi_temp"nginx http uwsgi temporary files: "uwsgi_temp"nginx http scgi temporary files: "scgi_temp"12345678910111213
如果這一步出錯了,根據錯誤提示信息解決問題後,使用 make clean 命令,清除產生的臨時文件,再來重新執行 ./configure
如果想查看具體可以配置哪些安裝參數,可以使用下面的命令查看:
./configure --help1
編譯和安裝
makemake install12
到此,nginx的源碼包就安裝完畢了。
2.3 nginx的配置
如果想修改nginx的配置文件,可使用下面的命令:
vi /usr/local/nginx/conf/nginx.conf1
3. nginx的常用命令
檢查測試nginx的配置信息是否正確
/usr/local/nginx/sbin/nginx -t1
啟動nginx
/usr/local/nginx/sbin/nginx1
啟動nginx伺服器後,可以使用下面的命令檢測nginx是否啟動成功,並查看nginx的埠、主進程號、進程名稱等信息。
netstat -tlunp1
也可以使用下面的命令檢測nginx是否啟動成功,並查看nginx的主進程和子進程的詳細信息。
ps aux | grep nginx1
ps aux 命令(a代表前台進程,x代表後台進程,u代表進程的發起者)列出的進程信息中,主要包含以下信息:USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND 。這里,簡單說明一下:
USER:表示進程的發起者,也就是說,進程是哪個用戶產生的。
PID:表示進程的id,也稱作,進程號。%CPU:表示進程佔用的CPU資源的百分比。%MEM:表示進程佔用的物理內存的百分比。
VSZ:表示進程佔用的虛擬內存的大小,單位KB。
RSS:表示進程佔用的實際物理內存的大小,單位KB。
TTY:表示進程是在哪個終端中運行的。其中tty1到tty7代表本地控制台終端,tty1到tty6是本地的字元界面終端,tty7是圖形終端。pts/0-255代表虛擬終端(即遠程登錄終端)。
STAT:表示進程的狀態。常見的狀態有:R 運行;S 睡眠;T 停止;s 包含子進程;+ 位於後台。
START:表示進程是在什麼時間啟動的。
TIME:表示進程佔用CPU的運算時間,值越大,越耗費資源。
COMMAND:表示產生該進程的命令(通過它可以識別正在運行的進程名)。1234567891011
成功啟動nginx後,就可以在本地電腦或其他電腦中訪問你的nginx伺服器中的網站了。
本地電腦(即nginx所在的電腦)的訪問方式:curl 127.0.0.1
其他電腦(區域網內)的訪問方式:打開瀏覽器,輸入nginx伺服器的區域網IP即可。12
為了更方便的使用 /usr/local/nginx/sbin 中的命令,
我們將其加入linux系統的環境變數,即修改文件 /etc/profile,在最後加入下面的代碼:
export PATH="/usr/local/nginx/sbin:$PATH"1
保存退出後,執行命令:source /etc/profile 可使該配置文件立即生效。
關閉nginx
nginx -s stop 快速關閉nginx
nginx -s quit 平滑關閉nginx
kill -s QUIT 11247 通過linux的kill命令殺死nginx進程,11247為nginx的主進程號123
重新載入nginx的配置文件
nginx -s reload 修改了nginx的配置文件後,可以使用該命令讓新的配置立即生效,而不用重啟整個nginx伺服器
希望我的方法能夠幫助到你
⑶ 如何在linux下搭建nginx伺服器
1、下載後解壓nginx
tar -zxvf nginx-1.4.7.tar.gz
2、安裝gcc等依賴包
yum -y install gcc pcre-devel openssl openssl-devel
3、開始安裝nginx
cd進入nginx-1.4.7目錄內
./configure 編譯
make&&make install 這一步需要先cd出來嗎?在裡面會安裝失敗嗎?我忘了 = =
4、此時就已經安裝完成,默認安裝在了/usr/local/nginx/sbin/nginx
5、啟動
命令行輸入/usr/local/nginx/sbin/nginx,沒反應
輸入ps -ef | grep nginx查看nginx進程
6、測試
命令行輸入 curl http://127.0.0.1
會出現welcome to nginx之類的就說明對了!
7、加入到環境變數
vim /etc/profile
尾行添加
PATH=$PATH:/usr/local/nginx/sbin
export PATH
保存關閉後運行 source /etc/profile 即會加入環境變數
8、常用命令
[root@ usr]# nginx -s stop停止nginx
[root@ usr]# nginx 運行nginx
[root@ usr]# nginx -s reload 重啟nginx
[root@ usr]# nginx -t 測試nginx
9、防火牆允許外網訪問
vim /etc/sysconfig/iptables
添加過濾規則
-A -INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
好像是保存後即時生效把?
service iptables stop
service iptables start
重啟服務後還是會生效,親測
10、修改網站默認根目錄路徑
網站默認根目錄放在/usr/local/nginx/html
命令行輸入 vim /usr/local/nginx/conf/nginx.conf
找到改為
server {
listen 80;
server_name localhost;
root /var/www/html/default;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
# root html;
index index.html index.htm;
}
注釋掉下面的,在上面添加自己想要的根目錄,重啟nginx才能生效。
⑷ linux 版怎麼配置nginx
配置Nginx服務
Nginx是一款相當優秀的用於部署動態網站的服務程序,Nginx最初是為俄羅斯門戶站點而設計的網站服務軟體,作為一款輕量級的網站服務軟體,因其穩定性和豐富的功能而深受信賴,但最最最被認可的是低系統資源、佔用內存少且並發能力強,目前國內如新浪、網易、騰訊等門戶站均在使用,市場佔有份額一直保持在15-16%左右(2015年最新數據)。
Nginx程序的穩定性來自於它採用了分階段的資源分配技術,使得CPU與內存佔用率會非常低,所以使用Nginx程序部署動態網站環境不僅十分的穩定、高效,而且消耗更少的系統資源,豐富的模塊功能也幾乎與Apache程序數量相同,現在已經完全的支持了proxy、rewrite、mod_fcgi、ssl、vhosts等常用模塊。而且還支持了熱部署技術,即能夠可以7*24不間斷提供服務,即便運行數月也無須重啟,而且還可以在不暫停服務的情況下直接對Nginx服務程序進行升級。
坦白來講,雖然Nginx程序的代碼質量非常高,代碼很規范,技術成熟,模塊擴展也很容易,但Nginx依然存在不少問題,比如Nginx是由俄羅斯人創建的,所以在資料文檔方面還並不完善,中文教材的質量更是魚龍混雜,但Nginx近年來增長勢頭迅猛,預測未來應該能夠在輕量級HTTP伺服器市場有不錯的未來。
安裝PCRE(Perl兼容的正則表達式庫,解壓與編譯過程已省略):
[root@linuxprobe ~]# cd /usr/local/src
[root@linuxprobe src]# mkdir /usr/local/pcre
[root@linuxprobe src]# tar xzvf pcre-8.35.tar.gz
[root@linuxprobe src]# cd pcre-8.35
[root@linuxprobe pcre-8.35]# ./configure --prefix=/usr/local/pcre
[root@linuxprobe pcre-8.35]# make
[root@linuxprobe pcre-8.35]# make install
安裝openssl服務程序(解壓與編譯過程已省略):
[root@linuxprobe pcre-8.35]# cd /usr/local/src
[root@linuxprobe src]# mkdir /usr/local/openssl
[root@linuxprobe src]# tar xzvf openssl-1.0.1h.tar.gz
[root@linuxprobe src]# cd openssl-1.0.1h
[root@linuxprobe openssl-1.0.1h]# ./config --prefix=/usr/local/openssl
[root@linuxprobe openssl-1.0.1h]# make
[root@linuxprobe openssl-1.0.1h]# make install
把openssl服務程序命令目錄添加到環境變數中(永久生效):
[root@linuxprobe pcre-8.35]# vim /etc/profile
//將配置文件最下面的參數追加參數為:
export PATH=$PATH:/usr/local/mysql/bin:/usr/local/openssl/bin
[root@linuxprobe pcre-8.35]# source /etc/profile
安裝zlib數據壓縮函數庫(解壓與編譯過程已省略):
[root@linuxprobe pcre-8.35]# cd /usr/local/src
[root@linuxprobe src]# mkdir /usr/local/zlib
[root@linuxprobe src]# tar xzvf zlib-1.2.8.tar.gz
[root@linuxprobe src]# cd zlib-1.2.8
[root@linuxprobe zlib-1.2.8]# ./configure --prefix=/usr/local/zlib
[root@linuxprobe zlib-1.2.8]# make
[root@linuxprobe zlib-1.2.8]# make install
創建用於執行nginx服務的用戶:
[root@linuxprobe zlib-1.2.8]# cd ..
[root@linuxprobe src]# useradd www -s /sbin/nologin
安裝nginx服務程序(openssl,zlib,pcre要寫成源碼解壓路徑!!!):
[root@linuxprobe src]# tar xzvf nginx-1.6.0.tar.gz
[root@linuxprobe src]# cd nginx-1.6.0/
[root@linuxprobe nginx-1.6.0]# ./configure --prefix=/usr/local/nginx --without-http_memcached_mole --user=www --group=www --with-http_stub_status_mole --with-http_ssl_mole --with-http_gzip_static_mole --with-openssl=/usr/local/src/openssl-1.0.1h --with-zlib=/usr/local/src/zlib-1.2.8 --with-pcre=/usr/local/src/pcre-8.35
[root@linuxprobe nginx-1.6.0]# make
[root@linuxprobe nginx-1.6.0]# make install
創建nginx程序腳本(將下面的參數直接復制進去即可):
[root@linuxprobe nginx-1.6.0]# vim /etc/rc.d/init.d/nginx
#!/bin/bash
# nginx - this script starts and stops the nginx daemon
# chkconfig: - 85 15
# description: Nginx is an HTTP(S) server, HTTP(S) reverse \
# proxy and IMAP/POP3 proxy server
# processname: nginx
# config: /etc/nginx/nginx.conf
# config: /usr/local/nginx/conf/nginx.conf
# pidfile: /usr/local/nginx/logs/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
nginx="/usr/local/nginx/sbin/nginx"
prog=$(basename $nginx)
NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf"
[ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx
lockfile=/var/lock/subsys/nginx
make_dirs() {
# make required directories
user=`$nginx -V 2>&1 | grep "configure arguments:" | sed 's/[^*]*--user=\([^ ]*\).*/\1/g' -`
if [ -z "`grep $user /etc/passwd`" ]; then
useradd -M -s /bin/nologin $user
fi
options=`$nginx -V 2>&1 | grep 'configure arguments:'`
for opt in $options; do
if [ `echo $opt | grep '.*-temp-path'` ]; then
value=`echo $opt | cut -d "=" -f 2`
if [ ! -d "$value" ]; then
# echo "creating" $value
mkdir -p $value && chown -R $user $value
fi
fi
done
}
start() {
[ -x $nginx ] || exit 5
[ -f $NGINX_CONF_FILE ] || exit 6
make_dirs
echo -n $"Starting $prog: "
daemon $nginx -c $NGINX_CONF_FILE
retval=$?
echo
[ $retval -eq 0 ] && touch $lockfile
return $retval
}
stop() {
echo -n $"Stopping $prog: "
killproc $prog -QUIT
retval=$?
echo
[ $retval -eq 0 ] && rm -f $lockfile
return $retval
}
restart() {
#configtest || return $?
stop
sleep 1
start
}
reload() {
#configtest || return $?
echo -n $"Reloading $prog: "
killproc $nginx -HUP
RETVAL=$?
echo
}
force_reload() {
restart
}
configtest() {
$nginx -t -c $NGINX_CONF_FILE
}
rh_status() {
status $prog
}
rh_status_q() {
rh_status >/dev/null 2>&1
}
case "$1" in
start)
rh_status_q && exit 0
$1
;;
stop)
rh_status_q || exit 0
$1
;;
restart|configtest)
$1
;;
reload)
rh_status_q || exit 7
$1
;;
force-reload)
force_reload
;;
status)
rh_status
;;
condrestart|try-restart)
rh_status_q || exit 0
;;
*)
echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"
exit 2
esac
[root@linuxprobe nginx-1.6.0]# chmod 755 /etc/rc.d/init.d/nginx
重啟nginx服務程序並添加到開機啟動項:
[root@linuxprobe nginx-1.6.0]# /etc/rc.d/init.d/nginx restart
Restarting nginx (via systemctl): [ OK ]
[root@linuxprobe nginx-1.6.0]# chkconfig nginx on
此時可以通過訪問IP來判斷nginx服務是否順利運行
LNMP(即Linux+Nginx+MYSQL+PHP)是目前非常熱門的動態網站部署架構,如果你是在搭建這種部署的話可以看下http://www.linuxprobe.com/chapter-20.html
⑸ 如何在linux下搭建nginx伺服器
1.先從nginx官網下載最新的版本 http://nginx.org/download/nginx-1.7.8.tar.gz 2.解壓nginx-1.7.8.tar.gz,然後執行下面操作即可 ./configure --prefix=/usr/local/nginxmakemake install
⑹ nginx怎麼安裝在linux中
一、下載→編譯→安裝→啟動
1.下載nginx最新版
到官方網站上下載最新的tar.gz包
直接下載nginx的url為http://nginx.org/download/nginx-{version}.tar.gz,其中{version}為nginx的版本號
命令:[root@localhost ~]# wget http://nginx.org/download/nginx-1.9.14.tar.gz
2.解壓文件
[root@localhost ~]# tar -zvxf nginx-1.9.14.tar.gz
3.進入nginx解壓目錄
[root@localhost ~]# cd nginx-1.9.14
4.使用參數進行編譯,後面會給出編譯參數的具體解釋
[root@localhost nginx-1.9.14]# ./configure –prefix=/etc/nginx –sbin-path=/usr/sbin/nginx –conf-path=/etc/nginx/nginx.conf –error-log-path=/var/log/nginx/error.log –http-log-path=/var/log/nginx/access.log –pid-path=/var/run/nginx.pid –lock-path=/var/run/nginx.lock –http-client-body-temp-path=/var/cache/nginx/client_temp –http-proxy-temp-path=/var/cache/nginx/proxy_temp –http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp –http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp –http-scgi-temp-path=/var/cache/nginx/scgi_temp –user=nginx –group=nginx –with-http_ssl_mole –with-http_realip_mole –with-http_addition_mole –with-http_sub_mole –with-http_dav_mole –with-http_flv_mole –with-http_mp4_mole –with-http_gunzip_mole –with-http_gzip_static_mole –with-http_random_index_mole –with-http_secure_link_mole –with-http_stub_status_mole –with-http_auth_request_mole –with-mail –with-mail_ssl_mole –with-file-aio –with-ipv6 –with-http_v2_mole
5.執行編譯過程
[root@localhost nginx-1.9.14]# make && make install
6.配置nginx.conf
7.啟動nginx
[root@localhost nginx-1.9.14]# nginx
二、編譯參數
–prefix=path
定義保存伺服器文件的目錄。這個目錄同時將作用於nginx.conf配置文件中配置的相對路徑(但不包括源碼庫的路徑)。默認值為/usr/local/nginx。
–sbin-path=path
設置nginx可執行文件的名稱,該名稱只在安裝期間使用。默認值是prefix/sbin/nginx
–conf-path=path
設置nginx.conf配置文件的名稱。如果需要,nginx可以使用不同的配置文件啟動,你可以通過命令行參數 -c file啟動。默認文件名為prefix/conf/nginx.conf
–pid-path=path
設置nginx.pid文件的名稱,nginx.pid用於存儲主進程的進程ID。安裝後,該文件名稱可以在nginx.conf的pid指令中修改。默認為prefix/logs/nginx.pid
–error-log-path=path
設置重要的錯誤、警告以及診斷文件的名字。安裝後,可以通過nginx.conf的error_log指令修改。默認為prefix/logs/error.log
–http-log-path=path
記錄主要請求日誌的名稱,安裝後通過access_log指令修改。默認為prefix/logs/access.log
–user=name
設置工作進程的用戶名,安裝後可以通過user指令修改。默認值為nobody
–group=name
設置工作進程的用戶組,安皇後可以通過user指令修改,默認與user相同。
–with-xxx_mole
安裝xxx模塊,這些模塊可以在nginx文檔中找到。
–without-xxx_mole
不安裝xxx模塊(有些模塊是默認安裝的,如果不想安裝,可以通過這個參數屏蔽),這些模塊可以在nginx文檔中找到。