nginx官方文檔介紹的安裝方法:http://nginx.org/en/docs/install.html
本文介紹兩種:
- 軟體包安裝
- 源碼安裝
1、軟體包安裝
官方:http://nginx.org/en/linux_packages.html
CentOS/RedHat版本支援
其他的Linux系統參考官方文檔。
1.1、設定nginx存儲庫
前提yam正常 + 網絡通暢,看自身情況是否使用sudo指令
yum-utils軟體包(提供
yum-config-manager
功能)
yum install yum-utils
建立/etc/yum.repos.d/nginx.repo,編寫nginx存儲庫配置,具體内容如下:
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
1.2、執行安裝
yum install nginx
官方的yum配置,速度可能不太理想,至少我安裝的時候是這樣(是時候展示真正的技術了)。
1.3、啟動測試
#啟動
systemctl start nginx
#加入開機啟動
systemctl enable nginx
浏覽器輸入localhost,效果如下,安裝成功。
如果其他機器通路不到,檢測一下是不是防火牆的問題。
簡單粗暴的解決辦法,關閉防火牆
CentOS 7使用firewall,執行以下指令,其他linux系統,請百度。
更詳細的firewall操作請百度。
systemctl stop firewalld
1.4、路徑說明
- /etc/nginx:nginx.conf所在目錄
- /usr/share/nginx:html檔案夾所在目錄
- /usr/sbin/nginx:nginx指令檔案
- /var/log/nginx:nginx日志目錄
2、源碼安裝
2.1、下載下傳源碼檔案
官網擷取源碼檔案下載下傳連結:http://nginx.org/en/download.html
#下載下傳
wget http://nginx.org/download/nginx-1.18.0.tar.gz
#解壓
tar -zxvf nginx-1.18.0.tar.gz
2.2、安裝依賴
直接使用yum安裝一下依賴
yum install -y pcre-devel zlib-devel openssl-devel
源碼編譯需要依賴gcc編譯器,編譯提示錯誤的話,安裝gcc編譯器
yum install gcc
2.3、編譯前配置
cd nginx-1.18.0
./configure --prefix=/opt/nginx --with-http_ssl_module
#出現 -bash: ./configure: Permission denied錯誤
bash ./configure --prefix=/opt/nginx --with-http_ssl_module
配置說明:
- --prefix:安裝目錄,預設是/usr/local/nginx。
- --with-http_ssl_module:允許建構一個子產品,将HTTPS協定支援添加到HTTP伺服器。這個子產品不是預設建構的。建構和運作這個子產品需要OpenSSL庫。
更多配置說明請參考官方文檔:http://nginx.org/en/docs/configure.html
2.4、編譯安裝
make && make install
如果無意外,等待編譯安裝完成即可。
2.5、啟動測試
執行安裝目錄下的sbin目錄的nginx指令檔案,啟動nginx
/opt/nginx/sbin/nginx
2.6、添加環境變量
- 方式一:軟連接配接到PATH所包含的目錄下
#檢視環境變量PATH的值,輸出如下
echo $PATH
#輸出:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/opt/jdk1.8.0_201/bin:/root/bin
#連結,例如
ln -s /opt/nginx/sbin/nginx /usr/local/sbin
- 方式二:PATH環境變量中添加nginx指令所處路徑
配置使用者級别或者系統級别,本文配置的是系統級别的環境變量。
vim /etc/profile
#插入内容:export PATH=$PATH:/opt/nginx/sbin
#使環境變量設定立即生效
source /etc/profile
2.7、建立nginx系統服務
CentOS服務所在路徑:/usr/lib/systemd/system/,軟體包安裝的nginx.service會在該路徑下。
我們現在在/etc/rc.d/init.d/目錄下建立nginx檔案。
内容如下,(如果編譯安裝目錄,請修改)
#!/bin/bash
#
# chkconfig: - 85 15
# description: Nginx is a World Wide Web server.
# processname: nginx
nginx=/opt/nginx/sbin/nginx
conf=/opt/nginx/conf/nginx.conf
case $1 in
start)
echo -n "Starting Nginx"
$nginx -c $conf
echo " done"
;;
stop)
echo -n "Stopping Nginx"
killall -9 nginx
echo " done"
;;
test)
$nginx -t -c $conf
;;
reload)
echo -n "Reloading Nginx"
ps auxww | grep nginx | grep master | awk '{print $2}' | xargs kill -HUP
echo " done"
;;
restart)
$0 stop
$0 start
;;
show)
ps -aux|grep nginx
;;
*)
echo -n "Usage: $0 {start|restart|reload|stop|test|show}"
;;
esac
再給定權限
chmod 755 nginx
将檔案添加到系統服務
#添加到系統服務
chkconfig --add nginx
#檢查是否添加成功
chkconfig --list nginx
啟動測試
systemctl start nginx