日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

如何让多端口网站用一个nginx进行反向代理实际场景分析

發(fā)布時間:2023/12/4 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何让多端口网站用一个nginx进行反向代理实际场景分析 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

前段時間公司要整合服務器資源,剛好趁這次機會將這些亂七八糟的服務器做一次梳理和整合,斷斷續(xù)續(xù)一個月遷移完成大概優(yōu)化掉了1/3的機器,完成之后遇到了一些問題,比如曾今零零散散部署在生產(chǎn)上一些可視化UI:apollo,kibana,grafana,jenkins 等等要么采用80端口,要么對公開放了其他端口,為了安全,現(xiàn)在不再開放非80之外的公網(wǎng)端口,由于機器少了,80端口不夠,這些可視化UI不再能直接訪問到了。所以需另尋其他出路。

一:用nginx做反向代理

為了解決這兩個問題,自然第一反應想到的就是使用反向代理,我的理想構思下應該是下圖這樣的。

既用戶所有的請求都經(jīng)過nginx,讓nginx來判斷當前url需要跳轉(zhuǎn)到哪一個后端代理上,比較好的策略應該是讓nginx來判斷當前的host是什么來決定跳轉(zhuǎn)到后端的哪一個webserver上,比如a.mip.com 就跳轉(zhuǎn)到apollo,j.mip.com 就跳轉(zhuǎn)到jenkins. 以此類推,這樣就可以完美解決了,是吧?在nginx中你完全可以使用rewrite模塊下if指令來進行判斷。

二:使用if指令

這里要提一下,nginx比較原始化,如果需使用第三方module,你還需要重新編譯nginx,用起來很麻煩,所以這里干脆使用OpenResty,它擴展了nginx,并且集成了很多成熟的lua模塊,自行下載最新的1.15.8,安裝方式和nginx一模一樣。

默認是安裝到/usr/local/目錄下,當你看到有一個openresty目錄表示你安裝成功。

[root@localhost local]# ls bin etc games include lib lib64 libexec openresty sbin share src [root@localhost local]# pwd /usr/local

接下來你可以使用 nginx -v 來看一下openresty版本號啥的。

[root@localhost sbin]# pwd /usr/local/openresty/nginx/sbin [root@localhost sbin]# [root@localhost sbin]# ./nginx -v nginx version: openresty/1.15.8.1

為了方便,我就直接使用nginx開啟三個server:

  • 192.168.23.129:80   nginx上開啟的第一個網(wǎng)站,就是proxy了。

  • 192.168.23.129:8001 nginx上開啟的第二個網(wǎng)站,模擬apollo。

  • 192.168.23.129:8002 nginx上開啟的第三個網(wǎng)站,模擬jenkins。

1. apollo的模擬

server {listen 8001;server_name somename alias another.alias;location / {root html;index apollo.html;}}

8001端口網(wǎng)站的默認頁是apollo.html,這個apollo.html所在路徑就是在nginx下的html目錄,如下所示。

[root@localhost html]# pwd /usr/local/openresty/nginx/html [root@localhost html]# ls 50x.html apollo.html index.html jenkins.html

2. jenkins的模擬

server {listen 8002;server_name somename alias another.alias;location / {root html;index jenkins.html;}}

jenkins.html的文件所在路徑如上所示哈。不再贅述。

3. proxy的模擬

