nginx學習筆記1

nginx在官方網站提供了軟件下載,官網地址:http://nginx.org/en/download.html,目前Nginx發佈3種類型的版本:html

1.Mainline version:開發版本nginx

2.Stable version:穩定版本c++

3.Legacy versions:早期版本正則表達式

 

在Windows系統上經過virtualbox虛擬機安裝的centos7做爲學習的服務器,使用xshell鏈接虛擬機。算法

一.Nginx安裝前相關準備工做shell

1.將下載好的nginx壓縮包經過xftp上傳到虛擬機的目錄中。以下圖所示:windows

2.切換到解壓的目錄,將壓縮包解壓centos

[shell@shell-learn myusr]$ tar -zxvf /mytools/nginx-1.16.0.tar.gz 瀏覽器

3.將用戶切換到root用戶:bash

[shell@shell-learn nginx-1.16.0]$ su root

4.nginx目錄結構介紹

src目錄:存放Nginx的源代碼

man目錄:存放Nginx的幫助文檔

html目錄:存放默認網站文件

contrib目錄:存放其餘機構或組織貢獻的文檔資料

conf目錄:存放Nginx服務器的配置文件

auto目錄:存放大量的腳本文件,和configure腳本程序相關

configure文件:Nginx自動安裝腳本,用於檢查環境,生成編譯代碼須要的makefile文件

CHANGES、CHANGES.ru、LICENSE、README都是Nginx服務器的相關文檔資料

5.Nginx相關依賴包

pcre-devel:爲Nginx模塊(如rewrite)提供正則表達式庫

zlib-devel:爲Nginx模塊(如gzip)提供數據壓縮用的函數庫

openssl-devel:爲Nginx模塊(如ssl)提供密碼算法、證書以及SSL協議等功能

安裝命令:

 yum -y install pcre-devel openssl-devel

因爲openssl-devel依賴於zlib-devel,在經過安裝openssl-devel時會自動解決依賴,所以不須要安裝zlib-devel

二.Nginx編譯安裝

1.切換到解壓目錄

[root@shell-learn myusr]$ cd nginx-1.16.0/

2.配置Nginx的編譯選項,指定安裝目錄

[root@shell-learn nginx-1.16.0]# ./configure --prefix=/usr/local/nginx --with-http_ssl_module

其餘模塊暫時用不到,當用到的時候從新編譯Nginx,並使用--with-選項添加須要的模塊便可。

編譯時候,出現錯誤:./configure: error: C compiler cc is not found ,須要安裝編譯插件:

[root@shell-learn nginx-1.16.0]#yum -y install gcc-c++

3.經過make命令編譯和安裝Nginx

[root@shell-learn nginx-1.16.0]# sudo make && make install

三.Nginx的啓動和中止

1.啓動Nginx

[root@shell-learn nginx-1.16.0]# cd /usr/local/nginx/sbin
[root@shell-learn sbin]# ./nginx

2.查看Nginx運行狀態

[root@shell-learn sbin]# ps aux|grep nginx

root 6324 0.0 0.1 45952 1128 ? Ss 09:08 0:00 nginx: master process ./nginx
nobody 6325 0.0 0.1 46412 1904 ? S 09:08 0:00 nginx: worker process
root 6328 0.0 0.0 112708 984 pts/0 R+ 09:09 0:00 grep --color=auto nginx

前兩行分別是Nginx主進程和工做進程,第三行是grep Nginx命令。主進程以root用戶運行,而工做進程以nobody用戶運行,進程ID分別是6324 和 6325。

3.中止Nginx服務

當即中止服務:

[root@shell-learn sbin]# ./nginx -s stop

從容中止服務:

[root@shell-learn sbin]# ./nginx -s quit

經過kill或者killall命令殺死進程:

kill Nginx的主進程的PID

killall nginx

4.查看端口號佔用

netstat -tlnp

四.訪問測試

1.安裝iptables防火牆

在CentOS 7中防火牆由firewalld來管理,咱們這裏使用iptables管理方式。


中止firewalld服務:


systemctl stop firewalld

systemctl mask firewalld


安裝iptables-services:

yum install iptables-services


啓動iptables服務
systemctl start iptables
設置開機啓動:

systemctl enable iptables

 

2.配置iptables防火牆,實現開放80端口的訪問

[root@shell-learn ·]# iptables -I INPUT -p tcp --dport 80 -j ACCEPT

參數說明:

-I INPUT:表示在INPUT(外部訪問規則)中插入一條規則

-p tcp:指定數據包匹配的協議(tcp、udp、icmp等),這裏指定tcp協議

--dport 80:用於指定數據包匹配的目標端口號,這裏指定80端口

-j ACCEPT:指定對數據包的處理操做(ACCEPT、DROP、REJECT、REDIRECT等),這裏指定ACCEPT操做

3.查看防火牆狀態

[root@shell-learn ·]# service iptables status

4.須要將臨時生效的配置保存

[root@shell-learn ·]# service iptables save

5.重啓iptables 防火牆

[root@shell-learn ·]# service iptables restart

6.訪問Nginx主頁

在windows系統中經過瀏覽器進行訪問:http://nginx服務器的ip地址

五.添加到環境變量

1.查看環境變量

[root@shell-learn ·]# echo $PATH

/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/shell/.local/bin:/home/shell/bin

其中/bin和/sbin放置經常使用程序;sbin表示須要管理員權限;/usr/bin和/usr/sbin放置一些工具軟件的可執行程序;/usr/local/bin和/usr/local/sbin放置用戶自行安裝的可執行程序。

2.經過軟連接將nginx程序連接到/usr/local/sbin目錄中

[root@shell-learn ·]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/nginx

建立軟連接後,就能夠在任意目錄下直接使用nginx命令來控制nginx服務。

六.添加到系統服務

在centos系統中,service命令其實是調用了/etc/init.d目錄下的shell腳本,所以將nginx添加到系統服務中時,須要在/etc/init.d目錄中編寫一個文件名稱爲nginx的shell腳本。

#! /bin/bash
#Startup script for the nginx Web Server
DAEMON=/usr/local/nginx/sbin/nginx
case "$1" in
start)
echo "Starting Nginx daemon..."
$DAEMON && echo "SUCESS"
;;
stop)
echo "Stopping Nginx daemon..."
$DAEMON -s quit && echo "SUCESS"
;;
reload)
echo "Reloading Nginx daemon..."
$DAEMON -s reload && echo "SUCESS"
;;
restart)
echo "Restart Nginx daemon..."
$DAEMON -s quit
$DAEMON && echo "SUCESS"
;;
*)
echo "Usage: service nginx {start|restart|reload|stop|test|show}"
;;
esac

 

保存腳本,併爲nginx腳本添加可執行權限

[root@shell-learn ·]# chmod +x /etc/init.d/nginx

七.設置開機自啓動

若nginx服務實現開機啓動,就須要在/etc/init.d/nginx腳本文件中添加對chkconfig的支持,打開腳本文件,在第二行的位置新增以下內容:

#chkconfig: 35 85 15

其中35表示nginx服務容許的啓動級別是3和5,若暫時不開啓任何啓動級別,可使用「-」代替。85和15用於設置nginx服務的啓動(S)順序和關閉(K)順序。數值小的先執行,數值大的後執行。該值是用戶自定義取值範圍在0-99之間。

使用chkconfig命令執行添加nginx服務自啓動操做,具體命令以下:

[root@shell-learn ·]# chkconfig --add nginx

經過chkconfig --list查看添加後的效果。

從新啓動Linux系統,測試nginx服務是否可以開機自啓動。

相關文章
相關標籤/搜索