前言:
tomcat理論并發處理能力, 大概500左右吧, 即使通過一些優化, 能提升一點, 但是, 并不能達到質變, 最多漲幾百. 對于非網際網路項目, 确實夠用了. 在企業中, 如果要達到500并發量, 首先你得有超過500個人吧, 罒ω罒, 其次, 就算你超過500人, 同時通路的可能性還是很低的. 但是對于網際網路項目, 500并發, 确實低了點.
如果想要提高并發量, 是不是可以換一個伺服器, 或者說, 在tomcat叢集前面, 加一個牛B的可接收高并發的伺服器, 然後讓這個伺服器, 配置設定到叢集中的tomcat中去, 讓他當一回上司, 來配置設定工作任務給不同的tomcat. 就像這樣:
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBnLwMjM4kjN4UjMtATM0cDNzMTOwETMxADOxAjMtATO2ADN28CXxADOxAjMvwFM5YDM0YzLcd2bsJ2Lc12bj5ycn9Gbi52YucTMwIzcldWYtl2Lc9CX6MHc0RHaiojIsJye.png)
如果有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
看一下, 解壓後的目錄
建立檔案夾
mkdir -p /var/temp/nginx
這個目錄, 在一會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
3. 啟動nginx
在 /usr/local/nginx 目錄下執行指令
sbin/nginx
這時候, 看到控制台沒有任何消息顯示, 仿佛沒執行過一樣, 這時候, 可以查詢一下, 是否真的跑起來了
ps aux|grep nginx
發現這裡有三條資訊, 前兩條是的, 第三條是執行ps指令出現的.
既然有啟動, 那自然就有關閉了.
./nginx -s quit
執行此條指令需要在 sbin 目錄中.
如果我在配置檔案中, 加入了一台伺服器配置資訊, 這時候, 如果我要關閉nginx, 在打開nginx, 體驗是不是感覺不太好啊, 有沒有重新整理的指令呢?
重新整理指令來了:
./nginx -s reload
同樣的, 此條指令, 需要在sbin目錄中執行.
問題: 非得到sbin中去執行才行麼, 我安裝之後, 時間久了, 忘記目錄在哪裡了, 咋搞? 那個小笨笨記着麼?
不需要這麼做的. 可以使用 whereis 指令, 進行查找就行了
直接拿到路徑, 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, 看看
這下很直覺了吧.
那我想問一下, 這個現實的内容, 應該是個html檔案吧, 這個html檔案在哪裡呢? 又是在哪裡配置的呢?