本篇內容主要講解“Nginx反向代理轉發(fā)Apache的配置”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強。下面就讓小編來(lái)帶大家學(xué)習“Nginx反向代理轉發(fā)Apache的配置”吧!
方案一:
將域名解析指向測試的地址;
開(kāi)放相關(guān)端口訪(fǎng)問(wèn)權限;
方案二:
將域名解析指向內網(wǎng)測試服務(wù)器的某一臺;(也方便用于測試httpsssl/' target='_blank'>證書(shū)問(wèn)題)
由該臺服務(wù)器轉發(fā)服務(wù)到相應需要的測試服務(wù)器;
開(kāi)發(fā)本臺測試服務(wù)器及轉發(fā)的測試服務(wù)器的端口權限;
最初,我們使用***種方案,但是每次都要麻煩好幾組的同事一起處理,才能搞定,因此啟用了方案二。開(kāi)了一臺中轉服務(wù)器,搭建nginx服務(wù),指向了我們當前測試的一臺服務(wù)器,其間,遇到的問(wèn)題。運維同事沒(méi)時(shí)間,交給我們自己來(lái)搞。好嘛,遇到問(wèn)題了。
問(wèn)題1、無(wú)法找到相應項目問(wèn)題?
因為nginx只負責將請求轉發(fā)到該臺機器的80或其他端口上了,并沒(méi)有仔細配置,因此無(wú)法找到對應的項目。 解決:在apache 中添加相應vhost配置,示例如下:
DocumentRoot /www/web/madmin/public_html#ServerName admin.123.com#ServerAlias 10.8.0.1ServerName 192.168.1.212ErrorDocument 400 /errpage/400.htmlErrorDocument 403 /errpage/403.htmlErrorDocument 404 /errpage/404.html#php_admin_value open_basedir /www/web/madmin:/tmpDeflateCompressionLevel 7AddOutputFilterByType DEFLATE text/html text/plain text/xml application/x-httpd-phpAddOutputFilter DEFLATE css js html htm gif jpg png bmp phpOptions FollowSymLinksAllowOverride AllOrder allow,denyAllow from all
這樣,服務(wù)器就能正常解析項目了。
問(wèn)題2、轉發(fā)過(guò)來(lái)后,客戶(hù)端ip獲取不到了,得到的只是一個(gè)代理服務(wù)器ip。
因為涉及到轉發(fā),所有的東西都是可能丟掉的,在這里,就需要將原始IP轉發(fā)過(guò)來(lái),如下:
upstream apache { server 127.0.0.1:80; keepalive 8;}upstream k_api { server 172.17.0.27:8080; keepalive 8;}server { listen 8091; server_name admin.123.com; location /api { proxy_pass http://k_api; proxy_set_header Host $host; #域名轉發(fā) proxy_redirect off; proxy_set_header X-Real-IP $remote_addr; #IP轉發(fā) proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_connect_timeout 60; proxy_read_timeout 600; proxy_send_timeout 600; } location / { proxy_pass http://apache/h6/; #轉發(fā)到服務(wù)器后,加相對目錄地址 proxy_set_header Host $host; proxy_redirect off; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_connect_timeout 60; proxy_read_timeout 600; proxy_send_timeout 600; }}
問(wèn)題3、使用nginx代理后,一直無(wú)法登錄,經(jīng)排查為cookie無(wú)法保存?
這個(gè)問(wèn)題困擾了我很久,也找了運維同事請教了很久,始終無(wú)法解決。最終,花了很多時(shí)間去找資料,自己做了許多嘗試,終于發(fā)現了。 原來(lái)是服務(wù)器時(shí)間差的問(wèn)題,nginx服務(wù)器的時(shí)區設置為 EST,apache服務(wù)器的時(shí)區設置是 CST,其時(shí)區相差8小時(shí)。
所以cookie無(wú)效了。具體原理就是,登錄后會(huì )在apache所在服務(wù)器設置cookie,有效期為1小時(shí)內有效,而轉到nginx后,時(shí)間卻往前了8小時(shí),因此服務(wù)器(或者是客戶(hù)認為)會(huì )認為該cookie是過(guò)期的,因此不會(huì )被保存起來(lái)了。
解決:更改nginx時(shí)區和時(shí)間,和apache一致。修改時(shí)間時(shí)區的命令如下:
#修改時(shí)間date -s 12:12:12 # 時(shí)間改為了 12:12:12date -s 20170112 # 日期更改為2017/01/12date -s ”12:12:12 2017-01-00“ # 時(shí)間改為了2017-01-00 12:12:12#修改時(shí)區tzselect #根據提示修改成相應時(shí)區
問(wèn)題4、監聽(tīng)端口問(wèn)題?
根據需要設置監聽(tīng)相應端口,注意端口不能沖突了!
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自本網(wǎng)站內容采集于網(wǎng)絡(luò )互聯(lián)網(wǎng)轉載等其它媒體和分享為主,內容觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如侵犯了原作者的版權,請告知一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容,聯(lián)系我們QQ:712375056,同時(shí)歡迎投稿傳遞力量。
Copyright ? 2009-2022 56dr.com. All Rights Reserved. 特網(wǎng)科技 特網(wǎng)云 版權所有 特網(wǎng)科技 粵ICP備16109289號
域名注冊服務(wù)機構:阿里云計算有限公司(萬(wàn)網(wǎng)) 域名服務(wù)機構:煙臺帝思普網(wǎng)絡(luò )科技有限公司(DNSPod) CDN服務(wù):阿里云計算有限公司 百度云 中國互聯(lián)網(wǎng)舉報中心 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證B2
建議您使用Chrome、Firefox、Edge、IE10及以上版本和360等主流瀏覽器瀏覽本網(wǎng)站