Mac環(huán)境下使用Nginx實(shí)現(xiàn)80端口轉(zhuǎn)發(fā)8080端口

由于項(xiàng)目本身的原因艾凯,開發(fā)必須使用80端口實(shí)現(xiàn)献幔,而在Unix內(nèi)核中非Root用戶無法直接使用1024以下的端口,最初作者找到了pfctl的方式實(shí)現(xiàn)80端口轉(zhuǎn)發(fā)到8080端口實(shí)現(xiàn)訪問趾诗,經(jīng)過親測出現(xiàn)了最為嚴(yán)重的問題蜡感,按照當(dāng)時的方法配置好之后發(fā)現(xiàn)本機(jī)Mac通過localhost/<項(xiàng)目名>和127.0.0.1/<項(xiàng)目名>可以訪問,此時很是興奮恃泪,但出現(xiàn)了最根本的問題郑兴,那就是同局域網(wǎng)內(nèi)其他機(jī)器通過訪問IP地址/<項(xiàng)目名>(例如:IP地址是192.168.0.106,那么其他機(jī)器訪問192.168.0.106/<項(xiàng)目名>)卻訪問不到悟泵,本來就是為了實(shí)現(xiàn)同網(wǎng)段開發(fā)和測試并行杈笔,結(jié)果其他機(jī)器卻無法訪問意味著這一次的搬磚是竹籃打水。
后來作者就利用Nginx進(jìn)行80端口轉(zhuǎn)發(fā)到Tomcat的8080端口實(shí)現(xiàn)訪問糕非,作者親測果然好使蒙具,好了廢話不多說了,干貨走起來~~下面就是詳細(xì)的配置步驟:

環(huán)境

Mac OS版本: 10.12.6
Nginx版本: 1.12.1

安裝

作者使用Homebrew安裝庫

brew search nginx
brew install nginx

這樣安裝好之后你會發(fā)現(xiàn)nginx的監(jiān)聽端口是8080朽肥,并非80禁筏,那么此時你就需要更改Nginx的監(jiān)聽端口,那么這一步就很關(guān)鍵了衡招,不能按照以往傳統(tǒng)的方式去更改,讀者請仔細(xì)看一下部分篱昔。
由于Mac OS是自帶Apache服務(wù)的,它本身占用了80端口始腾,首先你需要將Apache的監(jiān)聽端口改為其他或者直接將其卸載州刽,作者是改掉它的監(jiān)聽端口為8011。

命令行

sudo vim /etc/apache2/httpd.conf
圖片中紅色框打開原本是80端口浪箭,作者已將其改為8011穗椅。

apache_conf.png

改動之后,將其重啟 sudo /usr/sbin/apachectl restart
到這里奶栖,你已經(jīng)將80端口釋放掉了匹表。

其次你需要了解的就是plist文件门坷。plist就是property list format的意思,是蘋果用來保存應(yīng)用數(shù)據(jù)的格式袍镀,其實(shí)就是個xml默蚌。可以在/usr/local/opt/nginx 下找到nginx對應(yīng)的plist文件苇羡,比如在作者電腦上是 homebrew.mxcl.nginx.plist 绸吸。
它的內(nèi)容如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>homebrew.mxcl.nginx</string>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<false/>
<key>ProgramArguments</key>
<array>
<string>/usr/local/opt/nginx/bin/nginx</string>
<string>-g</string>
<string>daemon off;</string>
</array>
<key>WorkingDirectory</key>
<string>/usr/local</string>
</dict>
</plist>

需要把這個文件復(fù)制到 /Library/LaunchDaemons 下,如果是 ~/Library/LaunchAgents 也可以宣虾,但兩者有區(qū)別惯裕。
前者是系統(tǒng)啟動時啟動,后者則是在用戶登錄時啟動绣硝。 接著執(zhí)行l(wèi)aunchctl load -w蜻势,如下:

