Nginx架構-LNMP、Nginx+tomcat、Nginx+keepalived
阿新 • • 發佈:2018-11-14
用戶訪問 技術 gin Coding www bmp 高可用 proxy 其他 Nginx架構-LNMP
- php-fpm以單獨的一個服務存在
- Nginx直接處理靜態文件
- Nginx會把php的請求通過代理的方式交給php-fpm
配置Nginx和php
配置如下(在server部分添加): location ~ \.php$ { include fastcgi_params; fastcgi_pass unix:/tmp/php-fcgi.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } 配置說明: 1 fastcgi_params文件在/usr/local/nginx/conf/下面,其內容為fastcgi相關的變量 2 fastcgi_pass後面跟的是php-fpm服務監聽地址,可以是IP:PORT,也可以是unix socket地址,也支持upstream的地址 3 fastcgi_index定義索引頁,如果在server內其他部分有定義index參數,該配置可以忽略 4 fastcgi_param這行其實可以在fastcgi_params文件裏面定義SCRIPT_FILENAME變量,這個變量如果不定義,php的請求是沒辦法訪問的。
Nginx+tomcat
Tomcat本身就是一個web服務器,可以處理靜態文件的請求,但處理能力沒有Nginx強,所以需要做一個動靜分離
在本架構中,Nginx直接代理Tomcat
Tomcat安裝略
配置文件示例
https://coding.net/u/aminglinux/p/nginx/git/blob/master/java/nginx_tomcat.md
配置文件示例 server { listen 80; server_name www.aminglinux.com; location ~* "\.(jpg|png|jepg|js|css|xml|bmp|swf|gif|html)$" { root /data/wwwroot/aminglinux/; access_log off; expire 7d; } location / { proxy_pass http://127.0.0.1:8080/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } 說明: 1 首先,把各種靜態文件的請求分離出來,單獨由nginx處理。 2 其他請求直接代理8080端口,即tomcat服務。
Nginx+keepalived
- 用戶訪問的是一個vip(虛擬IP),兩臺Nginx通過Keepalived實現高可用
- 正常情況下,Nginx主提供服務,Nginx備並不提供服務,留作備用,當主down掉後,Nginx備會替代主提供服務
- Nginx主和備都要配置負載均衡,代理後端的所有Server
- 在此架構中,Nginx和Keepalived安裝在同一個機器上,也就是說Nginx主和Nginx備都需要安裝Keepalived服務
Nginx架構-LNMP、Nginx+tomcat、Nginx+keepalived