實驗環境:windows
實驗工具:nginx、tomcat
windows下安裝nginx非常簡單,去官網下載壓縮包解壓縮後並且雙擊解壓縮目錄下的nginx.exe程式即可。然後在瀏覽器輸入localhost可出現下圖,即表示nginx已經在運作。
nginx的工作流程是:對外,nginx是一個伺服器,所有的請求都先請求到nginx,然後再由nginx對內網進行請求的分發到tomcat ,然後tomcat處理完請求後將資料傳送給nginx,然後由nginx傳送給用戶,整個過程對用戶的感覺就是nginx在處理用戶請求。既然這樣子,nginx肯定需要進行配置,主要的設定檔是conf資料夾下的nginx.conf,因為我主要是進行了靜態與動態分離,所以沒有進行靜態檔案緩存,也沒有進行負載平衡的配置。
#user nobody; worker_processes 2; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; events { #nginx默认最大并发数是1024个用户线程 worker_connections 1024; } http { include mime.types; default_type application/octet-stream; #log_format main '$remote_addr - $remote_user [$time_local] "$request" ' # '$status $body_bytes_sent "$http_referer" ' # '"$http_user_agent" "$http_x_forwarded_for"'; #access_log logs/access.log main; sendfile on; #tcp_nopush on; #keepalive_timeout 0; #http1.1在请求完之后还会保留一段时间的连接,所以这里的timeout时长不能太大,也不能太小, #太小每次都要建立连接,太大会浪费系统资源(用户不再请求服务器) keepalive_timeout 65; #gzip on; server { #nginx监听80端口 listen 80; server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; #这里的/表示所有的请求 #location / { #将80端口的所有请求都转发到8080端口去处理,proxy_pass代表的是代理路径 # proxy_pass http://localhost:8080; # root html; # index index.html index.htm; #} #对项目名进行访问就去访问tomcat服务 location /student_vote { proxy_pass http://localhost:8080; } #对jsp和do结尾的url也去访问tomcat服务 location ~ \.(jsp|do)$ { proxy_pass http://localhost:8080; } #对js、css、png、gif结尾的都去访问根目录下查找 location ~ \.(js|css|png|gif)$ { root f:/javaweb; } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } # proxy the php scripts to apache listening on 127.0.0.1:80 # #location ~ \.php$ { # proxy_pass http://127.0.0.1; #} # pass the php scripts to fastcgi server listening on 127.0.0.1:9000 # #location ~ \.php$ { # root html; # fastcgi_pass 127.0.0.1:9000; # fastcgi_index index.php; # fastcgi_param script_filename /scripts$fastcgi_script_name; # include fastcgi_params; #} # deny access to .htaccess files, if apache's document root # concurs with nginx's one # #location ~ /\.ht { # deny all; #} } # another virtual host using mix of ip-, name-, and port-based configuration # #server { # listen 8000; # listen somename:8080; # server_name somename alias another.alias; # location / { # root html; # index index.html index.htm; # } #} # https server # #server { # listen 443 ssl; # server_name localhost; # ssl_certificate cert.pem; # ssl_certificate_key cert.key; # ssl_session_cache shared:ssl:1m; # ssl_session_timeout 5m; # ssl_ciphers high:!anull:!md5; # ssl_prefer_server_ciphers on; # location / { # root html; # index index.html index.htm; # } #} }
上面的設定中我把預設的location /給註解掉了,因為它會攔截所有的請求,無論是動態還是靜態,還有一個就是對靜態檔案的設定我配置成了javaweb的工作區間,接下來會說明為什麼。
因為之前寫的項目一直以來都是使用jsp內建物件來進行目錄的文件訪問,但是使用了nginx一切都需要改變,當我使用了nginx,並且項目沒有進行路徑的修改的時候,總是無法載入靜態文件,查看日誌發現這樣的錯誤:2016/05/20 18:27:30 [error] 6748#6936: *225 createfile() "f:/javaweb/student_vote/lib/images/username .png" failed (3: the system cannot find the path specified), client: 127.0.0.1, server: localhost, request: "get /student_vote/lib/images/username.png http/1.1", host: "localhost" , referrer: "http://localhost/student_vote/index.jsp",大致資訊是根據jsp中檔案的配置,nginx將會從/stdent_vote(這是我的專案名稱)/lib/images包中找到靜態檔案,而我又不想對專案文件做太大變化,其實還有一種方法是不使用jsp的內建對象,直接使用http://localhost/username.png來代替內建對象存取靜態文件,但是這樣改要改很多的地方,所以我就直接將web-inf資料夾下的lib資料夾拷到上一個資料夾,也就是該資料夾和web-inf資料夾是兄弟資料夾的關係。
透過上述操作,就實現了動態與靜態的分離了,無圖無真相,下面展示效果圖。
上圖可以看到server是「apache-coyote/1.1」。 tomcat的連接器就是這個。
而上面的server可以看到是nginx,說明對外而言接收請求的伺服器是nginx。
以上是怎麼使用nginx+tomcat實現靜態和動態頁面的分離的詳細內容。更多資訊請關注PHP中文網其他相關文章!

