天天看點

nginx介紹 - 部署到linux中

前言:

  tomcat理論并發處理能力, 大概500左右吧, 即使通過一些優化, 能提升一點, 但是, 并不能達到質變, 最多漲幾百. 對于非網際網路項目, 确實夠用了. 在企業中, 如果要達到500并發量, 首先你得有超過500個人吧, 罒ω罒, 其次, 就算你超過500人, 同時通路的可能性還是很低的. 但是對于網際網路項目, 500并發, 确實低了點. 

  如果想要提高并發量, 是不是可以換一個伺服器, 或者說, 在tomcat叢集前面, 加一個牛B的可接收高并發的伺服器, 然後讓這個伺服器, 配置設定到叢集中的tomcat中去, 讓他當一回上司, 來配置設定工作任務給不同的tomcat. 就像這樣:

nginx介紹 - 部署到linux中

如果有1200個并發,  對于單個tomcat來說, 出現超負荷工作的情況, 就可以大大避免. 以前要1打1200, 現在有了兩個夥伴, 就可以3打1200了, 平均下來, 變成1打400了, 沒問題的啊, 打得過, 是把. 1200并發, 對于nginx, 可以說是遊刃有餘, 因為他的并發處理能力, 能達到5w左右. 随着版本的更新, 這個是不是更高了, 那就不得而知了. 隻能說, 更牛B了.

nginx 簡介

一. 下載下傳位址: 

  http://nginx.org/en/download.html

二. 安裝

  java伺服器, 一般都選擇linux, 是以, nginx我也裝在linux環境中.

1. 環境準備

因為nginx是c語言寫的, 是以, 要安裝gcc環境

yum install gcc-c++      

nginx的http子產品使用pcre來解析正規表達式, so, 得裝

yum install -y pcre pcre-devel      

nginx使用zlib對http包的内容進行gzip, so, 得裝

yum install -y zlib zlib-devel      

nginx不僅支援http協定, 還支援https協定, so, 得裝

yum install -y openssl openssl-devel      

2. 安裝

解壓

tar -zxvf nginx-1.12.2.tar.gz -C /usr/java      

看一下, 解壓後的目錄

nginx介紹 - 部署到linux中

建立檔案夾

mkdir -p /var/temp/nginx      
nginx介紹 - 部署到linux中

這個目錄, 在一會configure指令執行的時候, 有用, 當然, 在執行完configure後, 再建立這個目錄, 也是可以的.

configure 指令: (有點長, 不過沒關系啊)

./configure \
--prefix=/usr/local/nginx \
--pid-path=/var/run/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi      

接下來執行make指令

make      

等到完成後, 繼續執行

make install      

執行完之後, 切換到 /usr/local/nginx 目錄看一下

cd /usr/local/nginx      
nginx介紹 - 部署到linux中

3. 啟動nginx

在 /usr/local/nginx 目錄下執行指令

sbin/nginx      

這時候, 看到控制台沒有任何消息顯示, 仿佛沒執行過一樣, 這時候, 可以查詢一下, 是否真的跑起來了

ps aux|grep nginx      
nginx介紹 - 部署到linux中

發現這裡有三條資訊, 前兩條是的, 第三條是執行ps指令出現的.

既然有啟動, 那自然就有關閉了.  

./nginx -s quit      

執行此條指令需要在 sbin 目錄中.

如果我在配置檔案中, 加入了一台伺服器配置資訊, 這時候, 如果我要關閉nginx, 在打開nginx, 體驗是不是感覺不太好啊, 有沒有重新整理的指令呢?

重新整理指令來了:

./nginx -s reload      

同樣的, 此條指令, 需要在sbin目錄中執行.

問題: 非得到sbin中去執行才行麼, 我安裝之後, 時間久了, 忘記目錄在哪裡了, 咋搞? 那個小笨笨記着麼?

不需要這麼做的. 可以使用 whereis 指令, 進行查找就行了

nginx介紹 - 部署到linux中

直接拿到路徑, cd進去, 就行了

三. 配置nginx開機啟動

    切換到/lib/systemd/system/目錄,建立并編輯nginx.service檔案

  vim /lib/systemd/system/nginx.service

 在檔案中拷貝以下内容

[Unit]
Description=nginx 
After=network.target 
   
[Service] 
Type=forking 
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true 
   
[Install] 
WantedBy=multi-user.target      

    退出并儲存檔案,執行systemctl enable nginx.service使nginx開機啟動

systemctl stop nginx.service    結束nginx

systemctl start nginx.service    啟動nginx

systemctl restart nginx.service    重新開機nginx

四. 驗證

跑起來之後, 有沒有辦法, 來直覺的驗證一下, 是否真的跑起來了?

由于linux, 我跑的虛拟機, 是以, 我在windows下, 使用谷歌浏覽器, 直接輸入linux的ip, 看看

nginx介紹 - 部署到linux中

這下很直覺了吧.

那我想問一下, 這個現實的内容, 應該是個html檔案吧, 這個html檔案在哪裡呢? 又是在哪裡配置的呢? 

上一篇: Autofac - 服務
下一篇: Autofac - 裝配

繼續閱讀