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