部署項目到遠程服務器

JavaWeb 甚至 Html 都還沒開始學,我就鼓搗着部署到服務器的活,是否是有點裝逼嫌疑?html

其實,學習 JavaWeb 純屬於我的興趣,興趣的起源就是搭建本身的網站,因此在一開始寫 HelloWorld 的時候,就把它打包部署到遠程服務器上,讓任何人均可經過瀏覽器進行訪問(雖然並無人)個人 HelloWorld 頁面,這能夠大大激發個人積極性。java


 

  前期準備:
  • 首先咱們得有一個雲主機才行,露珠的是在騰訊雲租的最低配置的 centos7 服務器,在校大學生有優惠,一個月一塊錢。
  • 在 centos7 服務器上安裝 tomcat,具體步驟和在本地主機安裝沒什麼區別,詳見 Centos7 搭建 JavaWeb 開發環境
  • centos7 服務器跑起來以後,能夠打開本地主機的瀏覽器,輸入「服務器IP:8080」,如 123.207.59.123:8080,若是見到 Tomcat 歡迎頁面,說明一切正常。
  項目部署:
  1. 在本地主機上,打開 Eclipse ,選中要部署的 Web 項目,右鍵導出 war 文件,這裏導出的是 HelloWorld.war;
  2. 將 HelloWorld.war 直接複製到服務器 tomcat 目錄下的 webapps 目錄,因爲露珠的 tomcat 設置了自動部署選項,所以已經,能夠經過 123.207.59.123:8080/HelloWolrld 來訪問本頁面了。複製文件到服務器的操做爲:
    scp HelloWorld.war root@123.207.59.123:/usr/share/tomcat/webapps

  Emmm... 原來部署個 HelloWorld 這麼簡單的。可是有點不順眼的是,要訪問個人大 HelloWorld 項目時,不只要在 ip 地址後面輸入端口號,並且還要輸入 HelloWorld 的路徑。針對這兩個問題:web

  1. 在服務上,tomcat 的 webapps 目錄下(個人是 /usr/share/tomcat/webapps ),將 ROOT 文件備份而後刪除,其實就是更名啦:
    sudo mv ROOT root.bak
  2. 將咱們的 HelloWorld.war 更名爲 ROOT.war,立刻會看到一個 ROOT 從新被生成出來,此時只要 123.207.59.123:8080  就能夠訪問到此 HelloWorld 頁面;
  3. 接下來,去掉端口號。由於瀏覽器在訪問一個 URL 時,若 URL 沒有指定端口號,則瀏覽器默認訪問 80 號端口。所以只要將咱們的 Server 跑在 80 號端口,問題應該就解決了。改服務器端口號的方法,修改  /usr/share/tomcat/conf/server.xml,將裏面兩個 8080 修改成 80;
    sudo vim  /usr/share/tomcat/conf/server.xml
  4. 修改後 restart tomcat,按理說能夠了,可是卻出現沒法啓動 tomcat 的問題,查看 tomcat 目錄下的 logs,發現報的是這個異常:
    SEVERE: Error starting endpoint java.net.BindException: Permission denied <null>:80   

     

     查閱資料,說是非 root 用戶不能動用 1024 如下的端口號,可是很奇怪,我登錄就是用 root 身份呀;
  5. 另外一個通常的解決方案是使用 iptables 命令將全部到 80 的請求重定向到 8080,這就不用修改 server.xml (啊咧?改回來吧孩子):
     iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080

     

好了,如今就只要在瀏覽器中輸入 123.207.59.123,就能夠看到我那幾個閃着亮光的眉清目秀的 HelloWorld  了。vim

相關文章
相關標籤/搜索