server {listen 80;server_name localhost;location / {if ($host = "a.mip.com") {proxy_pass http://localhost:8001;}if ($host = "j.mip.com") {proxy_pass http://localhost:8002;}}

可以看到,只需要使用rewrite模塊下的if條件語句,通過$host系統(tǒng)變量判斷當前的url中的host的值跳轉(zhuǎn)到相應的網(wǎng)站。

4. host映射

好了,接下來只需要將?a.mip.com?和?j.mip.com?映射到nginx的ip地址192.168.23.129即可。因為這些域名方便記憶而不是真實存在的。

192.168.23.129 a.mip.com 192.168.23.129 j.mip.com

5. 啟動nginx

[root@localhost sbin]# ./nginx [root@localhost sbin]# [root@localhost sbin]# [root@localhost sbin]# netstat -tlnp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:8001 0.0.0.0:* LISTEN 3802/nginx: master tcp 0 0 0.0.0.0:8002 0.0.0.0:* LISTEN 3802/nginx: master tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 3802/nginx: master tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1172/sshd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1724/master tcp6 0 0 :::22 :::* LISTEN 1172/sshd tcp6 0 0 ::1:25 :::* LISTEN 1724/master

通過上圖可以看到,80,8001,8002 端口都已經(jīng)開啟了,接下來大家可以到瀏覽器去驗證一下了。

可以看到這個問題已經(jīng)很完美的解決了,好了,這就是本篇和大家聊到的實際場景中遇到的一個問題,希望本篇對你有幫助,以下是全部的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;events {worker_connections 1024; }http {include mime.types;default_type application/octet-stream;log_format main '$host ----> $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 80;server_name localhost;#charset koi8-r;#access_log logs/host.access.log main;# location = /get {# set_unescape_uri $key $arg_key; # this requires ngx_set_misc# redis2_query get $key;# redis2_pass 10.105.13.174:6379;# }location / {if ($host = "a.mip.com") {proxy_pass http://localhost:8001;}if ($host = "j.mip.com") {proxy_pass http://localhost:8002;}root html;index index.html index.htm;}#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 http://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 8001;server_name somename alias another.alias;location / {root html;index apollo.html;}}server {listen 8002;server_name somename alias another.alias;location / {root html;index jenkins.html;}}# 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进行反向代理实际场景分析的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 五月开心激情 | 国产精品中文字幕在线观看 | 欧美精品在欧美一区二区 | 丰满人妻熟女aⅴ一区 | 亚洲a∨无码无在线观看 | 日本网站黄色 | 国产黄a三级三级三级看三级男男 | 最新av观看 | 一级片网址| 午夜精华 | 午夜精品亚洲 | 成人福利在线观看 | 网址在线观看你懂的 | 久久午夜精品 | 久久久精品福利 | av天天堂 | 日本黄页网站免费大全 | 亚洲综合激情 | 国产欧美综合在线 | 天堂视频中文在线 | 午夜精品视频在线观看 | 亚洲乱码精品久久久久.. | 欧美激情视频一区二区三区在线播放 | 国产suv一区二区 | 国产男女猛烈无遮挡a片漫画 | 最好看的中文字幕 | 日本黄色片段 | av中出在线 | 操日本女人 | 成人午夜视频一区二区播放 | 黑人玩弄人妻一区二区三区四 | 亚洲欧美一区二区三区 | 鲁啊鲁在线视频 | 天堂精品一区二区三区 | 欧美丰满熟妇xxxxx | 久久久久免费视频 | 久久这里只精品 | 日韩精品h | av色先锋| 一区二区片| 日本一区二区三区久久 | 欧美黄色a视频 | 日韩中文字幕在线观看视频 | 日韩片在线 | 一级黄色片视频 | 宅男噜噜噜 | 五月综合激情日本mⅴ | av一片 | 亚洲综合中文 | 国产在线拍揄自揄拍 | 91欧美视频 | 东北少妇露脸无套对白 | 亚洲精选91 | 国产乱码一区二区三区在线观看 | 97caocao| 国产精选毛片 | 91香蕉国产在线观看 | 51av视频| 日本一本在线观看 | 亚洲视频你懂的 | 夜夜操免费视频 | 精品国产一区二区三区四区阿崩 | 欧美午夜精品理论片a级按摩 | 桃色视频在线 | 亚洲福利在线播放 | 日韩国产中文字幕 | 天天骑夜夜操 | 意大利少妇愉情理伦片 | 黄色a级大片 | 免费观看一级一片 | 日韩成年人视频 | 99热精品国产 | 日本一区二区在线播放 | 日日干日日摸 | 台湾男男gay做爽爽的视频 | 观看免费av | 无码国产精品96久久久久 | 97免费人妻无码视频 | 国产精品国产三级国产aⅴ无密码 | 日韩久久免费视频 | 懂色av成人一区二区三区 | 国产欧美在线 | 不卡av免费观看 | 欧美精品久久久久久久久久 | 高清一区二区视频 | 日韩欧美操 | 你懂的视频网站 | 免费在线不卡av | www.天堂在线| 大尺度网站在线观看 | 国产av精国产传媒 | 欧美性猛交ⅹxx乱大交 | 国产视频一区二区三区在线 | 人人艹在线 | xxx一区二区 | 成人黄色在线播放 | 午夜免费网站 | 一级做a在线观看 | 国产无套视频 |