日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

在 OS X 中使用 OpenResty

發布時間:2025/7/14 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在 OS X 中使用 OpenResty 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

為什么80%的碼農都做不了架構師?>>> ??

1. 移除 lighttpd

在 Mac OS X 上安裝lighttpd?的時候,我使用 launchctl 來實現 lighttpd 的自動啟動。現在,只需要 unload 即可。

launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.lighttpd.plist

這會立即停止 lighttpd 的運行。接下來,將 homebrew.mxcl.lighttpd.plist 從~/Library/LanuchAgents?目錄中移除。否則下次啟動系統的時候,lighttpd 又會啟動。

2. 配置 OpenResty 環境

2.1 編譯和安裝

OpenResty 的編譯和安裝流程,在官網上講得很清楚,我不再贅述。

在這里我假設 OpenResty 已經安裝到默認路徑?/usr/local/openresty?。

修改?/usr/local/openresty/nginx/conf/nginx.conf?,將其中的?server?段下的listen 80?改為?listen 8080?。

這是因為 80 端口只能被 root 用戶啟動。而在本文中我們是使用當前用戶啟動 nginx 的。

如果 8080 端口也被占用,請自行換成可用端口。

2.2 創建 plist 文件

launchctl 依賴一個 plist 配置文件來工作。我們需要手動創建這個文件。

plist 是一種標準的 xml 格式,這種格式的詳細介紹,可以看這里:cocos2d-x中的plist文件格式詳解?。

launchctl 對這個配置文件的格式有一些具體的要求,可以查看?launchd.plist?。

我們創建的?~/Library/LaunchAgents/org.openresty.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>org.openresty</string><key>ProgramArguments</key><array><string>/usr/local/openresty/nginx/sbin/nginx</string><string>-p</string><string>/usr/local/openresty/nginx</string></array><key>RunAtLoad</key><true/><key>KeepAlive</key><false/><key>HardResourceLimits</key><dict><key>NumberOfFiles</key><integer>512</integer></dict><key>SoftResourceLimits</key><dict><key>NumberOfFiles</key><integer>512</integer></dict> </dict> </plist>



注意其中 Label、Program和ProgramArguments 這三個 Key 是必須存在的。

KeepAlive 這個值建議設置成 false ,除非在 nginx.conf 中設置了?daemon off?。Wayne 在launchctl筆記?中作了解釋:

設定nginx登錄后自啟動后發現,由于缺省情況下是生成子進程后父進程立即退出,導致launchctl在KeepAlive配置的作用下反復啟動nginx,產生了很多錯誤信息,所以在設置守護進程的時候要注意規避這類問題,nginx可以通過設置daemon off;或者去除掉KeepAlive設置來解決。

2.3 載入任務

launchctl load ~/Library/LaunchAgents/org.openresty.plist

這條命令會直接啟動 openresty ,下次系統重啟的時候,也會自動啟動。

2.4 使用 80 端口

既然是自己用,那么使用 8080 總是讓人很不爽。要使用 80 端口,也很簡單。

首先,將?~/Library/LaunchAgents/org.openresty.plist?復制到/Library/LaunchDaemons/org.openresty.plist?:

cp ~/Library/LaunchAgents/org.openresty.plist /Library/LaunchDaemons/org.openresty.plist

/Library/LaunchDaemons?是給管理員使用的,在用戶登錄前生效,以 root 身份執行任務。

為什么不復制到?/Library/LaunchAgent?中呢?因為 Wayne 在?launchctl筆記?中提到:

LaunchAgents下的plist都會以當前登錄用戶的身份load進來……

然后,移除當前的監聽:

launchctl unload ~/Library/LaunchAgents/org.openresty.plist rm ~/Library/LaunchAgents/org.openresty.plist

最后,用 sudo 調用 launchctl:

sudo launchctl load /Library/LaunchDaemons/org.openresty.plist

當然,記得要把 nginx 配置文件中的監聽端口改成 80 。

3. 快捷方式

在開發過程中,經常需要重啟 nginx 進程。在我的電腦上,有兩個 nginx 進程,一個負責正常的 HTTP 服務;一個負責測試 OpenResty 功能。

我寫了一個腳本?openresty?用于快速操作 nginx 進程。

#!/bin/bash sign=${1:-reload} prefix=${2:-1}if [ "$prefix" = 1 ]; thenprefix='/usr/local/etc/openresty' elseprefix="$hhl/server" fiecho "nginx -s $sign -p $prefix" nginx -s "$sign" -p "$prefix"



在實際使用中,我只需要這樣調用就行了:

#!/bin/bash openresty reload 1 openresty reopen 2




轉載于:https://my.oschina.net/surjur/blog/486547

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的在 OS X 中使用 OpenResty的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。