您好,登錄后才能下訂單哦!
這篇文章主要講解了“Nginx的原理和作用是什么”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Nginx的原理和作用是什么”吧!
Nginx是一款輕量級的Web服務器,反向代理服務器及電子郵件代理服務器。
反向代理:是指以代理服務器來接受internet上的連接請求,然后將請求轉發給內部網絡上的服務器,并將從服務器上得到的結果返回給internet上請求連接的客戶端,此時代理服務器對外就表現為一個反向代理服務器。
nginx常用命令:
1、nginx -s stop:快速關閉nginx,可能不保存相關信息,并迅速終止web服務
2、nginx -s quit:平穩關閉nginx,保存相關信息,有安排的結束web服務
3、nginx -s reload:重新打開日志文件
4、nginx -c filename :為nginx指定一個配置文件,來代替缺省的
5、nginx -t :不運行,而僅僅測試配置文件,nginx將檢查配置文件的語法的正確性,并嘗試打開配置文件中所引用到的文件
6、nginx -v:顯示nginx的版本。
nginx主要作用:http反向代理配置,負載均衡配置,網站有多個webapp的配置,靜態站點配置,跨域解決方案。
http反向代理實現:
#運行用戶 #user nobody; #啟動進程,通常設置成和cpu的數量相等 worker_processes 1; #全局錯誤日志 #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #PID文件,記錄當前啟動的nginx的進程ID #pid logs/nginx.pid; #工作模式及連接上限 events { worker_connections 1024;#單個后臺work process進程的最大并發連接數 } #設定http服務器,利用它的反向代理功能提供負載均衡支持 http { #設定mime類型(郵件支持類型),類型有mime.type文件定義 include mime.types; default_type application/octet-stream; #設定日志 #log_format main '$remote_addr - $remote_user [$time_local] "$request" ' # '$status $body_bytes_sent "$http_referer" ' # '"$http_user_agent" "$http_x_forwarded_for"'; #access_log logs/access.log main; #sendfile指令指定nginx是否調用sendfile函數來輸出文件,對于普通應用,必須設置為 on #如果用來進行下載等應用磁盤IO重載應用,可設置為off,以平衡磁盤與網絡I/O處理速度,降低系統等uptime sendfile on; #tcp_nopush on; #連接超時時間 #keepalive_timeout 0; keepalive_timeout 65; #壓縮開關 #gzip on; #設定實際的服務器列表 Upstream zp_server1{ server 127.0.0.1:8089 } #HTTP服務器 server{ #監聽80端口,80端口時知名端口號,用于HTTP協議 listen 80; #定義使用www.XX.com訪問 server_name www.xuecheng.com; #指向webapp的目錄 #root #編碼格式 charset utf-8; ssi on; ssi_silent_errors on; location / { alias F:/teach/xcEdu/xcEduUI01/xc-ui-pc-static-portal/; #首頁 index index.html; } } # 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; # } #} }
負載均衡配置:網站在實際運營過程中,多半都是有多臺服務器同時運行著同樣的app,這時需要使用負載均和來分流
#運行用戶 #user nobody; #啟動進程,通常設置成和cpu的數量相等 worker_processes 1; #全局錯誤日志 #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #PID文件,記錄當前啟動的nginx的進程ID #pid logs/nginx.pid; #工作模式及連接上限 events { worker_connections 1024;#單個后臺work process進程的最大并發連接數 } #設定http服務器,利用它的反向代理功能提供負載均衡支持 http { #設定mime類型(郵件支持類型),類型有mime.type文件定義 include mime.types; default_type application/octet-stream; #設定日志 #log_format main '$remote_addr - $remote_user [$time_local] "$request" ' # '$status $body_bytes_sent "$http_referer" ' # '"$http_user_agent" "$http_x_forwarded_for"'; #access_log logs/access.log main; #sendfile指令指定nginx是否調用sendfile函數來輸出文件,對于普通應用,必須設置為 on #如果用來進行下載等應用磁盤IO重載應用,可設置為off,以平衡磁盤與網絡I/O處理速度,降低系統等uptime sendfile on; #tcp_nopush on; #連接超時時間 #keepalive_timeout 0; keepalive_timeout 65; #壓縮開關 #gzip on; #設定實際的服務器列表 upstream zp_server1{ #weight參數表示權重,權重越高,被分配到的幾率越大 server 127.0.0.1:8089 weight=5; server 127.0.0.1:8088 weight=1; server 127.0.0.1:8087 weight=6; } #HTTP服務器 server{ #監聽80端口,80端口時知名端口號,用于HTTP協議 listen 80; #定義使用www.XX.com訪問 server_name www.xuecheng.com; #指向webapp的目錄 #root #編碼格式 charset utf-8; #打開SSI ssi on; ssi_silent_errors on; location / { proxy_pass http://zp_server1 #首頁 index index.html; } } # 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; # } #} }
網站有多個webapp的配置:當一個網站功能越來越豐富時,往往需要將一些功能相對獨立的模塊剝離出來,獨立維護。這樣的話,通常會有多個webapp。
http{ upstream product_server{ server www.helloworld.com:8081; } upstream admin_server{ server www.helloworld.com:8082; } upstream finance_server{ server www.helloworld.com:8083; } } server{ location / { proxy_pass http://product_server } location /product/ { proxy_pass http://product_server } location /admin/ { proxy_pass http://admin_server } location /finance/ { proxy_pass http://finance_server } }
https反向代理配置:一些對安全性要求比較高的站點,可能會使用HTTPS,使用nginx配置https需要知道幾點:
1、HTTPS的固定端口號443,不同于HTTP的80端口
2、SSL標準需要引入安全證書,所以在nginx.conf中你需要指定證書和它對應的key
靜態站點配置:
server{ location / { root /app/dist/; index index.html }
跨域解決方案:
1、CORS
在后端服務器設置HTTP響應頭,把你需要運行訪問的域名加入。
2、jsonp
nginx根據第一種思路,也提供了一種結局跨域的解決方案
首先:在enable-cors.conf文件中設置cors
接著:在你的服務器中include-enable-cors.conf 來引入跨域配置。
感謝各位的閱讀,以上就是“Nginx的原理和作用是什么”的內容了,經過本文的學習后,相信大家對Nginx的原理和作用是什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。