新年伊始,雷軍抖音跨年直播分享了2025年的三個新年願望,這場長達四個半小時的直播吸引了眾多關注。雷軍的三大願望分別是:第一,實現30萬輛汽車交付目標,緩解壓力,不再被進度追趕。第二,擁有更多旅行時間,欣賞各地美景、品嚐特色美食,並結合工作進行汽車測試。第三,堅持健身,計劃在健身房打卡100次,強身健體。雷軍在直播中坦言,2024年奔波於各地,行程安排緊湊,往往只能短暫停留,難以深入體驗當地文化。例如,在德國紐北賽道,他僅停留了8個小時。因此,在新的一年裡,他希望能夠更好地平衡工作與生活,在旅行

九號公司攜手品牌代言人易烊千璽打造的微電影《記憶奇旅》,在2024年榮獲多項權威媒體大獎,成為年度口碑佳作。這部作品以獨特的敘事風格、精湛的製作和真摯的情感,贏得了業界的高度讚譽。 2024年度獲獎榮譽:2024金觸點全球商業創新大獎-年度影視廣告2024中國廣告營銷大獎-娛樂營銷組銀獎2024TopDigital創新營銷獎-影視製作類金獎2024上海國際廣告節-微電影銀獎2024第十一屆中國創新傳播大獎-整合營銷類銀獎WISE2024商業之王-年度案例第31屆中國國際廣告節2024數字營銷實戰大

近日,PConline2024智臻科技獎正式揭曉,AGON愛攻QD-OLED電競顯示器AG326UD榮獲“年度技術創新”獎項。此項殊榮不僅代表了業界對其技術優勢與市場表現的高度認可,更充分體現了AGON愛攻在電競顯示器技術領域的創新能力和卓越成就。 01.瞰科技未來,品技術革命PConline智臻科技獎的權威含金量作為科技行業的風向標,PConline智臻科技獎憑藉其嚴謹的評審體系和深度的行業分析,成功贏得廣泛的行業認可。該獎項始終致力於表彰推動科技行業發展的優秀產品和品牌,涵蓋從技

SonyInteractiveEntertainment(SIE,索尼互动娱乐)首席架构师MarkCerny公开更多次世代主机PlayStation5Pro(PS5Pro)硬体细节,包括性能升级的AMDRDNA2.x架构GPU,以及与AMD合作代号「Amethyst」的机器学习/人工智慧计划。PS5Pro性能提升的重点仍集中在更强大的GPU、先进的光线追踪与AI驱动的PSSR超解析度功能等3大支柱上。GPU採用客制化的AMDRDNA2架构,索尼将其命名为RDNA2.x,它拥有部分RDNA3架构才

微軟針對Windows搜索功能的改進,目前已在歐盟地區部分WindowsInsider頻道展開測試。此前,整合後的Windows搜索功能飽受用戶詬病,體驗欠佳。此次更新將搜索功能拆分為本地搜索和基於Bing的網絡搜索兩部分,以提升用戶體驗。新版搜索界面默認進行本地文件搜索,如需進行網絡搜索,需點擊“MicrosoftBingWebSearch”標籤進行切換。切換後,搜索欄將顯示“MicrosoftBingWebSearch:”,用戶可在此輸入關鍵詞。此舉有效避免了本地搜索結果與Bing搜索結果混

為慶祝卡普空《怪物獵人》系列20週年,寶島社推出了一款別具匠心的雜誌套裝——《怪物獵人》主題燒烤計時器及隨行杯。該套裝將於12月27日在日本全國全家便利店發售,售價3498日元。這款雜誌套裝最大的亮點在於其互動式燒烤計時器,完美復刻了系列遊戲中的經典燒烤場景。計時器採用舊版烤肉工具的設計,配有LED火焰燈效和遊戲BGM,讓您在實際燒烤過程中也能體驗到狩獵的樂趣。旋轉手柄模擬翻轉烤肉,成功烤熟後更會播放“烤好了!”的語音提示。計時器尺寸約為9.5cm(高)x10.7cm(寬)x8cm(深),內置L

小米汽車一周年慶典,為車主送上新年大禮!繼去年交付量突破13萬輛後,小米汽車官方微博宣布,將為每位小米SU7車主及準車主贈送雷軍經典語錄“AreyouOK?”主題氣門芯帽,數量有限,免費領取!活動時間:2024年12月28日下午4點至2025年1月20日23:59:59。在2024年12月31日23:59:59前購車或完成訂單的用戶,即可免費獲得一套四件套“AreyouOK?”氣門芯帽。這款氣門芯帽於今年9月首發,採用亮黃色PVC和黃銅材質製成,黃銅芯直接嵌入,確保行駛安全,不易脫落。用途廣泛,

據報導,HDMI2.2標準有望在2025年CES展會前夕正式發布,HDMIForum計劃於1月6日公佈這一新一代視頻信號傳輸協議規範。 2017年發布的HDMI2.1標準,最大帶寬為48Gbps,支持4K144Hz和8K30Hz視頻傳輸,結合DSC技術最高可達10K120Hz。預計HDMI2.2將大幅提升帶寬,支持更高分辨率和刷新率,並採用新型線材。雖然具體規格尚未公開,但HDMI2.2勢必超越HDMI2.1的48Gbps帶寬和10240*4320分辨率限制。鑑於DisplayPort2.1在20


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

Atom編輯器mac版下載
最受歡迎的的開源編輯器

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

禪工作室 13.0.1
強大的PHP整合開發環境