windows版 nginx配置反向代理實例教程 跳轉tomcat和php網站

抄自javascript

http://www.javashuo.com/article/p-trgarsqu-be.htmlphp

我的理解css

nginx端口設置爲80,簡稱nhtml

tomcat端口設置爲其餘,例如8080,簡稱tjava

php網站和javaweb網站域名解析到服務器上面node

當訪問java域名時,n判斷爲java網站,就跳轉到tomcatnginx

當訪問php域名時,n判斷爲php網站,就不跳轉了web

n就是個快遞員segmentfault

 

http中的server能夠添加多個,每個就是一個判斷吧(大概)瀏覽器

下面是個人一個n的配置文件,第一個server是自帶,第二個是判斷javaseb的

#  power by www.phpStudy.net 
#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    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;
    keepalive_timeout  65;
    #tcp_nodelay on;
  fastcgi_connect_timeout 300;
  fastcgi_send_timeout 300;
  fastcgi_read_timeout 300;
  fastcgi_buffer_size 128k;
  fastcgi_buffers 4 128k;
  fastcgi_busy_buffers_size 256k;
  fastcgi_temp_file_write_size 256k;

  #gzip  on;
  gzip on;
  gzip_min_length  1k;
  gzip_buffers     4 32k;
  gzip_http_version 1.1;
  gzip_comp_level 2;
  gzip_types       text/plain application/x-javascript text/css application/xml;
  gzip_vary on;
  gzip_disable "MSIE [1-6].";

  server_names_hash_bucket_size 128;
  client_max_body_size     100m; 
  client_header_buffer_size 256k;
  large_client_header_buffers 4 256k;

        server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;
            root   "C:/php/XXX/WWW/test";
        location / {
            index  index.php index.html index.htm l.php;
           autoindex  off;
        }

        #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   "C:/php/XXX/WWW/test";
        }

        # 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(.*)$  {
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_split_path_info  ^((?U).+\.php)(/?.+)$;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            fastcgi_param  PATH_INFO  $fastcgi_path_info;
            fastcgi_param  PATH_TRANSLATED  $document_root$fastcgi_path_info;
            include        fastcgi_params;
        }

        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /\.ht {
        #    deny  all;
        #}
    }
    server{
        listen       80; 
        server_name  www.XXX.com;
        #charset koi8-r;
        #access_log  logs/host.access.log  main;
        location  / {
        proxy_pass   http://www.XXX.com:8080;
        index  index.html index.htm;
        }
    }
    

    # 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;
    #    server_name  localhost;

    #    ssl                  on;
    #    ssl_certificate      cert.pem;
    #    ssl_certificate_key  cert.key;

    #    ssl_session_timeout  5m;

    #    ssl_protocols  SSLv2 SSLv3 TLSv1;
    #    ssl_ciphers  HIGH:!aNULL:!MD5;
    #    ssl_prefer_server_ciphers   on;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}

include vhosts.conf;

}

 

如下是摘抄的內容

 

Nginx是一款輕量級Web 服務器/反向代理服務器及電子郵件(IMAP/POP3)代理服務器,並在一個BSD-like 協議下發行。其特色是佔有內存少,併發能力強。

下面就詳細的說一說如何用Nginx實現反向代理。

首先:來作點準備工做,最少兩個tomcat,另外設置兩個域名並解析到本地ip(由於nginx是直接配置域名)

(1)準備兩個tomcat

分別設置兩個tomcat的/conf/server.xml中的端口號,以下

tomcat1端口號分別設置爲:8205    8280   8209

tomcat2端口號分別設置爲:8215    8281   8219

 

(2)添加測試內容

分別刪除目錄webapps下全部文件,新建一個文件夾ROOT,並在該目錄下新建index.html

內容能夠設置爲:這裏是8280端口。(另外一個:這裏是8281端口。)

 

(3)啓動兩個tomcat

 

(4)分別訪問兩個tomcat下的項目

