Nginx 是一款高性能的 http web 服務(wù)器/反向代理服務(wù)器及電子郵件(IMAP/POP3)代理服務(wù)器。,特點(diǎn)是占有內(nèi)存少,并發(fā)能力強(qiáng),事實(shí)上 nginx 的并發(fā)能力確實(shí)在同類型的網(wǎng)頁服務(wù)器中表現(xiàn)較好,中國大陸使用...
Nginx 是一款高性能的 http web 服務(wù)器/反向代理服務(wù)器及電子郵件(IMAP/POP3)代理服務(wù)器。,特點(diǎn)是占有內(nèi)存少,并發(fā)能力強(qiáng),事實(shí)上 nginx 的并發(fā)能力確實(shí)在同類型的網(wǎng)頁服務(wù)器中表現(xiàn)較好,中國大陸使用 nginx網(wǎng)站用戶有:百度、京東、新浪、網(wǎng)易、騰訊、淘寶等 。
官方測(cè)試 nginx 能夠支支撐 5 萬并發(fā)鏈接,并且 cpu、內(nèi)存等資源消耗卻非常低,運(yùn)行非常穩(wěn)定。
簡(jiǎn)介: 本地虛擬機(jī)環(huán)境介紹和注意事項(xiàng)
虛擬機(jī)系統(tǒng)版本要求:CentOS 7以上版本 64位 的鏡像 ?絡(luò)訪問:需要宿主機(jī)和虛擬機(jī)?絡(luò)可以訪問,防?墻關(guān)閉,或者開放80端?12
鏡像安裝及網(wǎng)絡(luò)配置可參考:
博客
Nginx 安裝
官網(wǎng)下載或 直接從我分享的網(wǎng)盤資源下載
鏈接:https://pan.baidu.com/s/1tb0d-Ik-nVP18jkJQ5i4NA
提取碼:yyds
將下載的安裝包上傳到linux服務(wù)器的soft目錄下(soft是本人專門創(chuàng)建的用于存儲(chǔ)上傳的tar壓縮包目錄)
由于nginx是基于c語言開發(fā)的,所以需要安裝c語言的編譯環(huán)境,及正則表達(dá)式庫等第三方依賴庫。
yum -y install gcc pcre-devel zlib-devel openssl openssl-devel1
# 直接解壓到當(dāng)前目錄下tar -zxvf nginx-1.16.1.tar.gz12
我們提前要在/usr/local/software/目錄下創(chuàng)建nginx目錄,之后的nginx就安裝此目錄下
cd nginx-1.16.1 ./configure --prefix=/usr/local/software/nginx 說明: --prefix 指定的目錄,就是我們安裝Nginx的目錄。123456
繼續(xù)執(zhí)行命令:
# 在當(dāng)前目錄下執(zhí)行make & make install12
在安裝目錄下查看是否安裝完成:
安裝完Nginx后,我們可以切換到Nginx的安裝目錄(/usr/local/software/nginx),先來熟悉一下Nginx的目錄結(jié)構(gòu),如下圖:
# 安裝tree指令, 該指令可以將我們指定的目錄以樹狀結(jié)構(gòu)展示出來。如果沒有這個(gè)指令,可以通過以下指令進(jìn)行安裝sudo yum install tree tree nginx1234
重點(diǎn)目錄和文件如下:
目錄/文件 | 說明 | 備注 |
---|---|---|
conf | 配置文件的存放目錄 | |
conf/nginx.conf | Nginx的核心配置文件 | conf下有很多nginx的配置文件,我們主要操作這個(gè)核心配置文件 |
html | 存放靜態(tài)資源(html, css, ) | 部署到Nginx的靜態(tài)資源都可以放在html目錄中 |
logs | 存放nginx日志(訪問日志、錯(cuò)誤日志等) | |
sbin/nginx | 二進(jìn)制文件,用于啟動(dòng)、停止Nginx服務(wù) |
Nginx核?之配置?件剖析
# 每個(gè)配置項(xiàng)由配置指令和指令參數(shù) 2 個(gè)部分構(gòu)成#user nobody; # 指定Nginx Worker進(jìn)程運(yùn)行以及用戶組worker_processes 1;#error_log logs/error.log; # 錯(cuò)誤日志的存放路徑和錯(cuò)誤日志#error_log logs/error.log notice;#error_log logs/error.log info;#pid logs/nginx.pid; # 進(jìn)程PID存放路徑#事件模塊指令,用來指定Nginx的IO模型,Nginx支持的有select、poll、kqueue、epoll 等。#不同的是epoll用在Linux平臺(tái)上,而kqueue用在BSD系統(tǒng)中,對(duì)于Linux系統(tǒng),epoll工作模式是首選events { use epoll;#定義Nginx每個(gè)進(jìn)程的最大連接數(shù),作為服務(wù)器來說:worker_connections*worker_processes #作為反向代理來說,最大并發(fā)數(shù)量應(yīng)該是worker_connections*worker processes/2。因?yàn)榉聪虼矸?wù)器,每個(gè)并發(fā)會(huì)建立與客戶端的連接和與后端服務(wù)的連接,會(huì)占用兩個(gè)連接 worker_connections 1024;}http { include mime.types; default_type application/octet-stream;#自定義服務(wù)日志 其中main指模板名稱,后面的內(nèi)容是日志的輸出格式 #log_format main '$remote_addr - $remote_user [$time_local] "$request" ' # '$status $body_bytes_sent "$http_referer" ' # '"$http_user_agent" "$http_x_forwarded_for"'; #nginx的訪問日志文件位置 及 使用哪一個(gè)模板 #以下配置表示 用戶訪問了nginx時(shí)客戶端信息都會(huì)按照main模板定義的格式記錄在access.log日志文件當(dāng)中 #access_log logs/access.log main;# 是否開啟高效傳輸模式 on開啟 off關(guān)閉 sendfile on;#減少網(wǎng)絡(luò)報(bào)文段的數(shù)量 #tcp_nopush on; #keepalive_timeout 0;#客戶端連接保持活動(dòng)的超時(shí)時(shí)間,超過這個(gè)時(shí)間之后,服務(wù)器會(huì)關(guān)閉該連接 keepalive_timeout 65; #gzip on; #虛擬主機(jī)的配置(什么是虛擬主機(jī):指在?臺(tái)物理主機(jī)服務(wù)器上劃分出多個(gè)磁盤空間, 每個(gè)磁盤空間都是?個(gè)虛擬主機(jī),每臺(tái)虛擬主機(jī)都可以對(duì)外提供Web服務(wù),并且互不?擾,就類似虛擬機(jī), 利?虛擬主機(jī)把多個(gè)不同域名的?站部署在同?臺(tái)服務(wù)器上,節(jié)省了服務(wù)器硬件成本和相關(guān)的維護(hù)費(fèi)?) server { listen 80; #虛擬主機(jī)的服務(wù)端口 server_name localhost; #用來指定IP地址或域名,多個(gè)域名之間用空格分開 #charset koi8-r; #access_log logs/host.access.log main; #URL地址匹配 location / { root html; # 服務(wù)默認(rèn)啟動(dòng)目錄.root表示一個(gè)路徑,可以是相對(duì)路徑,也可以說是絕對(duì)路徑 index index.html index.htm; # html目錄下默認(rèn)訪問文件index.html,按照順序找 } #error_page 404 /404.html; #錯(cuò)誤狀態(tài)碼的顯示頁面 # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } # proxy the PHP scripts to Apache listening on 127.0.0.1:80 # #location ~ \.php$ { # proxy_pass http://127.0.0.1; #} # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # #location ~ \.php$ { # root html; # fastcgi_pass 127.0.0.1:9000; # fastcgi_index index.php; # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; # include fastcgi_params; #} # deny access to .htaccess files, if Apache's document root # concurs with nginx's one # #location ~ /\.ht { # deny all; #} } # another virtual host using mix of IP-, name-, and port-based configuration # #server { # listen 8000; # listen somename:8080; # server_name somename alias another.alias; # location / { # root html; # index index.html index.htm; # } #} # HTTPS server # #server { # listen 443 ssl; # server_name localhost; # 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; # } #}}123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
Nginx中,我們的二進(jìn)制可執(zhí)行文件(nginx)存放在sbin目錄下,雖然只有一個(gè)可執(zhí)行文件,但是我們可以通過該指令配合不同的參數(shù)達(dá)到更加強(qiáng)大的功能。接下來,我們就演示一下Nginx常見指令, 在執(zhí)行下面的指令時(shí),都需要在/usr/local/software/nginx/sbin/
目錄下執(zhí)行。
# 1 查看版本./nginx -v12
# 2 檢查配置文件修改了nginx.conf核心配置文件之后,在啟動(dòng)Nginx服務(wù)之前,可以先檢查一下conf/nginx.conf文件配置的是否有錯(cuò)誤,命令如下: ./nginx -t1234
# 3 啟動(dòng)./nginx 啟動(dòng)之后,我們可以通過ps -ef指令來查看nginx的進(jìn)程是否存在。1234
注意: nginx服務(wù)啟動(dòng)后,默認(rèn)就會(huì)有兩個(gè)進(jìn)程。最后一個(gè)命令是我們執(zhí)行ps 命令的進(jìn)程,我們可以忽略它
啟動(dòng)之后,我們可以直接訪問Nginx的80端口, http://192.168.10.11
# 4 停止./nginx -s stop# 5 重新加載 當(dāng)修改了Nginx配置文件后,需要重新加載才能生效,可以使用下面命令重新加載配置文件:./nginx -s reload1234567
在上述我們?cè)谑褂胣ginx命令在進(jìn)行服務(wù)的啟動(dòng)、停止、重新加載時(shí),都需要用到一個(gè)指令nginx,而這個(gè)指令是在nginx/sbin目錄下的,我們每一次使用這個(gè)指令都需要切換到sbin目錄才可以,使用相對(duì)繁瑣。那么我們能不能在任意目錄下都可以執(zhí)行該指令來操作nginx呢?答案是可以的,配置nginx的環(huán)境變量即可。
通過vim編輯器,打開/etc/profile文件, 在PATH環(huán)境變量中增加nginx的sbin目錄,如下:
JAVA_HOME=/usr/local/software/jdk/jdk8CLASSPATH=$JAVA_HOME/lib/PATH=/usr/local/software/nginx/sbin:$PATH:$JAVA_HOME/binexport PATH JAVA_HOME CLASSPATH1234
修改完配置文件之后,需要執(zhí)行
source /etc/profile1
使文件生效, 接下來,我們就可以在任意目錄下執(zhí)行nginx的指令了,如:
# 1 查看版本nginx -v# 2 檢查配置文件nginx -t# 3 啟動(dòng)nginx# 4 停止nginx -s stop# 5 重新加載 當(dāng)修改了Nginx配置文件后,需要重新加載才能生效,可以使用下面命令重新加載配置文件:nginx -s reload123456789101112131415
本地域名映射
瀏覽器輸入要訪問某個(gè)網(wǎng)站地址的時(shí)候(域名訪問),會(huì)有解析域名的情況,首先如果在電腦本地的host文件當(dāng)中配置域名解析為ip的話,那就直接使用本地的解析的ip,如果本地沒有對(duì)應(yīng)的解析,就去使用互聯(lián)網(wǎng)上的NDS
就好比我們?cè)跒g覽器輸入localhost這個(gè)域名的時(shí)候,它就會(huì)被解析127.0.0.1
為什么呢?因?yàn)槲覀冊(cè)诒镜嘏渲昧擞蛎成?/p>
瀏覽器輸?個(gè)域名,經(jīng)過DNS解析獲取IP,如果我們沒有公?域名和IP,怎么去測(cè)試這塊內(nèi)容? DNS解析,會(huì)先獲取本地的Host?件,先看本地有沒域名>IP 的映射,有的話直接使?12
接下來就對(duì)上面訪問虛擬機(jī)上的nginx做本地域名映射虛擬機(jī)IP
首先找到host文件:C:\Windows\System32\drivers\etc
測(cè)試通過域名訪問虛擬機(jī)上的nginx
來源:本文內(nèi)容搜集或轉(zhuǎn)自各大網(wǎng)絡(luò)平臺(tái),并已注明來源、出處,如果轉(zhuǎn)載侵犯您的版權(quán)或非授權(quán)發(fā)布,請(qǐng)聯(lián)系小編,我們會(huì)及時(shí)審核處理。
聲明:江蘇教育黃頁對(duì)文中觀點(diǎn)保持中立,對(duì)所包含內(nèi)容的準(zhǔn)確性、可靠性或者完整性不提供任何明示或暗示的保證,不對(duì)文章觀點(diǎn)負(fù)責(zé),僅作分享之用,文章版權(quán)及插圖屬于原作者。
Copyright?2013-2024 JSedu114 All Rights Reserved. 江蘇教育信息綜合發(fā)布查詢平臺(tái)保留所有權(quán)利
蘇公網(wǎng)安備32010402000125
蘇ICP備14051488號(hào)-3技術(shù)支持:南京博盛藍(lán)睿網(wǎng)絡(luò)科技有限公司
南京思必達(dá)教育科技有限公司版權(quán)所有 百度統(tǒng)計(jì)