初始nginx

本文涉及到nignx的安裝、nginx的配置說明、nginx的負載均衡、nginx的反向代理和nginx的ssl方反向代理以及nginx location路徑匹配優先級等問題。

Nginx的安裝與啟動

1)pcre安裝,支持正則表達式?

http://www.pcre.org/
#?tar?zxvf?pcre-7.9.tar.gz
#?cd?pcre-7.9
#./configure
#?make?&&?make?install

2)openssl安裝(可選),支持安全協議的站點?

http://www.openssl.org/
#?tar?zxvf?openssl-0.9.8l.tar.gz
#?cd?openssl-0.9.8l
#./config
#?make?&&?make?install

3)nginx的安裝??

#?tar?zxvf?nginx-0.7.64.tar.gz
#?cd?nginx-0.7.64

4)啟動

#?cd usr/local/nginx/sbin
# /nginx

5)重啟

./nginx -s reload

Nginx.conf 基本配置

#user? nobody;
worker_processes? 1; #nginx進程數,建議設置為等于CPU總核心數。

events {
worker_connections? 1024; #單個進程最大連接數(最大連接數=連接數*進程數)
}

http {
include?????? mime.types;#文件擴展名與文件類型映射表
default_type? application/octet-stream;#默認文件類型
sendfile??????? on;#sendfile on; #開啟高效文件傳輸模式
keepalive_timeout? 60;#長連接超時時間,單位是秒

#gzip模塊設置(略)

upstream blog.ha97.com {
#upstream的負載均衡,weight是權重,可以根據機器配置定義權重
#weigth參數表示權值,權值越高被分配到的幾率越大。
server 192.168.80.121:80 weight=3;
server 192.168.80.122:80 weight=2;
server 192.168.80.123:80 weight=3;
}

server {
listen?????? 80;
server_name? localhost;

location / {
proxy_pass?? http://192.168.24.152:8080/test1;
proxy_set_header? X-Real-IP? $remote_addr;
proxy_set_header? X-Forwarded-For $proxy_add_x_forwarded_for;
}

location /test {
proxy_pass??? http://192.168.24.152:8080/abc;
proxy_set_header? X-Real-IP? $remote_addr;
proxy_set_header? X-Forwarded-For $proxy_add_x_forwarded_for;
}
}

server{
listen??? 8082;#監聽端口
server_name?? localhost;

location / {
proxy_pass?? http://192.168.24.152:8080/test1;
proxy_set_header? X-Real-IP? $remote_addr;
proxy_set_header? X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
}

Nginx.conf? server配置說明

1) server配置說明

server {
listen?????? 80; #監聽端口
server_name? localhost; #域名可以有多個,用空格隔開
location / {
proxy_pass?? http://192.168.24.152:8080/test1;
proxy_set_header? X-Real-IP? $remote_addr;
#把真實的IP發送給 轉發的web服務器,否則轉發的IP是nginx這臺的IP
proxy_set_header? X-Forwarded-For $proxy_add_x_forwarded_for;
#意思是增加一個$proxy_add_x_forwarded_for到X-Forwarded-For里去
#例X-Forwarded-For: 1.1.1.1, 2.2.2.2, 3.3.3.3 代表 請求由1.1.1.1發出,
#經過三層代理,#第一層是2.2.2.2,第二層是3.3.3.3,而本次請求的來源
#IP4.4.4.4是第三層代理
}
}

2)多個server配置,監聽不同端口

server { #server1
listen?????? 80;
server_name? localhost;

location / {
proxy_pass?? http://192.168.24.152:8080/test1;
proxy_set_header? X-Real-IP? $remote_addr;
proxy_set_header? X-Forwarded-For $proxy_add_x_forwarded_for;
}
}

server{ #server2
listen??? 8082;#監聽端口
server_name?? localhost;

location / {
proxy_pass?? http://192.168.24.152:8080/test1;
proxy_set_header? X-Real-IP? $remote_addr;
proxy_set_header? X-Forwarded-For $proxy_add_x_forwarded_for;
}
}

