您好,登錄后才能下訂單哦!
這篇文章主要講解了“Nginx的詳細安裝步驟”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Nginx的詳細安裝步驟”吧!
Nginx (engine x) 是一個高性能的HTTP和反向代理web服務器,同時也提供了IMAP/POP3/SMTP服務。Nginx是由伊戈爾·賽索耶夫為俄羅斯訪問量第二的Rambler.ru站點(俄文:Рамблер)開發的,第一個公開版本0.1.0發布于2004年10月4日。
其將源代碼以類BSD許可證的形式發布,因它的穩定性、豐富的功能集、示例配置文件和低系統資源的消耗而聞名。2011年6月1日,nginx 1.0.4發布。
Nginx是一款輕量級的Web 服務器/反向代理服務器及電子郵件(IMAP/POP3)代理服務器,在BSD-like 協議下發行。其特點是占有內存少,并發能力強,事實上nginx的并發能力確實在同類型的網頁服務器中表現較好,中國大陸使用nginx網站用戶有:百度、京東、新浪、網易、騰訊、淘寶等。
搭建環境: Linux CentOS7
Nginx不支持yum安裝,需要用到包(我這里用主線版本安裝):
API http://nginx.org/download/nginx-1.17.4.tar.gz
依賴包: yum -y install gcc pcre-devel openssl-devel
在IP地址為192.168.109.190的主機上安裝部署Nginx服務,并可以將Nginx服務器,要求編譯時啟用如下功能:
支持SSL加密功能
設置Nginx賬戶及組名稱均為nginx
Nginx服務器升級到更高版本。
訪問驗證Nginx Web服務器:
[root@centos7~]# yum -y install gcc pcre-devel openssl-devel (我是最小化安裝的系統需要把依賴包安裝完整yum -y install gcc pcre pcre-devel openssl openssl-devel make automake autoconf) //安裝依賴包
[root@centos7~]# useradd -s /sbin/nologin nginx //添加一個專用用戶,添加參數-s后面補充
[root@centos7~]# tar -xzvf nginx-1.17.4.tar.gz
[root@centos7~]# cd nginx-1.17.4
[root@centos7 nginx-1.17.4]# ./configure \
> --prefix=/usr/local/nginx \ //指定安裝路徑
> --user=nginx \ //指定用戶
> --group=nginx \ //指定組
> --with-http_ssl_module //開啟SSL加密功能
[root@centos7 nginx-1.17.4]# make && make install //編譯并安裝
[root@centos7 nginx-1.17.4]#ls /usr/local/nginx/sbin/nginx //查看是否有這個目錄,有則安裝成功
補充(關于為何添加專用用戶):
按照最小特權原則,需要給Nginx分配一個合適的權限,讓其能夠完成Web服務。
最小特權原則是系統安全中最基本的原則之一,它限制了使用者對系統及數據進行存取所需要的最小權限,既保證了用戶能夠完成所操作的任務,同時也確保非法用戶或異常操作所造成的損失最小。必須保證Nginx使用一個專門的用戶和用戶組,不要使用系統預定義的賬號。
因為只有root用戶可以運行Nginx,DocumentRoot應該能夠被管理Web站點內容的用戶訪問和使用Nginx服務器的Nginx用戶和Nginx用戶組訪問。所以,如果希望“nginx”用戶在Web站點發布內容,并且可以以httpd身份運行Nginx服務器,通常可以將這個用戶添加到Nginx組里.
總言之,我們以root用戶啟用Nginx并以Nginx用戶或組身份使用Nginx,因為如果不將root與Nginx用戶分離,如使用者具備root權限,就可以通過Nginx軟件的系統路徑向上找到根,這是很危險的.
[root@centos7~]# /usr/local/nginx/sbin/nginx //啟動服務
[root@centos7~]# /usr/local/nginx/sbin/nginx -s stop //關閉服務
[root@centos7~]# /usr/local/nginx/sbin/nginx -s reload //重新加載配置文件
[root@centos7~]# /usr/local/nginx/sbin/nginx -V //查看軟件信息
[root@centos7~]# ln -s /usr/local/nginx/sbin/nginx /sbin //創建軟鏈接,方便后期使用,直接輸入nginx即可啟動服務
netstat命令可以查看系統中啟動的端口信息,該命令常用選項如下:
-a顯示所有端口的信息
-n以數字格式顯示端口號
-t顯示TCP連接的端口
-u顯示UDP連接的端口
-l顯示服務正在監聽的端口信息,如httpd啟動后,會一直監聽80端口
-p顯示監聽端口的服務名稱是什么(也就是程序名稱)
nginx服務默認通過TCP 80端口監聽客戶端請求,觀察通過TCP 80是否在被nginx占用,如果你的服務器還有其他的使用80端口的服務,如httpd,你就要關閉httpd,關閉進程 kill all -9 httpd
虛擬主機(英語:virtual hosting)或稱 共享主機(shared web hosting),又稱虛擬服務器,是一種在單一主機或主機群上,實現多網域服務的方法,可以運行多個網站或服務的技術。虛擬主機之間完全獨立,并可由用戶自行管理,虛擬并非指不存在,而是指空間是由實體的服務器延伸而來,其硬件系統可以是基于服務器群,或者單個服務器。
其技術是互聯網服務器采用的節省服務器硬件成本的技術,虛擬主機技術主要應用于HTTP,FTP,EMAIL等多項服務,將一臺服務器的某項或者全部服務內容邏輯劃分為多個服務單位,對外表現為多個服務器,從而充分利用服務器硬件資源。如果劃分是系統級別的,則稱為虛擬服務器。
虛擬主機一般可用分為:基于域名、基于IP和基于端口的虛擬主機。在這里我們配置使用基于域名的虛擬主機.
#案例1
實現兩個基于域名訪問的虛擬主機,域名分別是www.aa.com和www.bb.com
這里我們只配置最基本的功能,配置兩個網站,網站aa使用默認的頁面,網站bb新建一個index.html 放到目錄www
mkdir /usr/local/nginx/www //創建目錄www
echo "this is www.bb.com hell world!" > /usr/local/nginx/www/index.html //創建index.html文件并寫入this is www.bb.com hell world!
vim /usr/local/nginx/conf/nginx.conf
修改如下:
user nginx nginx;
worker_processes 1;
pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80; //訪問的端口
server_name www.aa.com; //訪問的域名
location / {
root html; //指定網站根路徑
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
server {
listen 80; //端口
server_name www.bb.com; //域名
location / {
root www; //指定根路徑,前面使用的是默認路徑,這里指向我們創建的目錄www
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
配置修改完成后,我們重啟一下nginx
[root@centos7 ~]# nginx -s reload
綁定本地hosts文件進行測試:
訪問www.aa.com顯示默認nginx頁面
訪問www.bb.com顯示我們配置的html頁面:
關于nginx作為反向代理的配置還有很多種方式,之前已經說了基于域名,還有基于IP和域名加不同端口、IP加不同端口等配置
只需要修改配置文件中的listen和server_name這兩個參數就可以
SSL(Secure Socket Layer),為Netscape所研發,用以保障在Internet上數據傳輸的安全,利用數據加密(Encryption)技術,可確保數據在網絡上的傳輸過程中不會被截取及竊聽。一般通用的規格為40 bit的安全標準,美國則已推出128 bit的更高安全標準,但限制出境。只要3.0版本以上的I.E.或Netscape瀏覽器即可支持SSL。
SSL協議位于TCP/IP協議與各種應用層協議之間,為數據通訊提供安全支持。SSL協議可分為兩層: SSL記錄協議(SSL Record Protocol):它建立在可靠的傳輸協議(如TCP)之上,為高層協議提供數據封裝、壓縮、加密等基本功能的支持。 SSL握手協議(SSL Handshake Protocol):它建立在SSL記錄協議之上,用于在實際的數據傳輸開始前,通訊雙方進行身份認證、協商加密算法、交換加密密鑰等。
通俗來講,不使用SSL協議就不安全,如果簡單的進行文件傳輸,當訪問者輸入賬號密碼給服務器后一切都是明文顯示的,如果這時候有人抓包就可以看到文件的內容,使用SSL協議將數據加密,即使被抓包了也看不到文件的具體內容,極大提高的了安全性,尤其是涉及金錢交易的網站.
#案例2
實現一個基于https協議訪問的SSL虛擬主機,并通過私鑰、證書對該站點所有的數據加密
#加密算法:
#加密算法一般分為對稱算法、非對稱算法、信息摘要。
#對稱算法有:AES、DES,主要應用在單機數據加密。
#非對稱算法有:RSA、DSA,主要應用在網絡數據加密。
#信息摘要:MD5、sha256,主要應用在數據完整性校驗。
一般采用非對稱算法RSA:
[root@centos7 conf]# openssl genrsa > cert.key //生成私鑰,注意記錄文件名稱,在后續配置nginx配置文件時要使用
[root@centos7 conf]# openssl req -new -x509 -key cert.key > cert.pem //生成證書,注意記錄文件名稱,在后續配置nginx配置文件時要使用
修改nginx配置文件:
[root@centos7 conf]# vim nginx.conf
user nginx nginx;
worker_processes 1;
pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name www.cc.com;
return 301 https://$server_name$request_uri; //配置http訪問www.cc.com的時候強制跳轉到https的訪問方式
location / {
root html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
#HTTPS server
server {
listen 443 ssl;
server_name www.cc.com;
ssl_certificate cert.pem; //這里是證書文件
ssl_certificate_key cert.key; //這里是私鑰文件
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
root html;
index index.html index.htm;
}
}
}
配置修改完成后保存,重啟一下nginx
[root@centos7 conf]# nginx -s reload
修改本地hosts文件進行驗證:
用google瀏覽器訪問已經提示https不安全的網絡連接,這個原因是我們配置的SSL文件是本地生成
非第三方官方認證,所以google瀏覽器會彈出這樣的提示,我們只需要點高級,繼續訪問就可以了。
感謝各位的閱讀,以上就是“Nginx的詳細安裝步驟”的內容了,經過本文的學習后,相信大家對Nginx的詳細安裝步驟這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。