抄自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是直接配置域名)
分別設置兩個tomcat的/conf/server.xml中的端口號,以下
tomcat1端口號分別設置爲:8205 8280 8209
tomcat2端口號分別設置爲:8215 8281 8219
分別刪除目錄webapps下全部文件,新建一個文件夾ROOT,並在該目錄下新建index.html
內容能夠設置爲:這裏是8280端口。(另外一個:這裏是8281端口。)
訪問下面兩個網址:
127.0.0.1/8280
127.0.0.1/8281
若是可以訪問到對應的index.html文件就說明tomcat配置且啓動成功。
修改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
127.0.0.1/8280;127.0.0.1/8281分別修改成
tomcat1.com:8280;tomcat2.com:8281
若是顯示結果如上圖所示,說明域名設置並解析成功。
下面開始正式配置Nginx服務器的方向代理。
輸入網址:http://nginx.org/en/download.html ,選個合適的版本,下載後解壓到合適的路徑。
解壓後,如圖所示:nginx.exe能夠直接運行,可是不建議。
打開/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; } }
打開cmd.exe運行命令。
注意:必定要在nginx.exe文件所在的文件夾下操做。
H:\nginx-1.12.2>start nginx
或H:\nginx-1.12.2>nginx.exe
注:建議使用第一種,第二種會使你的cmd窗口一直處於執行中,不能進行其餘命令操做。
H:\nginx-1.12.2>nginx.exe -s stop
或H:\nginx-1.12.2>nginx.exe -s quit
注:stop是快速中止nginx,可能並不保存相關信息;quit是完整有序的中止nginx,並保存相關信息。
H:\nginx-1.12.2>nginx.exe -s reload
當配置信息修改,須要從新載入這些配置時使用此命令。
H:\nginx-1.12.2>nginx.exe -s reopen
輸入域名:tomcat1.com和tomcat2.com
若是輸入域名後顯示如上圖,即爲成功配置。
在使用的過程當中,你可能會遇到一個很奇葩的問題,就是當關閉命令執行了無數遍,頁面卻仍是能夠直接用域名訪問。
這個時候就說明你的進程並無真正關閉,咱們能夠用命令來查詢一下:
cmd中輸入:netstat -an|find "0:80"
若是有,說明真的沒有關閉這個進程。沒有,那就看看是否是瀏覽器緩存的問題。
針對進程不能正常關閉,能夠用以下命令來關閉:taskkill /F /IM nginx.exe > nul
以上就是用nginx服務器作反向代理服務器的所有內容,但願對你有所幫助。