訪問下面兩個網址:

127.0.0.1/8280

127.0.0.1/8281

若是可以訪問到對應的index.html文件就說明tomcat配置且啓動成功。

 

(5)設置兩個域名並作解析

修改hosts文件,目的是爲了設置2個域名, tomcat1.com和 tomcat2.com而且解析到本地ip:127.0.0.1

路徑:C:\Windows\System32\drivers\etc

打開hosts文件,加上(若是修改後沒法保存,能夠把hosts文件複製到桌面,修改完成後再替換原有hosts文件)

添加內容以下:

127.0.0.1 tomcat1.com
127.0.0.1 tomcat2.com

 

(6)測試域名是否解析成功

127.0.0.1/8280;127.0.0.1/8281分別修改成

tomcat1.com:8280;tomcat2.com:8281

 

若是顯示結果如上圖所示,說明域名設置並解析成功。

 

下面開始正式配置Nginx服務器的方向代理。

 

1. 下載、安裝Nginx服務器

 

輸入網址:http://nginx.org/en/download.html ,選個合適的版本,下載後解壓到合適的路徑。

解壓後,如圖所示:nginx.exe能夠直接運行,可是不建議。

2. 配置反向代理

 

打開/conf/nainx.conf文件,刪除server{ …… },或者註銷掉

從新添加server{  }

listen:監聽的端口號

server_name: 訪問域名

location :這裏配置爲/   直接匹配端口下的默認ROOT下的項目,location內容很普遍,

參見:http://www.javashuo.com/article/p-firddlap-hx.html

proxy_pass  :爲項目的實際訪問地址

複製代碼
server {
        listen       80; 
        server_name  tomcat1.com;
        #charset koi8-r;
        #access_log  logs/host.access.log  main;
        location  / {
        proxy_pass   http://127.0.0.1:8280;
        index  index.html index.htm;
        }
    }
server {
        listen       80;
        server_name  tomcat2.com;
        #charset koi8-r;
        #access_log  logs/host.access.log  main;
        location / {
        proxy_pass   http://127.0.0.1:8281;
        index  index.html index.htm;
        }
    }
複製代碼

 

3.啓動、關閉、重啓Nginx服務器

 

打開cmd.exe運行命令。

注意:必定要在nginx.exe文件所在的文件夾下操做。

(1)啓動:

H:\nginx-1.12.2>start nginx

或H:\nginx-1.12.2>nginx.exe

注:建議使用第一種,第二種會使你的cmd窗口一直處於執行中,不能進行其餘命令操做。

 

(2)中止:

H:\nginx-1.12.2>nginx.exe -s stop

或H:\nginx-1.12.2>nginx.exe -s quit

注:stop是快速中止nginx,可能並不保存相關信息;quit是完整有序的中止nginx,並保存相關信息。

 

(3)從新載入Nginx:

H:\nginx-1.12.2>nginx.exe -s reload

當配置信息修改,須要從新載入這些配置時使用此命令。

 

(4)從新打開日誌文件:

H:\nginx-1.12.2>nginx.exe -s reopen

 

4. 測試是否配置成功

 

輸入域名:tomcat1.com和tomcat2.com

 

若是輸入域名後顯示如上圖,即爲成功配置。

 

5.可能會遇到的問題(進程關閉失敗)

 

在使用的過程當中,你可能會遇到一個很奇葩的問題,就是當關閉命令執行了無數遍,頁面卻仍是能夠直接用域名訪問。

這個時候就說明你的進程並無真正關閉,咱們能夠用命令來查詢一下:

cmd中輸入:netstat -an|find "0:80"

若是有,說明真的沒有關閉這個進程。沒有,那就看看是否是瀏覽器緩存的問題。

針對進程不能正常關閉,能夠用以下命令來關閉:taskkill /F /IM nginx.exe > nul

 

以上就是用nginx服務器作反向代理服務器的所有內容,但願對你有所幫助。

相關文章
相關標籤/搜索