>운영 및 유지보수 >엔진스 >Mac에서 Nginx를 사용하여 포트 80을 포트 8080으로 전달하는 방법

Mac에서 Nginx를 사용하여 포트 80을 포트 8080으로 전달하는 방법

WBOY
WBOY앞으로
2023-05-11 21:49:161713검색

Environment

mac os version: 10.12.6
nginx version: 1.12.1

Installation

작가는 homebrew를 사용해 라이브러리를 설치합니다

brew search nginx
brew install nginx

이렇게 설치하고 나면 듣기가 되는 것을 알 수 있습니다. nginx의 포트가 80이 아니라 8080이라면 이때 nginx의 수신 대기 포트를 변경해야 합니다. 이 단계는 매우 중요하며 기존 방식으로는 변경할 수 없습니다. 독자 여러분, 이 부분을 주의 깊게 읽어보시기 바랍니다.
Mac OS에는 자체적으로 포트 80을 차지하는 자체 Apache 서비스가 제공되므로 먼저 Apache의 수신 포트를 다른 것으로 변경하거나 직접 제거해야 합니다. 작성자는 수신 포트를 8011로 변경했습니다.

명령줄

sudo vim /etc/apache2/httpd.confsudo 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 。
它的内容如下:

<?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<br>

사진의 빨간색 상자는 원래 포트 80을 열었지만 작성자가 8011로 변경했습니다.

Nginx를 사용하여 Mac에서 포트 80을 포트 8080으로 전달하는 방법 Mac에서 Nginx를 사용하여 포트 80을 포트 8080으로 전달하는 방법apache_conf .png

변경 후 다시 시작 sudo /usr/sbin/apachectl restart

이 시점에서 포트 80을 해제했습니다.

다음으로 알아야 할 것은 plist 파일입니다. plist는 속성 목록 형식을 의미합니다. 이는 Apple에서 응용 프로그램 데이터를 저장하는 데 사용하는 형식입니다. nginx에 해당하는 plist 파일은 /usr/local/opt/nginx에서 찾을 수 있습니다. 예를 들어 작성자 컴퓨터의 homebrew.mxcl.nginx.plist입니다.

내용은 다음과 같습니다.

rrreee

이 파일을 /library/launchdaemons에 복사해야 합니다. ~/library/launchdagents라면 역시 괜찮지만 둘 사이에는 차이가 있습니다.

전자는 시스템이 시작될 때 시작되고, 후자는 사용자가 로그인할 때 시작됩니다. 그런 다음 다음과 같이 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이 구성되었음을 의미합니다. 작업의 60%가 완료되었습니다.


Nginx를 사용하여 Mac에서 포트 80을 포트 8080으로 전달하는 방법

Tomcat의 포트가 8080이라면 이때 시작해야 합니다. 이때 Tomcat을 시작하는 이유는 Tomcat이 8080 포트를 먼저 점유하도록 하기 위한 것입니다. 8080의 포워딩을 구성해야 하기 때문입니다. 나중에 nginx 전달 구성 시 nginx는 8080 포트를 선점하지 않습니다. (nginx 전달 구성을 구성한 후 즉시 nginx 서비스를 시작하지 않는 한 여기서 tomcat을 시작할 수도 없습니다. 이를 시작하면 전달을 위해 8080 포트가 직접 점유되며, 이때 실제로는(포트 8080이 사용되지 않음) Tomcat 시작이 실패하게 됩니다. 따라서 먼저 Tomcat이 포트를 점유하도록 한 다음 nginx 매핑을 수행할 수 있습니다. 포트 8080을 전달합니다.

이 시점에서 Tomcat이 시작되었습니다. 이제 nginx의 전달 구성을 구성하기 시작합니다.


명령줄

sudo vim /usr/local/etc/nginx/nginx.conf<br>

서버 노드의 구성만 신경 쓰면 됩니다🎜🎜🎜🎜nginx_conf.png🎜🎜🎜서버 아래 노드: 🎜🎜listen: 포트 80 수신 🎜server_name: 🎜proxy_pass로 전달할 주소: which 🎜로 프록시할 주소 🎜여러 구성이 완료된 후 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/)🎜🎜Open: sudo nginx🎜Restart: sudo nginx -s reload🎜Close🎜먼저 nginx 기본 쿼리 프로세스 번호(마스터 로고가 있는 프로세스): ps -ef|grep nginx🎜일반적으로 중지 sudo kill -기본 프로세스 ID 종료🎜빠르게 sudo kill -term 기본 프로세스 ID 중지🎜

위 내용은 Mac에서 Nginx를 사용하여 포트 80을 포트 8080으로 전달하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제