nginx反向代理實例

經過一個例子演示一下nginx是如何代理服務的,而且講一下nginx.conf的關於server模塊location模塊的配置html

server模塊:配置虛擬主機的相關參數,一個http中能夠有多個servernginx

location模塊:配置請求的路由,以及各類頁面的處理狀況tomcat

首先我在本地虛擬機安裝了nginx和tomcat,啓動後,此時可使用虛擬機ip地址訪問tomcat服務器

虛擬機ip是:http://192.168.233.128spa

tomcat監聽的端口是:8080代理

1.如今想經過nginx代理一下tomcat服務,使用nginx配置的虛擬主機地址來訪問

(1)增長一個server 塊,並在其中添加一個location快,以下code

server { listen 8089; server_name localhost; location / { # 只有一個/後面沒有路徑,表示訪問tomcat首頁 proxy_pass http://localhost:8080; 
# tomcat服務的路由 (由於個人nginx和tomcat部署在了同一臺虛擬機,因此這裏填的localhost,假如想代理其餘服務器的服務,則填寫程序所在服務器ip端口便可)
} }

這樣,在訪問時,使用虛擬主機的ip+端口便可訪問  http://192.168.233.128:8089/server

(2)在原有server基礎上添加一個location塊,以下:htm

 server { listen 80; server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; # location / { #注意:把原來的根路徑的location註釋掉了,這個頁面是跳轉到nginx的首頁,由於不容許出現2個同樣的location路徑,不然會報錯「nginx: [emerg] duplicate location "/" in /usr/local/nginx/conf/nginx.conf:63」 # root html; # index index.html index.htm; #} location / { # 根路徑 proxy_pass http://localhost:8080; # 請求轉向本虛擬機的8080端口(即訪問tomcat)
 }

此次,直接使用虛擬機的ip便可訪問tomcat首頁:http://192.168.233.128(不須要加端口,由於是80端口)blog

 2.在tomcat上部署了一個jenkins.war,經過nginx反向代理來訪問

正常訪問jenkins是:http://192.168.233.128:8080/jenkins

經過nginx代理,不加端口訪問,只需在監聽80端口的server塊中添加一個location塊

location /jenkins {                # /jenkins表示要訪問的路由下的路徑
              proxy_pass  http://127.0.0.1:8080;  # 請求轉向本虛擬機的8080端口 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr;  #獲取真實ip
              proxy_connect_timeout   90; proxy_send_timeout 90; proxy_read_timeout 90; proxy_buffer_size 4k; proxy_buffers 4 32k; proxy_busy_buffers_size 64k; proxy_temp_file_write_size 64k; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;#獲取代理者的真實ip
 proxy_redirect off; }

配置完成後重啓nginx,使用http://192.168.233.128/jenkins進行訪問便可

3.代理部署在另外一臺服務器的程序,經過nginx所在服務器訪問其服務

在監聽80端口的server塊中添加一個location塊

location /ApprPhD {                # 訪問程序時須要在ip後添加的路徑
              proxy_pass http://192.168.0.XXX:3030; # 請求轉向XXX服務器上的服務,結合/ApprPhd,表示訪問 http://192.168.0.107:3030/ApprPhD proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr;  #獲取真實ip
              proxy_set_header REMOTE-HOST $remote_addr; proxy_connect_timeout 90; proxy_send_timeout 90; proxy_read_timeout 90; proxy_buffer_size 4k; proxy_buffers 4 32k; proxy_busy_buffers_size 64k; proxy_temp_file_write_size 64k; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;#獲取代理者的真實ip
 proxy_redirect off; }

重啓nginx服務後,使用以下連接訪問:http://192.168.233.128/ApprPhD

相關文章
相關標籤/搜索