(實(shí)戰(zhàn))nginx反向代理及重定向部署

  • 一顶掉、安裝的步驟蜒滩,參考 https://www.digitalocean.com/community/tutorials/how-to-install-linux-nginx-mysql-php-lemp-stack-on-centos-7

    簡(jiǎn)單而言,步驟如下所示:

    yum install epel-release
    
    yum install nginx
    
    systemctl start nginx
    

    這樣就成了映穗,訪問(wèn) http://<server_domain_name_or_IP>/ 即可看到Welcome頁(yè)面。

    systemctl enable nginx
    
  • 二、要讓php跟nginx搭配使用屯碴,下面是安裝php的步驟

    yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
    
    yum --disablerepo="*" --enablerepo="remi-safe" list php[7-9][0-9].x86_64
    
    yum-config-manager --enable remi-php72
    

    如果報(bào)沒找到 yum-config-manager 命令,那么先執(zhí)行 yum install yum-utils 安裝

    yum install php php-mysqlnd php-fpm
    
    php --version
    
    vim /etc/php-fpm.d/www.conf
    
    user = nginx
    group = nginx
    listen = /var/run/php-fpm/php-fpm.sock
    listen.owner = nginx
    listen.group = nginx
    listen.mode = 0660
    
    systemctl start php-fpm
    
    systemctl enable php-fpm
    
    vim /etc/nginx/conf.d/default.conf
    
    server {
        listen       80;
        server_name  server_domain_or_IP;
    
        root   /usr/share/nginx/html;
        index index.php index.html index.htm;
    
        location / {
            try_files $uri $uri/ =404;
        }
        error_page 404 /404.html;
        error_page 500 502 503 504 /50x.html;
    
        location = /50x.html {
            root /usr/share/nginx/html;
        }
    
        location ~ \.php$ {
            try_files $uri =404;
            fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include fastcgi_params;
        }
    }
    
    systemctl restart nginx
    
  • 三膊存、設(shè)置反向代理

    • 理解基本知識(shí)參考:https://www.cnblogs.com/ysocean/p/9392908.html

    • 在/etc/nginx/conf.d里增加自定義的配置文件导而,配置示例:

      server {
          listen       80;
          server_name aaa.jinglever.com bbb.jinglever.com;
          location / {
              proxy_pass $scheme://$host$request_uri;
          }
          resolver 8.8.8.8;
      
          access_log           /var/log/nginx/access_log;
          error_log            /var/log/nginx/error_log warn;
      }
      
      server {
          listen       443 ssl;
          ssl_certificate         /etc/letsencrypt/live/jinglever.com/fullchain.pem;
          ssl_certificate_key     /etc/letsencrypt/live/jinglever.com/privkey.pem;
      
          server_name aaa.jinglever.com bbb.jinglever.com;
          location / {
              proxy_pass $scheme://$host$request_uri;
          }
          resolver 8.8.8.8;
      
          access_log           /var/log/nginx/access_log;
          error_log            /var/log/nginx/error_log warn;
      }
      
    • 幾個(gè)細(xì)節(jié)的說(shuō)明:

      • server_name 支持把多個(gè)域名寫到一起
      • $host 是當(dāng)前訪問(wèn)的域名,注意這里不能用 $server_name
      • $request_uri 是當(dāng)前訪問(wèn)的uri
      • 一定要有 resolver隔崎,不然會(huì)報(bào)錯(cuò)
      • 上面實(shí)現(xiàn)的效果舉例:我在本地修改host今艺,把a(bǔ)aa.jinglever.com解析到這臺(tái)反向代理服務(wù)器的ip上,在我本地訪問(wèn)aaa.jinglever.com爵卒,會(huì)通過(guò)反向代理服務(wù)器最終訪問(wèn)到真正的aaa.jinglever.com服務(wù)器虚缎。
    • 注意事項(xiàng):

      • 必須有個(gè)兜底的server,即當(dāng)沒匹配上前面的server_name時(shí)钓株,有個(gè)默認(rèn)的server對(duì)請(qǐng)求進(jìn)行處理实牡。否則,nginx會(huì)把請(qǐng)求丟給上面的server享幽,即便server_name不匹配铲掐。試想,按照前面的配置值桩,且沒有兜底的server摆霉,如果在瀏覽器上直接通過(guò)ip訪問(wèn)進(jìn)來(lái),會(huì)有什么結(jié)果呢奔坟?答案就是:會(huì)無(wú)限循環(huán)代理訪問(wèn)直到系統(tǒng)文件打開數(shù)超限携栋。
      • 如果代理了ssl訪問(wèn),別忘了兜底ssl訪問(wèn)的server哦咳秉。
  • 四婉支、設(shè)置重定向

    • 在/etc/nginx/conf.d里增加自定義的配置文件,配置示例:

      server {
          listen       80;
          server_name ~(.*)\.jinglever\.cn$ ~(.*)\.jinglever\.net$;
          set $subdomain $1 ;
          rewrite ^/(.*)$ $scheme://$subdomain.howard.com/$1 permanent;
      
          access_log           /var/log/nginx/access_log;
          error_log            /var/log/nginx/error_log warn;
      }
      
      server {
          listen       443 ssl;
          ssl_certificate         /etc/letsencrypt/live/jinglever.cn/fullchain.pem;
          ssl_certificate_key     /etc/letsencrypt/live/jinglever.cn/privkey.pem;
      
          server_name ~(.*)\.mikesent\.cn$;
          set $subdomain $1 ;
          rewrite ^/(.*)$ $scheme://$subdomain.howard.com/$1 permanent;
      
          access_log           /var/log/nginx/ssl_request_log;
          error_log            /var/log/nginx/ssl_error_log warn;
      }
      
    • 幾個(gè)細(xì)節(jié)的說(shuō)明:

      • 將訪問(wèn)的域名里的子域名部分提取出來(lái)澜建,賦給 $subdomain向挖。
      • rewrite那行最后的 permanent蝌以,使得重定向code為301,表示永久重定向何之。如果要表示臨時(shí)重定向跟畅,就用 redirect
      • 實(shí)現(xiàn)的效果舉例:我訪問(wèn) aaa.bbb.jinglever.cn/ccc/ddd溶推,nginx會(huì)把訪問(wèn)重定向到 aaa.bbb.howard.com/ccc/ddd徊件。
  • 五、好用的工具網(wǎng)站

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末蒜危,一起剝皮案震驚了整個(gè)濱河市虱痕,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌辐赞,老刑警劉巖部翘,帶你破解...
    沈念sama閱讀 206,311評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異占拍,居然都是意外死亡略就,警方通過(guò)查閱死者的電腦和手機(jī)捎迫,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門晃酒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人窄绒,你說(shuō)我怎么就攤上這事贝次。” “怎么了彰导?”我有些...
    開封第一講書人閱讀 152,671評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵蛔翅,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我位谋,道長(zhǎng)山析,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,252評(píng)論 1 279
  • 正文 為了忘掉前任掏父,我火速辦了婚禮笋轨,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘赊淑。我一直安慰自己爵政,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,253評(píng)論 5 371
  • 文/花漫 我一把揭開白布陶缺。 她就那樣靜靜地躺著钾挟,像睡著了一般。 火紅的嫁衣襯著肌膚如雪饱岸。 梳的紋絲不亂的頭發(fā)上掺出,一...
    開封第一講書人閱讀 49,031評(píng)論 1 285
  • 那天徽千,我揣著相機(jī)與錄音,去河邊找鬼汤锨。 笑死罐栈,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的泥畅。 我是一名探鬼主播荠诬,決...
    沈念sama閱讀 38,340評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼位仁!你這毒婦竟也來(lái)了柑贞?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,973評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤聂抢,失蹤者是張志新(化名)和其女友劉穎钧嘶,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體琳疏,經(jīng)...
    沈念sama閱讀 43,466評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡有决,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,937評(píng)論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了空盼。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片书幕。...
    茶點(diǎn)故事閱讀 38,039評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖揽趾,靈堂內(nèi)的尸體忽然破棺而出台汇,到底是詐尸還是另有隱情,我是刑警寧澤篱瞎,帶...
    沈念sama閱讀 33,701評(píng)論 4 323
  • 正文 年R本政府宣布苟呐,位于F島的核電站,受9級(jí)特大地震影響俐筋,放射性物質(zhì)發(fā)生泄漏牵素。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,254評(píng)論 3 307
  • 文/蒙蒙 一澄者、第九天 我趴在偏房一處隱蔽的房頂上張望笆呆。 院中可真熱鬧,春花似錦闷哆、人聲如沸腰奋。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)劣坊。三九已至,卻和暖如春屈留,著一層夾襖步出監(jiān)牢的瞬間局冰,已是汗流浹背测蘑。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留康二,地道東北人碳胳。 一個(gè)月前我還...
    沈念sama閱讀 45,497評(píng)論 2 354
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像沫勿,于是被迫代替她去往敵國(guó)和親挨约。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,786評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容