五分鐘9步搞定nginx正向代理配置方法

2020-12-13 黑馬程式設計師

nginx在絕大數的場景中我們使用其用於做web中間件或反向代理使用,但是nginx實際上也提供了正向代理的功能。下面我們來進行nginx正向代理配置操作,以便大家能夠掌握nginx正向代理配置方法。

第一步:獲取nginx正向代理模塊

# git clone github.com/chobits/ngx_http_proxy_connect_module

第二步:下載nginx源碼包

# wget nginx.org/download/nginx-1.9.12.tar.gz

# tar xf nginx-1.9.12.tar.gz

第三步:通過補丁方法把上述下載的正向代理模塊導入到nginx模塊存儲目錄

# cd nginx-1.9.12/

# patch -p1 < /root/ngx_http_proxy_connect_module/patch/proxy_connect.patch

第四步:編譯安裝nginx

# yum -y install openssl-devel zlib-devel prce-devel

# ./configure --add-dynamic-module=/root/ngx_http_proxy_connect_module

# make && make install

第五步:配置所允許通過代理主機的主機列表

# cat /usr/local/nginx/conf/client-allow.conf

allow 127.0.0.1;

allow 192.168.216.1;

allow 192.168.216.185;

第六步:修改nginx配置文件

# cat /usr/local/nginx/conf/nginx.conf

#user nobody;

worker_processes 1;

#error_log logs/error.log;

#error_log logs/error.log notice;

#error_log logs/error.log info;

#pid logs/nginx.pid;

load_module /usr/local/nginx/modules/ngx_http_proxy_connect_module.so; #位置注意

events {

worker_connections 1024;

}

http {

include mime.types;

default_type application/octet-stream;

#log_format main '$remote_addr - $remote_user [$time_local] "$request" '

# '$status $body_bytes_sent "$http_referer" '

# '"$http_user_agent" "$http_x_forwarded_for"';

#access_log logs/access.log main;

sendfile on;

#tcp_nopush on;

#keepalive_timeout 0;

keepalive_timeout 65;

#gzip on;

server {

listen 8080; #代理埠

resolver 119.29.29.29; #域名解析伺服器

proxy_connect;

proxy_connect_allow 443 563;

proxy_connect_connect_timeout 10s;

proxy_connect_read_timeout 10s;

proxy_connect_send_timeout 10s;

location / {

proxy_pass $host;

proxy_set_header Host $host;

}

include client-allow.conf; #主機白名單

deny all; #除了主機白名單中的主機,拒絕所有

#error_page 404 /404.html;

# redirect server error pages to the static page /50x.html

#

error_page 500 502 503 504 /50x.html;

location = /50x.html {

root html;

}

# proxy the PHP scripts to Apache listening on 127.0.0.1:80

#

#location ~ .php$ {

# proxy_pass 127.0.0.1;

#}

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000

#

#location ~ .php$ {

# root html;

# fastcgi_pass 127.0.0.1:9000;

# fastcgi_index index.php;

# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;

# include fastcgi_params;

#}

# deny access to .htaccess files, if Apache's document root

# concurs with nginx's one

#

#location ~ /.ht {

# deny all;

#}

}

# another virtual host using mix of IP-, name-, and port-based configuration

#

#server {

# listen 8000;

# listen somename:8080;

# server_name somename alias another.alias;

# location / {

# root html;

# index index.html index.htm;

# }

#}

# HTTPS server

#

#server {

# listen 443 ssl;

# server_name localhost;

# ssl_certificate cert.pem;

# ssl_certificate_key cert.key;

# ssl_session_cache shared:SSL:1m;

# ssl_session_timeout 5m;

# ssl_ciphers HIGH:!aNULL:!MD5;

# ssl_prefer_server_ciphers on;

# location / {

# root html;

# index index.html index.htm;

# }

#}

}

第七步:檢查並啟動nginx服務

# /usr/local/nginx/sbin/nginx -t #檢查配置文件

# /usr/local/nginx/sbin/nginx # 啟動服務

# /usr/local/nginx/sbin/nginx -s stop #關閉

# /usr/local/nginx/sbin/nginx -s reload #重啟加載配置文件

# ss -anput | grep ":8080" #檢查埠

第八步:被代理主機配置

第九步:被代理主機驗證nginx正向代理可用性

# ss -anput | grep ":8080"

tcp LISTEN 0 128 *:8080 *:* users:(("nginx",pid=19515,fd=6),("nginx",pid=19514,fd=6))

