一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

云服務器|WEB服務器|FTP服務器|郵件服務器|虛擬主機|服務器安全|DNS服務器|服務器知識|Nginx|IIS|Tomcat|

服務器之家 - 服務器技術 - Nginx - Mac中使用Nginx實現80端口轉發8080端口

Mac中使用Nginx實現80端口轉發8080端口

2019-12-07 16:55Mr小智 Nginx

端口轉發(Port forwarding),有時被叫做隧道,是安全殼(SSH) 為網絡安全通信使用的一種方法。端口轉發是轉發一個網絡端口從一個網絡節點到另一個網絡節點的行為,其使一個外部用戶從外部經過一個被激活的NAT路由器到達一個在

由于項目本身的原因,開發必須使用80端口實現,而在Unix內核中非Root用戶無法直接使用1024以下的端口,最初作者找到了pfctl的方式實現80端口轉發到8080端口實現訪問,經過親測出現了最為嚴重的問題,按照當時的方法配置好之后發現本機Mac通過localhost/<項目名>和127.0.0.1/<項目名>可以訪問,此時很是興奮,但出現了最根本的問題,那就是同局域網內其他機器通過訪問IP地址/<項目名>(例如:IP地址是192.168.0.106,那么其他機器訪問192.168.0.106/<項目名>)卻訪問不到,本來就是為了實現同網段開發和測試并行,結果其他機器卻無法訪問意味著這一次的搬磚是竹籃打水。
后來作者就利用Nginx進行80端口轉發到Tomcat的8080端口實現訪問,作者親測果然好使,好了廢話不多說了,干貨走起來~~下面就是詳細的配置步驟:

環境

Mac OS版本: 10.12.6
Nginx版本: 1.12.1

安裝

作者使用Homebrew安裝庫

?
1
2
brew search nginx
brew install nginx

這樣安裝好之后你會發現nginx的監聽端口是8080,并非80,那么此時你就需要更改Nginx的監聽端口,那么這一步就很關鍵了,不能按照以往傳統的方式去更改,讀者請仔細看一下部分。
由于Mac OS是自帶Apache服務的,它本身占用了80端口,首先你需要將Apache的監聽端口改為其他或者直接將其卸載,作者是改掉它的監聽端口為8011。

命令行

sudo vim /etc/apache2/httpd.conf

圖片中紅色框打開原本是80端口,作者已將其改為8011。

Mac中使用Nginx實現80端口轉發8080端口
apache_conf.png

改動之后,將其重啟 sudo /usr/sbin/apachectl restart
到這里,你已經將80端口釋放掉了。

其次你需要了解的就是plist文件。plist就是property list format的意思,是蘋果用來保存應用數據的格式,其實就是個xml。可以在/usr/local/opt/nginx 下找到nginx對應的plist文件,比如在作者電腦上是 homebrew.mxcl.nginx.plist 。
它的內容如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?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>

需要把這個文件復制到 /Library/LaunchDaemons 下,如果是 ~/Library/LaunchAgents 也可以,但兩者有區別。
前者是系統啟動時啟動,后者則是在用戶登錄時啟動。 接著執行launchctl load -w,如下:

sudo cp /usr/local/opt/nginx/*.plist /Library/LaunchDaemons
sudo launchctl load -w /Library/LaunchDaemons/homebrew.mxcl.nginx.plist

最后,重啟你的機器,你會發現nginx在80端口啟動了,試著通過http://localhost直接訪問,若出現下邊圖片的顯示則意味著你的Nginx的80端口已經配置完成,意味著你已經完成了六成的工作。

Mac中使用Nginx實現80端口轉發8080端口

如果你Tomcat的端口是8080,此時你便要啟動它,之所以在此時啟動Tomcat是為了先讓Tomcat占用8080端口,因為在后面配置Nginx轉發時需要配置8080端口的轉發,為了在那個時候不被Nginx搶先占用8080端口(這里也可以不啟動Tomcat,只要你在配置好nginx轉發配置后不要立刻啟動nginx服務即可,因為啟動它便直接占用8080端口實現轉發,而這時其實你還未使用8080端口)導致Tomcat的啟動的失敗,因此可以先讓Tomcat占用端口而后在進行Nginx對8080端口的映射轉發。
此時你的Tomcat已經啟動好了,此時我們開始配置Nginx的轉發配置:

命令行

sudo vim /usr/local/etc/nginx/nginx.conf

你只需關心server節點內的配置即可

Mac中使用Nginx實現80端口轉發8080端口
Nginx_conf.png

server下的結點:

listen:監聽80端口
server_name:轉發到哪個地址
proxy_pass:代理到哪個地址

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

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

相關命令操作 Apache命令

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

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

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

原文鏈接:http://www.jianshu.com/p/2e93c3ee6270

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 欧美激情精品久久久久久不卡 | 亚洲精品视频在线免费 | juliaann主妇疯狂 | 欧美日韩视频在线一区二区 | bnb998八度免费影院丫意浓 | 亚洲国产精品自在在线观看 | 草草国产成人免费视频 | 日本亚洲欧洲高清有码在线播放 | 四虎影视色费永久在线观看 | 农村妇女野外牲交一级毛片 | 久久精品中文闷骚内射 | 成人影院视频 | 精品高潮呻吟99AV无码视频 | 亚洲免费网站在线观看 | 成年人在线视频免费观看 | 国产裸露片段精华合集链接 | 日本久久啪啪婷婷激情五月 | 国内精品久久久久影院网站 | zol中关村在线官网 yy6080欧美三级理论 | 美女被灌浣肠失禁视频 | 国内精品久久久久影院中国 | 亚洲AV福利天堂一区二区三 | 色帝国亚洲欧美在线蜜汁tv | 国产乱人乱精一区二区视频密 | 国产精品成人免费 | 青青自拍视频 | 亚洲天堂一区二区在线观看 | 日韩精选视频 | 免费网址视频在线看 | 亚洲成av人片天堂网 | 午夜小视频免费观看 | 国产草草| 免费欧美视频 | 免费精品一区二区三区在线观看 | 日韩高清在线观看 | 四虎影视色费永久在线观看 | 青草碰人人澡人人澡 | 日韩欧美色 | 欧美精品一区二区三区免费 | 午夜精品一区 | 国产精品亚洲片在线观看麻豆 |