server配置路徑匹配問題

Nginx location中可能涉及的匹配規則有:

  • = 精確匹配
  • ^~ 普通字符匹配,區分大小寫
  • ~ 正則匹配,區分大小寫
  • /xxx/yyy.zzz 最長匹配
  • /

其優先級順序如下:

  • =優先級大于^~
  • ^~優先級大于~
  • ~ 對比 /xxx/yyy.zzz
  • ^~優先級大于/xxx/yyy.zzz
  • ~優先級大于/
  • /xxx/yyy.zzz優先級大于/
  • /xxx/yyy/ 優先級大于 /xxx/

綜上所述location規則優先級順序為 = > ^~ > ~ > /xxx/yyy.zzz > / ,路徑匹配的優先級與location在文檔中的位置先后無關。

Nginx實現ssl反向代理

server {
listen?????? 443;??? #監聽443端口
server_name? localhost;

ssl??????????????? on;?? #啟用ssl加密
ssl_certificate????? /ect/cert/free4lab.crt;??? #服務器證書crt文件
ssl_certificate_key? /ect/cert/free4lab.key;?? #服務器私鑰key文件

location / {
proxy_pass?? http://192.168.24.152:8080/test1;
proxy_set_header? X-Real-IP? $remote_addr;
proxy_set_header? X-Forwarded-For $proxy_add_x_forwarded_for;
}
}

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/102472

(1)
單爆手單爆手
上一篇 2018-07-08
下一篇 2018-07-08

相關推薦

  • CentOS系統啟動/boot/initramfs修復(實驗)

    內核啟動之文件丟失修復

    2018-05-09
  • cobbler自動化安裝系統相關實驗

    cobbler用來快速建立 Linux 網絡安裝環境,基于PXE的二次封裝,將多種安裝參數封裝到一個菜單,相較于PXE更加方便,自動化

    2018-05-26
  • LINUX的哲學思想

    1.一切皆文件 把幾乎所有資源統統抽象為文件形式,不僅普通的文件,目錄、字符設備、塊設備、 套接字等還包括硬件設備,甚者通信接口等。在Linux 中都是以文件被對待;它們雖然類型不同,但是對其提供的卻是同一套操作界面。訪問任何設備都可以用統一的一個接口。方便統一管理 由眾多功能單一的程序組成。一個程序只做一件事,并且要做好,保證linux程序的高效運行。需要…

    Linux筆記 2018-06-27
  • 相信過程-馬哥教育

    IT工程師工作和學習都是比較枯燥的,過于目標化忽略了過程本身并不適合我,如果我來這里能使我全心全意投入到一段學習當中,我覺得來這里目標就達到了。其他的事情自然會水到渠成。 大家共勉!

    2018-07-21
  • iptables/netfilter、?tcp_wrapper

    iptables/netfilter: Firewall:防火墻,隔離工具;工作于主機或網絡邊緣,對于進出本主機或本網絡的報文根據事先定義的檢查規則作匹配檢測,對于能夠被規則匹配到的報文作出相應處理的組件; 主機防火墻 網絡防火墻 軟件防火墻(軟件邏輯): 硬件防火墻(硬件和軟件邏輯):NetScreen,CheckPoint,。。。 iptables(ne…

    Linux筆記 2018-06-05
  • 文本搜索工具

    文本搜索 locate 根據庫來查找,非實時查找,只能訪問有權限訪問的文件或目錄 依賴庫/usr/lib/mlocate/molate.db 更新數據庫 updatedb -i 忽略大小寫 -n只列出前幾個 -r支持正則 find 掃描磁盤進行查找,消耗資源大 -o 或者 -empty空文件后者目錄 -not 或! ls 對匹配的文件以長格式顯示 -dele…

    Linux筆記 2018-04-15
欧美性久久久久