常見錯誤
nginx:[emerg]unknown directive ssl
加上 --with-http_ssl_module 重新編輯安裝
下載下傳
進入官網下載下傳我們需要的版本,複制下載下傳連結,使用wget工具下載下傳
文章目前最新穩定版是1.16.1
wget http://nginx.org/download/nginx-1.16.1.tar.gz
解壓
tar -xzf nginx-1.16.1.tar.gz
依賴安裝
在你不清楚伺服器有沒有安裝這些依賴的情況下,可以先跳過,報錯再回來,或者直接都安裝一下也沒壞,你喜歡就好
- gcc 源碼的編依賴 于gcc 環境
yum install gcc
- PCRE(Perl Compatible Regular Expressions) Perl庫,包括 perl 相容的正規表達式庫
-
yum install -y pcre pcre-devel
- zlib 庫提供了很多種壓縮和解壓縮的方式, nginx 使用 zlib 對 http 包的内容進行 gzip
-
yum install -y zlib zlib-devel
- OpenSSL是一個開放源代碼的軟體庫包,應用程式可以使用這個包來進行安全通信,避免竊聽,同時确認另一端連接配接者的身份。這個包廣泛被應用在網際網路的網頁伺服器上
-
yum install -y openssl openssl-devel
比較懶的可以直接執行這個指令 (~ ̄▽ ̄)~
yum install gcc openssl-devel pcre-devel -y
配置
cd nginx-1.16.1
檢視你需要配置,建議看看官網的參數說明根據你需要的情景使用配置
./configure --help
這裡我隻是設定了安裝目錄和ssl,其他均采用了預設
./configure --prefix=/server/nginx --with-http_ssl_module
出現這個證明已經配置成功
編譯和安裝
make && make install
看到這個界面證明已經安裝成功了
測試啟動
cd /server/nginx/sbin //這個是配置安裝包時候的目錄
./nginx //啟動
./nginx -s stop //停止
./nginx -s quit //退出
./nginx -s reload //重新開機
這教程基于centos7 ,centos7服務管理都是通過systemctl指令的,是以我們需要添加一下對應nginx的service服務
systemctl服務儲存位址 /usr/lib/systemd/system/
執行以下指令建立nginx服務
vim /usr/lib/systemd/system/nginx.service
并錄入一下内容
[Unit]
Description=nginx - high performance web server
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
ExecStart=/server/nginx/sbin/nginx
ExecReload=/server/nginx/sbin/nginx -s reload
ExecStop=/server/nginx/sbin/nginx -s stop
[Install]
WantedBy=multi-user.target
配置說明
[Unit]:服務的說明
Description:描述服務
After:描述服務類别
[Service]服務運作參數的設定
Type=forking是背景運作的形式
ExecStart為服務的具體運作指令
ExecReload為重新開機指令
ExecStop為停止指令
PrivateTmp=True表示給服務配置設定獨立的臨時空間
注意:啟動、重新開機、停止指令全部要求使用絕對路徑
[Install]服務安裝的相關設定,可設定為多使用者
要服務生效,我們需要重新加載服務
systemctl daemon-reload
現在我們可以使用systemctl指令來對nginx進行操作了
systemctl start nginx //啟動
systemctl stop nginx //停止
systemctl reload nginx //重新開機 可以不用停止nginx服務,使修改的配置生效
systemctl restart nginx //重新開機
systemctl enable nginx //設定開機啟動
systemctl disable nginx //禁用開機啟動
systemctl status nginx //檢視服務狀态
擷取所有正在運作的服務
systemctl list-units --type=service
最後我們通路試試
啟動後我們可以通路一下看到這個界面就證明安裝成功了