1. 程式人生 > >FastDFS+nginx+tomcat在linux系統的配置

FastDFS+nginx+tomcat在linux系統的配置

系統環境:Centos 6.5

nginx版本:nginx-1.8.1

FastDFS版本:FastDFS_v5.05.tar

java版本:jdk-7u80-linux-x64.tar

tomcat版本:apache-tomcat-7.0.78

1.Nginx

1.1 Nginx在Centos上的安裝

nginx是一個使用c語言編寫的應用程式,主要用途是負載均衡和反向代理。作為範圍為:

1、http伺服器。Nginx是一個http服務可以獨立提供http服務。可以做網頁靜態伺服器。

2、虛擬主機。可以實現在一臺伺服器虛擬出多個網站。例如個人網站使用的虛擬主機。

3、反向代理,負載均衡。當網站的訪問量達到一定程度後,單臺伺服器不能滿足使用者的請求時,需要用多臺伺服器叢集可以使用

nginx做反向代理。可以平均分擔,不會因為某一臺伺服器出現宕機而無法使用。

安裝linux虛擬機器的步驟就不再說了,有興趣的可以自己搜,挺簡單的。首先因為nginx是c語言開發的,所以依賴GCC環境。在centos中,安裝命令如下:

yum install gcc-c++ 
下載GCC環境。如果是第一次安裝的話,會提示你本機沒有安裝。可以跟著提示安裝,大概5分鐘的樣子就下載好了。除此之外,nginx中的http模組需要用Pcre庫(Perl Compatible Regular Expressions)來解析正則表示式,還需要安裝Pcre庫。安裝命令如下:
yum install -y pcre pcre-devel

說明:pcre-devel是使用pcre開發的一個二次開發庫。nginx也需要這個庫。

ngixn使用zlib對http的內容進行解壓和壓縮,也需要安裝這個。安裝命令如下:

yum install -y zlib zlib-devel
nginx不僅支援http,也支援https(http+ssl不懂可以搜尋),所以為了安全,安裝OpenSSL,這是一個強大的安全套接字層密碼庫。安裝命令如下:
yum install -y openssl openssl-devel
到這一步,安裝所需要的庫已經好了。我們將nginx的原始碼上傳到伺服器,使用遠端工具SecureCRT(本人機器版本為Version 8.0.4)。


點選下一步

 

Hostname是IP地址。埠不用改。使用者名稱是就是安裝虛擬機器時候的使用者名稱。連線成功後,輸入

su -
輸入密碼,進入root使用者。按住Alt+P,直接將nginx的原始碼拖過來就可以了。

紅色矩形的就是nginx的目錄。進入目錄:

cd /home/mills
解壓
tar -zvxf nginx-1.81.tar.gz
在當前目錄會得到nginx-1.81.tar.gz的資料夾。
cd nginx1.8.1
ll
會看到有一個configure的檔案。我們就要先對他進行編譯。不過在編譯之前。我們需要先新建幾個目錄
mkdir /var/temp
mkdir /var/temp/nginx
或者使用
mkdir -p /var/temp/nginx
都可以達到目的。

建立完畢之後,回到/home/mills/nginx-1.8,1目錄下編譯

./configure \
--prefix=/usr/local/nginx \
--pid-path=/var/run/nginx/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
之後會有一個MakeFile的檔案。接著輸入先make,執行完畢make install。
make
makeinstall
到這裡就安裝完畢了。然後啟動nginx。進入目錄cd /usr/local/nginx/sbin  輸入
./nginx

就可以啟動,我們可以在本機上輸入192.168.83.130進行訪問。

看到這個頁面就是說訪問成功了。如果沒有看到,多半是防火牆的事情。輸入

vim /etc/sysconfig/iptables
新增一句
-A INPUT -p tcp -m state NEW -m tcp --dport 80 -j ACCEPT
這樣就打開了80埠。vim的使用就不多說了。i插入,:wq儲存退出
停止nginx服務,在/usr/local/nginx/sbin目錄下輸入
./nginx -s stop
當修改了nginx服務之後,不用停止在啟動,輸入
./nginx -s reload
就可以了

1.2 Nginx的配置

/usr/local/nginx/conf目錄下nginx.conf檔案是nginx的配置檔案。

主要的配置就是server這一塊


  # 很重要的虛擬主機配置
    server {
        listen       80;#監聽的埠
        server_name  itoatest.example.com;#域名
        root   /apps/oaapp;#訪問目錄
        charset utf-8;#編碼格式
        access_log  logs/host.access.log  main;
        #對 / 所有做負載均衡+反向代理
        location / {
            root   /apps/oaapp;
            index  index.jsp index.html index.htm;#html檔案
            proxy_pass        http://backend;  
            proxy_redirect off;
            # 後端的Web伺服器可以通過X-Forwarded-For獲取使用者真實IP
            proxy_set_header  Host  $host;
            proxy_set_header  X-Real-IP  $remote_addr;  
            proxy_set_header  X-Forwarded-For  $proxy_add_x_forwarded_for;
            proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
            
        }

就是說可以從

itoatest.example.com通過80埠訪問,預設開啟root目錄下的index.jsp頁面

修改完要重新載入配置檔案。

有一個很關鍵的地方,我在配置好fastDFS的時候,怎樣都在瀏覽器訪問不到,最後在nginx的配置檔案開頭加上了
user root;
就ok了。

1.3nginx的反向代理

我們先說說正向代理:就是多個電腦訪問代理伺服器,然後接入網際網路, 這裡面只有一臺伺服器。那麼反過來,反向代理,就有多個伺服器,比如你的電腦訪問一個百度,百度的首頁可能就有50個伺服器,不同的電腦訪問不同的伺服器,這樣就減緩了伺服器的壓力。可以通過多個tomcat來模擬。tomcat的上傳,解壓,還需要有jdk。這些不再敘述。nginx的配置檔案如下:
 upstream tomcats{
	server 192.168.25.148:8080 weight=4
	server 192.168.25.148:8081;
   }

   server {
        listen       80;
        server_name  tomcat.nginxtest.com;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            proxy_pass   http://tomcats;
            index  index.html index.htm;
        }
   }
當我們通過
tomcat.nginxtest.com
訪問伺服器的時候,下面的location就會將請求轉發到tomcats,我們通過upstream定義了tomcats,訪問的就是192.168.25.148:8080,熟悉java web開發的人知道,這個會訪問Tomcat的首頁。而後面的weight就定義了權重,也就是說,你用同一臺機器訪問500次的話,有400次訪問的是192.168.25.148:8080這個伺服器。預設為1.這就是負載均衡。

先睡覺,明天在寫。


參考文獻:http://seanlook.com/2015/05/17/nginx-install-and-config/