tcp ESTAB 0 0 192.168.216.184:8080 192.168.216.185:35718 users:(("nginx",pid=19515,fd=11))

tcp ESTAB 0 0 192.168.216.184:8080 192.168.216.185:35712 users:(("nginx",pid=19515,fd=3))

首發於黑馬程式設計師官網

相關焦點

  • 從0開始,在Linux中配置Nginx反向代理、負載均衡、session共享、動靜分離
    (1)修改file-max一般我們不需要主動修改file-max值,Linux系統在安裝時會根據物理內存自動生成合適的大小,當然如果你認為它的調小了,也可以進行修改,方法如下:第二步:在文件末尾加入配置內容:fs.file-max = 2000000第三步:執行sysctl -
  • Centos上搭建Nginx方法詳解
    什麼是正向代理和反向代理A同學在大眾創業的大時代背景下開啟他的創業之路,目前他遇到的最大的一個問題就是啟動資金,於是他決定去找馬雲爸爸借錢,可想而知,最後碰一鼻子灰回來了,情急之下,他想到一個辦法,找關係開後門,經過一番消息打探,原來A同學的大學老師王老師是馬雲的同學,於是A同學找到王老師,託王老師幫忙去馬雲那借500萬過來,當然最後事成了。
  • 寫給前端快速入門的《Nginx 入門指南》
    sudo pkill \-9 nginx修改配置經常要用到的幾個文件路徑:/usr/local/etc/nginx/nginx.conf (nginx配置文件路徑)/usr/local/var/www (nginx伺服器默認的根目錄)/usr/local/Cellar/nginx/1.17.9 (nginx的安裝路徑)/usr/local
  • Nginx 反向代理、負載均衡圖文教程 !
    可以關注這個公眾號查看Nginx的基礎教程,點擊跳轉 一文讀懂並實操 Nginx 反向代理Nginx反向代理與負載均衡的實現用戶訪問網站的時候首先會訪問nginx伺服器,然後nginx伺服器再從伺服器集群中選擇壓力較小的伺服器,將該訪問請求引向該伺服器nginx配置下面修改配置方面我就從mac系統下來進行簡單的演示,如何安裝的話也暫以mac為主了,windows系統直接去
  • Nginx主配置文件nginx.conf史上超細中文詳解
    .. 1第2章 nginx配置解釋圖解... 1第3章 Nginx核心配置文件nginx.conf史上最細中文詳解... 23.1 定義Nginx運行的用戶和用戶組... 23.2 nginxworker進程數,即處理請求的進程(熟稱負責接客的服務員)... 23.3 cpu親和力配置,讓不同的進程使用不同的cpu. 2
  • 【行業資訊】nginxWebUI 1.9.2 發布,nginx 圖形化管理工具
    功能說明 本項目可以使用WebUI配置nginx的各項功能, 包括http協議轉發, tcp協議轉發, 反向代理, 負載均衡, 日誌管理和解析, ssl證書自動申請、續籤、配置等, 最終生成nginx.conf文件並覆蓋nginx的默認配置文件, 完成nginx的最終功能配置.
  • nginxWebUI 1.0.5 發布,nginx 可視化網頁配置工具
    功能說明本項目可以使用WebUI配置nginx的各項功能, 包括http協議轉發, tcp協議轉發, 反向代理
  • 誰說前端不需要懂-Nginx反向代理與負載均衡
    nginx配置下面修改配置方面我就從mac系統下來進行簡單的演示,如何安裝的話也暫以mac為主了,windows系統直接去Nginx官網下載安裝即可。我們之所以修改nginx配置,是為了做一些反向代理罷了proxy_passnginx反向代理主要通過proxy_pass來配置,將你項目的開發機地址填寫到proxy_pass後面,正常的格式為proxy_pass URL即可server { listen 80; location / { proxy_pass
  • Nginx---高性能的HTTP和反向代理web伺服器
    2020年上海的初雪,嘿嘿,愛了愛了######Nginx配置文件nginx.conf中文詳解#####
  • 負載均衡之LVS與Nginx對比
    正向代理與反向代理正向代理:區域網中的電腦用戶想要直接訪問伺服器是不可行的,伺服器可能Hold不住,只能通過代理伺服器來訪問,這種代理服務就被稱為正向代理,特點是客戶端知道自己訪問的是代理伺服器。反向代理:客戶端無法感知代理,因為客戶端訪問網絡不需要配置,只要把請求發送到反向代理伺服器,由反向代理伺服器去選擇目標伺服器獲取數據,然後再返回到客戶端。
  • welcome to nginx|nginx是什麼
    welcome to nginx|nginx是什麼welcome to nginx,歡迎來到 nginx 的世界,如果你是一個專業網站建設人員你可能接觸最多的就是阿帕奇 apache,現在更多的網站建設人員都開始使用 LINUX 伺服器,那麼 LINUX 伺服器更好的會使用到 nginx,那麼什麼是 nginx,nginx 有什麼用,那麼下面 welcome to nginx 的世界,下面小編將帶大家介紹 nginxnginx 是什麼,nginx 有什麼用。
  • nginx status狀態頁配置方法和中文說明
    西崑雲這篇文章主要介紹了nginx status狀態頁配置方法和中文說明,重點在配置例子和status的中文說明,需要的朋友可以參考下  nginx和php-fpm一樣內建了一個狀態頁,對於想了解nginx
  • CentOS7下Nginx+ModSecurity配置、安裝、測試教程
    註:用時幾分鐘。這一步我做了兩次,可能是因為網絡阻塞。如果不成功,多嘗試幾次。根據提示去到/usr/local/include,把對應的文件刪了(正常情況下/usr/local存放的是下載的包,不會有諸如bin、include、lib之類的解壓目錄,所以放心刪,一定是之前安裝過什麼才會存在這些目錄),然後回去/usr/local/Modsecurity執行make clean命令解決方法
  • nginx的location配置詳解
    多個location配置的情況下匹配順序為(參考資料而來,還未實際驗證,試試就知道了,不必拘泥,僅供參考):首先匹配 =,其次匹配^~, 其次是按文件中順序的正則匹配,最後是交給 / 通用匹配。當有匹配成功時候,停止匹配,按當前匹配規則處理請求。
  • Nginx 極簡教程(快速入門)
    Nginx 入門詳細安裝方法請參考:https://github.com/dunwu/nginx-tutorial/blob/master/install-nginx.mdnginx 的使用比較簡單nginx -s reopen     重新打開日誌文件。nginx -c filename   為 Nginx 指定一個配置文件,來代替預設的。nginx -t            不運行,僅僅測試配置文件。nginx 將檢查配置文件的語法的正確性,並嘗試打開配置文件中所引用到的文件。nginx -v            顯示 nginx 的版本。
  • Nginx負載均衡使用心得
    一、系統環境:1、nginx負載均衡/反向代理伺服器(1臺)環境:CentOS 5.5 nginx-0.7.65IP:192.168.0.102、後端PHP應用伺服器(2臺)環境:CentOS 5.***pache + PHPWebserver1 IP:192.168.0.20Webserver1 IP:192.168.0.21二、安裝配置1、安裝nginx負載均衡/反向代理伺服器安裝過程就不詳說了,可以參考我另一篇文章《nginx+tomcat負載均衡集群安裝配置》,nginx負載均衡/反向代理配置如下
  • Nginx+SpringBoot實現負載均衡
    比如我有3個伺服器,分別為A、B、C,然後使用Nginx進行負載均衡,使用輪詢策略,此時如果收到了9個請求,那麼會均勻的將這9個請求分發給A、B、Cf伺服器,每一個伺服器處理3個請求,這樣的話我們可以利用多臺機器集群的特性減少單個伺服器的壓力。
  • 「正向代理」和「反向代理」你還傻傻分不清?
    所以我就嘗試著向非 IT 工作者解釋「正向代理」和「反向代理」。接下來我會先嘗試面向大眾,來解釋「代理」的概念,再從專業的角度解釋「正向代理」和「反向代理」。在講代理的概念之前我先講個類比,也是我向我家老闆解釋的過程:
  • 這篇文章教你看明白 nginx-ingress 控制器
    主機 nginx一般 nginx 做主機反向代理(網關)有以下配置upstream order{ server 192.168.1.10:5001pod nginx-ingressnginx-ingress也是一種代理,是一個pod,外部的數據統一經過(必經)這個pod,然後通過該pod內部的nginx方向代理到各各服務(Endpoint)。nginx-ingress是ingress控制器插件的一種,這些插件有很多,比如istio-ingressgateway。
  • 使用Nginx提升網站訪問速度
    Nginx 簡介Nginx ("engine x") 是一個高性能的 HTTP 和 反向代理 伺服器,也是一個 IMAP/POP3/SMTP 代理伺服器。 Nginx 是由 Igor Sysoev 為俄羅斯訪問量第二的 Rambler.ru 站點開發的,它已經在該站點運行超過兩年半了。