nginx是很強大的一種反向代理服務器,本文是說nginx的反向代理。nginx
一、正向代理和反向代理:web
正向代理:客戶端向目標服務器沒法向某服務器發送請求,因而客戶端先將請求發送至第三方服務器(代理服務器),讓第三方服務器轉發至目標服務器,這樣目標服務器就不知道真正的客戶端是我,只會覺得代理服務器是客戶端,這樣是不安全的,由於真正的服務器是處於暴露狀況下的。vim
反向代理:客戶端向代理服務器發送請求,此服務器收到請求後,將請求轉發至真正的服務器,對於客戶端來講,它覺得真正的服務器就是代理服務器,這樣真正的服務器就是出於不暴露狀態,比較安全。瀏覽器
兩種代理的區別就是:tomcat
正向代理的話,客戶端知道真正的服務器地址,反而服務器不知道真正的客戶端地址安全
反向代理的話,客戶端不知道真正的服務器地址,只知道代理服務器的地址,服務器能夠經過代理服務器知道發送請求的客戶端是誰,前提是隻有一臺反向代理服務器,若是存在多臺反向代理服務器,服務器也不必定知道真正的客戶端是誰(須要一層一層向上追查IP)。服務器
二、Linux上配置nginx的反向代理:app
(1)將nginx壓縮包上傳至Linux服務器上;ui
(2)解壓 tar -zxvf XXX代理
(3)安裝nginx所須要的配置包和建立快捷方式:
注意:先安裝nginx所須要的配置包,再建立快捷方式,若是先建立快捷方式,就會報錯:
./configure: error: the HTTP rewrite module requires the PCRE library.
You can either disable the module by using --without-http_rewrite_module
option, or install the PCRE library into the system, or build the PCRE library
statically from the source with nginx by using --with-pcre=<path> option.
安裝所需配置包:
yum -y install gcc pcre-devel openssl openssl-devel
建立快捷方式:
在nginx的目錄下
./configure --prefix=/usr/locl/nginx-1.17.3
看到如下信息說明建立成功:
Configuration summary
+ using system PCRE library
+ OpenSSL library is not used
+ using system zlib library
nginx path prefix: "/usr/local/nginx-1.17.3"
nginx binary file: "/usr/local/nginx-1.17.3/sbin/nginx"
nginx modules path: "/usr/local/nginx-1.17.3/modules"
nginx configuration prefix: "/usr/local/nginx-1.17.3/conf"
nginx configuration file: "/usr/local/nginx-1.17.3/conf/nginx.conf"
nginx pid file: "/usr/local/nginx-1.17.3/logs/nginx.pid"
nginx error log file: "/usr/local/nginx-1.17.3/logs/error.log"
nginx http access log file: "/usr/local/nginx-1.17.3/logs/access.log"
nginx http client request body temporary files: "client_body_temp"
nginx http proxy temporary files: "proxy_temp"
nginx http fastcgi temporary files: "fastcgi_temp"
nginx http uwsgi temporary files: "uwsgi_temp"
nginx http scgi temporary files: "scgi_temp"
(4)編譯nginx:
在nginx的目錄:
make && make install
看到如下信息說明編譯成功:
make[1]: Leaving directory `/home/apps/nginx-1.17.3'
(5)啓動nginx:
再也不nginx的解壓目錄操做了,
能夠去快捷方式的目錄去執行了(/usr/locl/nginx-1.17.3)
./nginx(在sbin目錄下),如沒有報錯說明成功
(6)使用瀏覽器進行檢測:
URL輸入當前nginx服務器的IP,頁面會出現Welcome to nginx!
反向代理的配置:
準備一臺web服務器 IP爲151
一、到/usr/local/nginx-1.17.3的config中進行配置
vim nginx.conf
注意:
必需要在http{}標籤裏面實現全部的配置
upstream tomcat_server(名字隨便起,開心就好){
server 192.168.23.151:8080;(分號不要忘了!!!!)
}
upstream必需要配置在server{}標籤的上面
有加載順序:
若是配置在了server的下面,最終由於加載順序緣故(自上而下的加載順序),server中加載不到upstream,則就會報錯!!!!
配置server{}標籤中location /{}標籤
把location /{}標籤中的全部內容所有刪除
location / {
proxy_pass http://tomcat_server;(upstream的名字,必需要保持一致,不然沒法找到映射)
}
2.從新nginx
須要在sbin目錄
./nginx -s reload
三、在151服務器上配置相應的Tomcat
四、檢測nginx的反向代理是否成功
在瀏覽器上訪問150的nginx服務器的8080端口,nginx會將請求發送至151的服務器上,訪問的是151的Tomcat