Nginx
是一款輕量級的 HTTP 伺服器,時常用於伺服器端的反向代理和負載均衡。
手動編譯安裝Nginx比較複雜,但是平時一般使用最多。原因:
下次給大家分享,怎麼安裝模組~~~
本次安裝Nginx,是在Debian發行版本的Linux上安裝,如果是CentOS發行版本Linux,需要注意:
gcc
、pcre
、zlib
以及openssl
另外,如果你覺得本文的安裝方法過於技術型。其實,也可以試試寶塔面板的一鍵操作。
本次教學使用一臺Debian10 x64伺服器:
安裝gcc編譯器
首先,我們需要安裝gcc編譯器用於make
編譯,Debian可以通過安裝build-essential
來安裝GCC編譯器:
apt install -y build-essential
安裝正則庫
正則庫很關鍵,我們使用Nginx,在組態檔內location
進行目錄匹配,就需要正則庫。Debian安裝正則庫,可以:
apt install -y libpcre3 libpcre3-dev
安裝zlib庫
當然,Nginx編譯過程和Http相應過程還需要gzip
格式的壓縮,所以我們還需要安裝zlib庫
用於對HTTP包的內容做gzip格式的壓縮,可以這樣安裝:
apt install -y zlib1g-dev
安裝OpenSSL庫
最後,現在SSL協定很重要,Chrome等主流瀏覽器,都開始預設相應HTTPS了,所以OpenSSL編譯環境也很重要:
apt install -y openssl libssl-dev
依賴都安裝完成,就可以下載原始碼來編譯了。
接下來,我們下載Nginx原始碼,我們進入Nginx官網:http://nginx.org/en/download.html
下載最新的stable穩定版本:
在Debian上使用wget下載:
# 下載原始碼 wget http://nginx.org/download/nginx-1.20.2.tar.gz # 解壓原始碼 tar -xf nginx-1.20.2.tar.gz # 進入原始碼內 cd cd nginx-1.20.2
接下來就是make
環節了,編譯時候的引數可以參考官方Nginx檔案:http://nginx.org/en/docs/configure.html
我自己編譯Nginx時候,選擇的引數一般是:
./configure \ --prefix=/usr/local/nginx \ --user=www \ --group=www \ --sbin-path=/usr/local/nginx/sbin/nginx \ --conf-path=/usr/local/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 \ --with-file-aio \ --with-threads \ --with-http_addition_module \ --with-http_auth_request_module \ --with-http_dav_module \ --with-http_flv_module \ --with-http_gunzip_module \ --with-http_gzip_static_module \ --with-http_mp4_module \ --with-http_random_index_module \ --with-http_realip_module \ --with-http_secure_link_module \ --with-http_slice_module \ --with-http_ssl_module \ --with-http_stub_status_module \ --with-http_sub_module \ --with-http_v2_module \ --with-mail \ --with-mail_ssl_module \ --with-stream \ --with-stream_realip_module \ --with-stream_ssl_module \ --with-stream_ssl_preread_module
其中:
--prefix
:Nginx主要安裝路徑,後續Nginx子目錄依照這個變數展開--user
:設定Nginx程序啟動時,所屬的使用者--group
:設定Nginx程序啟動時,所屬的使用者組如果沒有問題,會提示資訊:
Configuration summary + using threads + using system PCRE library + using system OpenSSL library + using system zlib library nginx path prefix: "/usr/local/nginx" nginx binary file: "/usr/local/nginx/sbin/nginx" nginx modules path: "/usr/local/nginx/modules" nginx configuration prefix: "/usr/local/nginx" nginx configuration file: "/usr/local/nginx/nginx.conf" nginx pid file: "/var/run/nginx.pid" nginx error log file: "/var/log/nginx/error.log" nginx http access log file: "/var/log/nginx/access.log" nginx http client request body temporary files: "/var/cache/nginx/client_temp" nginx http proxy temporary files: "/var/cache/nginx/proxy_temp" nginx http fastcgi temporary files: "/var/cache/nginx/fastcgi_temp" nginx http uwsgi temporary files: "/var/cache/nginx/uwsgi_temp" nginx http scgi temporary files: "/var/cache/nginx/scgi_temp"
沒有報錯資訊就可以編譯了:
make
接下來就是安裝了。
首先是安裝,很簡單:
make install
我們再建立systemctl
守護,管理Nginx:
vim /usr/lib/systemd/system/nginx.service
[Unit] Description=nginx After=network.target [Service] Type=forking ExecStart=/usr/local/nginx/sbin/nginx ExecReload=/usr/local/nginx/sbin/nginx -s reload ExecStop=/usr/local/nginx/sbin/nginx -s quit PrivateTmp=true [Install] WantedBy=multi-user.target
如果你是按我的方法編譯,那麼,需要注意。
/usr/local/nginx
:為Nginx編譯安裝的地址。/usr/local/nginx/nginx.conf
:Nginx預設組態檔。同時,我們使用systemctl
對Nginx進行管理:
systemctl start nginx
:啟動Nginx服務。systemctl reload nginx
:Nginx設定過載。systemctl stop nginx
:停止Nginx服務。更多systemctl操作,可以看這篇教學:《Linux系統服務神器:systemctl的設定與使用》
https://juejin.cn/post/7059029634922315812
最後,我們寫個HelloWorld
。
編輯組態檔:
指向目錄/www
:
cd / mkdir /www cd www vim index.html
過載Nginx設定:
systemctl reload nginx
瀏覽器存取成功:
最後,如何解除安裝Nginx呢?其實更簡單:
# 停止Nginx服務 systemctl stop nginx # 刪除Nginx服務 rm -rf /usr/lib/systemd/system/nginx.service # 過載設定 systemctl daemon-reload # 刪除Nginx編譯檔案 rm -rf nginx
這樣就解除安裝完成了。
其實呢?個人是喜歡編譯安裝Nginx。
Nginx確實是個Web伺服器神器呢~~~
推薦教學:
以上就是一文教你怎麼在Debian上編譯安裝Nginx(步驟詳解)的詳細內容,更多請關注TW511.COM其它相關文章!