Mac中使用Nginx实现80端口转发8080端口

  

由于项目本身的原因,开发必须使用80端口实现,而在Unix内核中非根用户无法直接使用1024以下的端口,最初作者找到了pfctl的方式实现80端口转发8080到端口实现访问,经过亲测出现了最为严重的问题,按照当时的方法配置好之后发现本Mac机通过localhost/& lt;项目名祝辞和127.0.0.1/& lt;项目名祝辞可以访问,此时很是兴奋,但出现了最根本的问题,那就是同局域网内其他机器通过访问IP地址/& lt;项目名祝辞(例如:IP地址是192.168.0.106,那么其他机器访问192.168.0.106/& lt;项目名祝辞)却访问不到,本来就是为了实现同网段开发和测试并行,结果其他机器却无法访问意味着这一次的搬砖是竹篮打水。
  后来作者就利用Nginx进行80端口转发到Tomcat的8080端口实现访问,作者亲测果然好,使好了废话不多说了,干货走起来~ ~下面就是详细的配置步骤:

  

<强>环境

  

Mac OS版本:10.12.6
  Nginx版本:1.12.1

  

<>强安装

  

作者使用自制程序安装库

        酿造搜索nginx   酿造安装nginx      

这样安装好之后你会发现nginx的监听端口是8080,并80年非,那么此时你就需要更改nginx的监听端口,那么这一步就很关键了,不能按照以往传统的方式去更改,读者请仔细看一下部分。
  由于Mac OS是自带Apache服务的,它本身占用了80端口,首先你需要将Apache的监听端口改为其他或者直接将其卸载,作者是改掉它的监听端口为8011 .

  

<>强命令行

  

<代码> sudo vim/etc/apache2/httpd.参看
  

  

图片中红色框打开原本是80年端口,作者已将其改为8011 .

  

 Mac中使用Nginx实现80端口转发8080端口”> <br/>
  apache_conf.png </p>
  <p>改动之后,将其重启<代码> sudo/usr/sbin/apachectl重启</代码> <br/>
  到这里,你已经80年将端口释放掉了。</p>
  <p>其次你需要了解的就是plist文件.plist就是属性列表格式的意思,是苹果用来保存应用数据的格式,其实就是个xml。可以在/usr/地方/opt/nginx下找到nginx对应的plist文件,比如在作者电脑上是homebrew.mxcl.nginx。plist。<br/>
  它的内容如下:<br/>
  </p>
  
  <pre类=   & lt; & # 63; xml version=" 1.0 " encoding=" utf - 8 " & # 63;比;   & lt; !DOCTYPE plist公共”——//苹果//DTD plist 1.0//EN”“http://www.apple.com/DTDs/PropertyList-1.0.dtd”的在   & lt; plist version=" 1.0 "比;   & lt; dict>   & lt; key> Label   & lt; string> homebrew.mxcl.nginx   & lt; key> RunAtLoad   & lt;真实/比;   & lt; key> KeepAlive   & lt;假/比;   & lt; key> ProgramArguments   & lt; array>   & lt; string>/usr/地方/opt/nginx/bin/nginx   & lt; string> -g   & lt; string>守护进程;& lt;/string>   & lt;/array>   & lt; key> WorkingDirectory   & lt; string>/usr/local   & lt;/dict>   & lt;/plist>   之前      

需要把这个文件复制到/图书馆/LaunchDaemons下,如果是~/图书馆/LaunchAgents也可以,但两者有区别。
  前者是系统启动时启动,后者则是在用户登录时启动。接着执行launchctl负载- w,如下:

  

sudo cp/usr/local/opt/nginx/*.plist/图书馆/LaunchDaemons
  sudo launchctl负载- w/图书馆/LaunchDaemons/homebrew.mxcl.nginx.plist

  

最后,重启你的机器,你会发现nginx在80端口启动了,试着通过http://localhost直接访问,若出现下边图片的显示则意味着你的nginx的80端口已经配置完成,意味着你已经完成了六成的工作。

  

 Mac中使用Nginx实现80端口转发8080端口”> <br/>
  </p>
  <p>如果你Tomcat的端口是8080年,此时你便要启动它,之所以在此时启动Tomcat是为了先让Tomcat占用8080端口,因为在后面配置Nginx转发时需要配置8080端口的转发,为了在那个时候不被Nginx抢先占用8080端口(这里也可以不启动Tomcat,只要你在配置好Nginx转发配置后不要立刻启动Nginx服务即可,因为启动它便直接占用8080端口实现转发,而这时其实你还未使用8080端口)导致Tomcat的启动的失败,因此可以先让Tomcat占用端口而后在进行Nginx对8080端口的映射转发。<br/>
  此时你的Tomcat已经启动好了,此时我们开始配置Nginx的转发配置:</p>
  </p> <p>命令行
  <h2 class=Mac中使用Nginx实现80端口转发8080端口