sudo cp /usr/local/opt/nginx/*.plist /Library/LaunchDaemons

sudo chown root /Library/LaunchDaemons/homebrew.mxcl.nginx.plist
執(zhí)行上面的命令首先給文件賦權(quán)限,而后執(zhí)行下面的命令
sudo launchctl load -w /Library/LaunchDaemons/homebrew.mxcl.nginx.plist

最后鹉胖,重啟你的機(jī)器握玛,你會發(fā)現(xiàn)nginx在80端口啟動了,試著通過http://localhost直接訪問甫菠,若出現(xiàn)下邊圖片的顯示則意味著你的Nginx的80端口已經(jīng)配置完成挠铲,意味著你已經(jīng)完成了六成的工作。

Nginx歡迎頁面

如果你Tomcat的端口是8080寂诱,此時你便要啟動它拂苹,之所以在此時啟動Tomcat是為了先讓Tomcat占用8080端口,因?yàn)樵诤竺媾渲肗ginx轉(zhuǎn)發(fā)時需要配置8080端口的轉(zhuǎn)發(fā)痰洒,為了在那個時候不被Nginx搶先占用8080端口(這里也可以不啟動Tomcat瓢棒,只要你在配置好nginx轉(zhuǎn)發(fā)配置后不要立刻啟動nginx服務(wù)即可,因?yàn)閱铀阒苯诱加?080端口實(shí)現(xiàn)轉(zhuǎn)發(fā)丘喻,而這時其實(shí)你還未使用8080端口)導(dǎo)致Tomcat的啟動的失敗脯宿,因此可以先讓Tomcat占用端口而后在進(jìn)行Nginx對8080端口的映射轉(zhuǎn)發(fā)。
此時你的Tomcat已經(jīng)啟動好了泉粉,此時我們開始配置Nginx的轉(zhuǎn)發(fā)配置:

命令行

sudo vim /usr/local/etc/nginx/nginx.conf
你只需關(guān)心server節(jié)點(diǎn)內(nèi)的配置即可

Nginx_conf.png

server下的結(jié)點(diǎn):

listen:監(jiān)聽80端口
server_name:轉(zhuǎn)發(fā)到哪個地址
proxy_pass:代理到哪個地址

這其中幾項(xiàng)配置完畢连霉,我們將Nginx重啟(重啟是需要切換到Nginx目錄下的) sudo /usr/local/Cellar/nginx/1.12.1/bin/nginx -s reload

到這里所有的操作都已完畢,現(xiàn)在你和你同一網(wǎng)段下的其他伙伴就可以通過直接訪問IP地址/<項(xiàng)目名> 訪問你的Tomcat項(xiàng)目了嗡靡。

相關(guān)命令操作

Apache命令

停止服務(wù):sudo /usr/sbin/apachectl stop
開啟服務(wù):sudo /usr/sbin/apachectl start
重啟服務(wù):sudo /usr/sbin/apachectl restart

Nginx命令(需要在Nginx的目錄下執(zhí)行跺撼,目錄:/usr/local/Cellar/nginx/1.12.1/bin/)

開啟:sudo nginx
重啟:sudo nginx -s reload
關(guān)閉
首先 ,查詢nginx主進(jìn)程號(帶有master標(biāo)識的進(jìn)程):ps -ef|grep nginx
正常停止 sudo kill -QUIT 主進(jìn)程號
快速停止 sudo kill -TERM 主進(jìn)程號

感謝以下博客的博主

http://www.cnblogs.com/kavlez/p/start-nginx-on-port-80-at-os-x.html
http://blog.csdn.net/seafishyls/article/details/44546809
http://www.cnblogs.com/94cool/p/3927084.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末讨彼,一起剝皮案震驚了整個濱河市财边,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌点骑,老刑警劉巖酣难,帶你破解...
    沈念sama閱讀 206,378評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異黑滴,居然都是意外死亡憨募,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評論 2 382
  • 文/潘曉璐 我一進(jìn)店門袁辈,熙熙樓的掌柜王于貴愁眉苦臉地迎上來菜谣,“玉大人,你說我怎么就攤上這事晚缩∥膊玻” “怎么了?”我有些...
    開封第一講書人閱讀 152,702評論 0 342
  • 文/不壞的土叔 我叫張陵荞彼,是天一觀的道長冈敛。 經(jīng)常有香客問我,道長鸣皂,這世上最難降的妖魔是什么抓谴? 我笑而不...
    開封第一講書人閱讀 55,259評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮寞缝,結(jié)果婚禮上癌压,老公的妹妹穿的比我還像新娘。我一直安慰自己荆陆,他們只是感情好滩届,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,263評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著被啼,像睡著了一般帜消。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上趟据,一...
    開封第一講書人閱讀 49,036評論 1 285
  • 那天券犁,我揣著相機(jī)與錄音,去河邊找鬼汹碱。 笑死粘衬,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的咳促。 我是一名探鬼主播稚新,決...
    沈念sama閱讀 38,349評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼跪腹!你這毒婦竟也來了褂删?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,979評論 0 259
  • 序言:老撾萬榮一對情侶失蹤冲茸,失蹤者是張志新(化名)和其女友劉穎屯阀,沒想到半個月后缅帘,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,469評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡难衰,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,938評論 2 323
  • 正文 我和宋清朗相戀三年钦无,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片盖袭。...
    茶點(diǎn)故事閱讀 38,059評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡失暂,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出鳄虱,到底是詐尸還是另有隱情弟塞,我是刑警寧澤,帶...
    沈念sama閱讀 33,703評論 4 323
  • 正文 年R本政府宣布拙已,位于F島的核電站决记,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏悠栓。R本人自食惡果不足惜霉涨,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,257評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望惭适。 院中可真熱鬧笙瑟,春花似錦、人聲如沸癞志。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,262評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽凄杯。三九已至错洁,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間戒突,已是汗流浹背屯碴。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留膊存,地道東北人导而。 一個月前我還...
    沈念sama閱讀 45,501評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像隔崎,于是被迫代替她去往敵國和親今艺。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,792評論 2 345

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

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理爵卒,服務(wù)發(fā)現(xiàn)虚缎,斷路器,智...
    卡卡羅2017閱讀 134,599評論 18 139
  • 第一章 Nginx簡介 Nginx是什么 沒有聽過Nginx钓株?那么一定聽過它的“同行”Apache吧实牡!Ngi...
    JokerW閱讀 32,642評論 24 1,002
  • 本來這篇文章是作為自己私有記錄的陌僵,所以也沒有MarkDown(主要是不怎么寫博客,也不熟悉)铲掐。稍微修改一下就發(fā)上來...
    v587的毅哥閱讀 3,050評論 0 22
  • 我們或因過去的牽絆拾弃,或因?qū)ξ磥淼募耐约斑@兩者與當(dāng)下的差距而心猿意馬摆霉,耗盡心神。我們相信奔坟,在擁有某種經(jīng)驗(yàn)携栋,財(cái)富,...
    Mercy2016閱讀 205評論 0 0
  • 一些常見的狀態(tài)碼為:200 – 服務(wù)器成功返回網(wǎng)頁 404 – 請求的網(wǎng)頁不存在 503 – 服務(wù)不可用 1xx(...
    yann_x閱讀 220評論 0 0