1. 如何在遠程linux伺服器上搭建Nginx
1.將nginx的壓縮包nginx-1.8.0.tar.gz上傳到Linux伺服器
2.由於nginx是C語言開發的並且我們這里是通過編譯nginx的源碼來安裝nginx,所以Linux上要安裝C語言的編譯環境gcc,
如果已經安裝此步可以省略,否則執行命令:
3.nginx的http模塊使用pcre來解析正則表達式,所以需要在linux上安裝pcre庫。
yum install -y pcre pcre-devel
4.zlib庫提供了很多種壓縮和解壓縮的方式,nginx使用zlib對http包的內容進行gzip,所以需要在linux上安裝zlib庫。
yum install -y zlib zlib-devel
5.nginx不僅支持http協議,還支持https(即在ssl協議上傳輸http),所以需要在linux安裝openssl庫。
yum install -y openssl openssl-devel
6.在Linux上創建nginx的臨時目錄,注意我這里是在Linux文件系統下的
/var下創建文件夾temp在temp下創建nginx。即:/var/temp/nginx
7.執行命令:
./configure --prefix=/usr/local/nginx --pid-path=/var/run/nginx/nginx.pid --lock-path=/var/lock/nginx.lock --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --with-http_gzip_static_mole --http-client-body-temp-path=/var/temp/nginx/client --http-proxy-temp-path=/var/temp/nginx/proxy --http-fastcgi-temp-path=/var/temp/nginx/fastcgi --http-uwsgi-temp-path=/var/temp/nginx/uwsgi --http-scgi-temp-path=/var/temp/nginx/scgi
8.編譯源碼,安裝nginx:
makemake install
9.啟動nginx:
cd /usr/local/nginx/sbin/./nginx -c /usr/local/nginx/conf/nginx.conf
在瀏覽器中訪問: http://localhost 出現下面界面表示安裝成功:
我們此時也可以查看到nginx進程的運行情況:
ps aux|grep nginx
10.nginx伺服器的停止方式:
方式一:先查出nginx進程id再使用kill命令強制殺掉進程。
cd /usr/local/nginx/sbin./nginx -s stop方式二(推薦):待nginx進程處理任務完畢進行停止。
cd /usr/local/nginx/sbin./nginx -s quit
以上就是本文的全部內容,希望對大家的學習有所幫助
2. linux平台下,nginx源碼包如何安裝需要哪些依賴 RHEL5
要看你原有的系統安裝了哪些包。
先編譯,會有錯誤提示,提示少什麼就裝什麼。
或者直接yum,系統會自動安裝依賴包,然後再卸載,自己源碼編譯nginx
3. 源碼安裝的nginx注冊到系統服務
os:ubuntu-18.0.4.1
nginx:1.19.2
一般情況下都不會直接從apt中裝nginx,都要用源碼編譯,但是編譯好的還能用絕對路徑啟動
首先 cd /lib/systemd/system ,系統服務的各種文件一般都是放在這個路徑下,
然後 vim nginx.service ,去nginx官網找到nginx.service的模板,
https://www.nginx.com/resources/wiki/start/topics/examples/systemd/ ,
然後把官網文件內容復制到vim中,根據自己的安裝路徑和下方說明進行更改,只要會簡單的nginx
命令基本都沒問題
以我的為例:
如果需要用其他路徑的 nginx.conf 可以在啟動准備和啟動的後面加-c參數
編輯好這個文件後需要執行一下 systemctl daemon-reload 命令才會生效,然後就可以
用 service nginx start 命令測試了,如果報錯就用 systemctl status nginx
來查看,一般都是文件格式問題或者配置文件,按照報錯信息修改即可
4. 如何用Nginx源碼製作RPM包的詳解
1、查看操作系統版本和內核版本
2、創建相關目錄
/usr/src/redhat/SOURCES //存放源代碼,補丁,圖標等文件。
/usr/src/redhat/SPECS //存放用於管理rpm製作進程的spec文件。
/usr/src/redhat/BUILD //解壓後的文件存放在這里。
/usr/src/redhat/RPMS //存放由rpmbuild製作好的二進制包。
/usr/src/redhat/SRPMS //存放由rpmbuild製作好的源碼包。
3、下載Nginx源碼包
下載源碼包到SOURCES目錄,不需要解壓。
4、手工創建SPEC文件,由於spec文件是由spec語言編寫的,請注意spec語言的語法。
SPEC文件內容如下:
#############################
# Example Spec File For Nginx
# Edited By LaoXu 7.Mar.2013
#############################
Summary: High Performance Web Server
Name: nginx
Version: 1.3.9
Release: el5
License: GPL
Group: Applications/Server
Source:
URL:
Distribution: Linux
Packager: XuYuanzhen <absolutey.>
%description
nginx [engine x] is a HTTP and reverse proxy server, as well as a mail proxy server
%prep
rm -rf $RPM_BUILD_DIR/nginx-1.3.9
zcat $RPM_SOURCE_DIR/nginx-1.3.9.tar.gz | tar -xvf -
%build
cd nginx-1.3.9
./configure --prefix=/usr/local/nginx
make
%install
cd nginx-1.3.9
make install
%preun
if [ -z "`ps aux | grep nginx | grep -v grep`" ];then
killall nginx >/dev/null
exit 0
fi
%files
/usr/local/nginx5、開始RPM製作
在製作RPM包之前,需要安裝必要的編譯工具,如rpmbuild,gcc等。
開始編譯生成rpm包
cd /usr/src/RedHat/SPECS/
rpmbuild -bb nginx.spec //-ba 參數表示同時生成二進制包和源碼包 -bb 參數表示只生成二進制包
經過一段時間的編譯後最終生成了rpm包文件
如圖所示,在/usr/src/redhat/RPMS/x86_64/該目錄下生成了我們需要的rpm包,由於我編譯的操作系統平台是64bit的,所以生成的rpm包也是64位的文件。在指定的目錄下生成RPM,通常用%_topdir變數,需要在宏配置文件中指定,配置文件稱為macrofiles,它們通常為 /usr/lib/rpm/macros:/usr/lib/rpm/macros.*:~/.rpmmacros,這個在rhel 5.8中可以通過rpmbuild --showrc | grep macrofiles 查看,我們這里在.rpmmacros文件中定義了生產rpm包的路徑為/usr/src/redhat
最後安裝生成的rpm包
至此Nginx源碼製作並安裝成功!
5. 怎樣在CentOS下安裝Nginx
具體步驟如下:
下載最新版本Nginx;
解壓下載下好的源碼包;
tar zxvfnginx-0.8.53.tar.gz
進入解壓出的源碼文件夾;
cdnginx-0.8.53
配置nginx;
編譯並安裝 nginx
make && make install
6. 想安裝nginx,應該怎麼做
linux想要安裝nginx可以下載源碼包進行提取文件並進行安裝和配置,配置完畢後可以進行運行啟動。
也可以通過yum命令yum install nginx去安裝,前提是可以上網有epel的yum源。
7. 怎樣在centos上安裝和搭建nginx
首先下載nginx的源碼包。
##編譯nginx
tarxvfnginx-1.8.0.tar.gz
cdnginx-1.8.0
./configure--prefix=/usr/local/nginx--with-http_ssl_mole--with-http_stub_status_mole--with-http_gzip_static_mole--with-google_perftools_mole
make
makeinstall
#配置nginx
#修改nginx.conf配置,以滿足自己的業務需求
8. nginx編譯安裝慢
nginx編譯安裝慢優化步驟:
1、利用包管理器直接安裝,也是新手最簡單的安裝方式。
2、源碼包編譯安裝。源碼包編譯安裝的有點就是靈活,擴展方便,性能要比直接包管理器安裝要好,對於很多人說的包管理器安裝無法安裝最新版、無法升級到最新版等問題,不存在。
9. 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伺服器
希望我的方法能夠幫助到你
10. 怎麼編譯安裝nginx1.8.1
要編譯安裝Nginx,首先我們要安裝依賴包 pcre-devel 和 zlib-devel:
# yum install pcre-devel zlib-devel -y
程序默認是使用 nobody 身份運行的,我們建議使用 nginx 用戶來運行,首先添加Nginx組和用戶,不創建家目錄,不允許登陸系統
# groupadd nginx
# useradd -M -s /sbin/nologin -g nginx nginx
准備工作完成後就是下載編譯安裝Nginx了,可以從我提供的網盤下載,也可以去Nginx的官網下載。
首先解壓源碼包:
# tar xf nginx-1.4.4.tar.gz
然後 cd 到解壓後的目錄就可以執行 ./configure 了
# cd nginx-1.4.4
指定安裝目錄和運行時用的屬主和屬組,並啟用狀態監控模塊等
# ./configure \
--prefix=/usr/local/nginx \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--user=nginx \
--group=nginx \
--with-http_ssl_mole \
--with-http_flv_mole \
--with-http_stub_status_mole \
--with-http_gzip_static_mole \
--http-client-body-temp-path=/var/tmp/nginx/client/ \
--http-proxy-temp-path=/var/tmp/nginx/proxy/ \
--http-fastcgi-temp-path=/var/tmp/nginx/fcgi/ \
--http-uwsgi-temp-path=/var/tmp/nginx/uwsgi \
--http-scgi-temp-path=/var/tmp/nginx/scgi \
--with-pcre
等配置完成後就可以 make && make install 了
# make && make install
# mkdir /var/tmp/nginx/client/ -pv
等編譯安裝完成後在 /usr/local 下就會出現 Nginx 這個目錄了,進入這個目錄後發現目錄非常簡單。它的配置文件存放在 conf 目錄中,網頁文件存放在 html 中,日誌文件存放在 logs 中,sbin 目錄下只有一個可執行程序 "nginx"
接下來我們簡單的為它提供一個服務腳本吧!
# vim /etc/init.d/nginx
新建文件/etc/rc.d/init.d/nginx,內容如下:
#!/bin/bash
# chkconfig:235 85 15
# description: Nginx is an HTTP server
. /etc/rc.d/init.d/functions
start() {
echo "Start..."
/usr/local/nginx/sbin/nginx &> /dev/null
if [ $? -eq 0 ];then
echo "Start successful!"
else
echo "Start failed!"
fi
}
stop() {
if killproc nginx -QUIT ;then
echo "Stopping..."
fi
}
restart() {
stop
sleep 1
start
}
reload() {
killproc nginx -HUP
echo "Reloading..."
}
configtest() {
/usr/local/nginx/sbin/nginx -t
}
case $1 in
start)
start ;;
stop)
stop ;;
restart)
restart ;;
reload)
reload ;;
configtest)
configtest ;;
*)
echo "Usage: nginx {start|stop|restart|reload|configtest}"
;;
esac
之後給這個文件可執行許可權:
# chmod +x /etc/init.d/nginx
好了,現在可以使用 start,stop 這些參數控制Nginx服務了
由於腳本是我自己寫的,還有許多不盡人意的地方,歡迎大家修改和完善!
現在我們就試試啟動服務看看效果吧:
# service nginx start
記得關閉 SElinux 和 iptables 防火牆哦,
# service iptables stop
# setenforce 0
接下來就在瀏覽器中訪問你服務的IP看看效果吧!是不是出項了歡迎的字樣呢
接下來就研究下 Nginx 的配置文件吧!
# vim /usr/local/nginx/conf/nginx.conf
各項參數的意義如下:
worker_processes 1; 工作進程數量
error_log logs/error.log; 日誌文件位置
pid logs/nginx.pid; pid文件位置
worker_connections 1024; 沒進程的連接數
listen 80; 監聽埠
server_name localhost; 主機名
root html; 網站根目錄
index index.html index.htm; 網站索引頁
error_page 500 502 503 504 /50x.html; 訪問錯誤頁面
剩下的其他被注釋掉的代碼塊:
location ~ \.php$ { . . . . . . } 對PHP的支持,需要安裝PHP
server { . . . . . . } 添加server代碼塊能添加虛擬主機
剩下還有監聽443埠的超文本傳輸安全協議 HTTPS server 需要在編譯Nginx時添加ssl的支持
接下來我們試著添加一台虛擬主機吧,虛擬主機的添加可以基於埠,可以基於IP,也可以基於主機名,我們挨個來看看:
基於埠:
首先編輯配置文件,添加server代碼塊,記得要寫到http{ . . . . . . }這個大的代碼塊中。
server {
listen 8080;
server_name localhost;
location / {
root /var/www/html;
index index.html index.htm;
}
}
這樣就添加了一個監聽8080埠的服務,你也可以定義自己喜歡的埠哦。
接下來檢查下配置文件有沒有問題,如果最後一個單詞顯示successful就代表沒問題了,可以重新啟動Nginx了
# service nginx configtest
# service nginx restart
接下來就給第二個虛擬主機寫一個index吧!首先創建目錄
# mkdir -pv /var/www/html
# echo '<h1>Hi! This is 8080!</h1>' > /var/www/html/index.html
好了 接下來試著在瀏覽器中訪問訪問,記得第二個主機要加上埠訪問哦
現在試著用不同的IP建立虛擬主機吧!我們可以在一塊網卡上綁定多個IP地址的方式來實現
# ifconfig eth0:0 10.0.0.4/8
記得把IP換成你自己的哦!然後ifconfig看看是不是多出來一個網卡IP了呢
讓後繼續修改配置文件,這回要修改兩個地方,一個是原本自帶的站點的 listen 項,一個是自己添加的站點的 listen 項。
基於IP:
server {
listen 10.0.0.3:80;
server_name localhost;
location / {
root html;
index index.html index.htm;
}
}
server {
listen 10.0.0.4:80;
server_name localhost;
location / {
root /var/www/html;
index index.html index.htm;
}
}
讓他們只監聽不同的IP,用相同的埠
接下來再瀏覽器上用不同的IP來訪問試試吧,及的還得重啟Nginx,先檢查一下,出現錯誤了看看哪裡配置的不對,然後就可以重啟了。
# service nginx congiftest
# service nginx restart
如果配置給網卡的第二個IP不想要了,把它停掉就可以了
# ifconfig eth0:0 down
再 ifconfig 看看是不是沒有了呢
現在試試用不同的主機名吧!也是企業用的最多的方式。我們把兩個站點的listen項都改為80,然後修改service_name項為定義的主機名
基於主機名:
server {
listen 80;
server_name ybmq.com;
location / {
root html;
index index.html index.htm;
}
}
server {
listen 80;
server_name zhzz.com;
location / {
root /var/www/html;
index index.html index.htm;
}
}
然後重啟Nginx吧!
可是我們在瀏覽器上怎麼通過域名訪問呢?要知道我們訪問 啊,qq 啊之類的是通過DNS伺服器的,難道我們還要配置一台DNS伺服器?其實不然,我們通過修改客戶機的 hosts 文件就可以了。hosts文件是一個本地的域名解析文件,我們要解析哪些域名只要把域名和對應的IP寫到一起就可以了。在Windows XP之後的系統中,這個文件位於:
C:\Windows\System32\drivers\etc\hosts
我們用文本編輯器打開,添加兩個相同的IP對應的兩個不同的主機名就可以了。
如下圖所示
如果你打開這個文件發現已經有很多IP地址了,可以直接在最後加入這兩行,也可以直接清空這個文件,不會有什麼問題的。這個文件的用途還可以屏蔽一些網站哦,只需要把網址對於的IP改為 127.0.0.1 也就是本地回環地址,瀏覽器查詢域名對應的IP時時先通過查詢這個文件的,如果查詢到了,不管對錯都不會訪問DNS伺服器了,所以我們給它一個錯誤的地址,那它一輩子也打不開被屏蔽掉的網站了。
好了 接下來就在瀏覽器中試試用用域名訪問你的兩個站點吧。
如果大家還用IP訪問會是什麼情況呢?我不說了,大家還是自己測試吧 哈哈o(^▽^)o