抄自

https://www.cnblogs.com/j-star/p/8785334.html

个人理解

nginx端口设置为80,简称n

tomcat端口设置为其他,例如8080,简称t

php网站和javaweb网站域名解析到服务器上面

当访问java域名时,n判断为java网站,就跳转到tomcat

当访问php域名时,n判断为php网站,就不跳转了

n就是个快递员

http中的server可以添加多个,每一个就是一个判断吧(大概)

下面是我的一个n的配置文件,第一个server是自带,第二个是判断javaseb的

  1. # power by www.phpStudy.net
  2. #user nobody;
  3. worker_processes 1;
  4.  
  5. #error_log logs/error.log;
  6. #error_log logs/error.log notice;
  7. #error_log logs/error.log info;
  8.  
  9. #pid logs/nginx.pid;
  10.  
  11. events {
  12. worker_connections 1024;
  13. }
  14.  
  15. http {
  16. include mime.types;
  17. default_type application/octet-stream;
  18.  
  19. #log_format main '$remote_addr - $remote_user [$time_local] "$request" '
  20. # '$status $body_bytes_sent "$http_referer" '
  21. # '"$http_user_agent" "$http_x_forwarded_for"';
  22.  
  23. #access_log logs/access.log main;
  24.  
  25. sendfile on;
  26. #tcp_nopush on;
  27.  
  28. #keepalive_timeout 0;
  29. keepalive_timeout 65;
  30. #tcp_nodelay on;
  31. fastcgi_connect_timeout 300;
  32. fastcgi_send_timeout 300;
  33. fastcgi_read_timeout 300;
  34. fastcgi_buffer_size 128k;
  35. fastcgi_buffers 4 128k;
  36. fastcgi_busy_buffers_size 256k;
  37. fastcgi_temp_file_write_size 256k;
  38.  
  39. #gzip on;
  40. gzip on;
  41. gzip_min_length 1k;
  42. gzip_buffers 4 32k;
  43. gzip_http_version 1.1;
  44. gzip_comp_level 2;
  45. gzip_types text/plain application/x-javascript text/css application/xml;
  46. gzip_vary on;
  47. gzip_disable "MSIE [1-6].";
  48.  
  49. server_names_hash_bucket_size 128;
  50. client_max_body_size 100m;
  51. client_header_buffer_size 256k;
  52. large_client_header_buffers 4 256k;
  53.  
  54. server {
  55. listen 80;
  56. server_name localhost;
  57.  
  58. #charset koi8-r;
  59.  
  60. #access_log logs/host.access.log main;
  61. root "C:/php/XXX/WWW/test";
  62. location / {
  63. index index.php index.html index.htm l.php;
  64. autoindex off;
  65. }
  66.  
  67. #error_page 404 /404.html;
  68.  
  69. # redirect server error pages to the static page /50x.html
  70. #
  71. error_page 500 502 503 504 /50x.html;
  72. location = /50x.html {
  73. root "C:/php/XXX/WWW/test";
  74. }
  75.  
  76. # proxy the PHP scripts to Apache listening on 127.0.0.1:80
  77. #
  78. #location ~ \.php$ {
  79. # proxy_pass http://127.0.0.1;
  80. #}
  81.  
  82. # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
  83. #
  84. location ~ \.php(.*)$ {
  85. fastcgi_pass 127.0.0.1:9000;
  86. fastcgi_index index.php;
  87. fastcgi_split_path_info ^((?U).+\.php)(/?.+)$;
  88. fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  89. fastcgi_param PATH_INFO $fastcgi_path_info;
  90. fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
  91. include fastcgi_params;
  92. }
  93.  
  94. # deny access to .htaccess files, if Apache's document root
  95. # concurs with nginx's one
  96. #
  97. #location ~ /\.ht {
  98. # deny all;
  99. #}
  100. }
  101. server{
  102. listen 80;
  103. server_name www.XXX.com;
  104. #charset koi8-r;
  105. #access_log logs/host.access.log main;
  106. location / {
  107. proxy_pass http://www.XXX.com:8080;
  108. index index.html index.htm;
  109. }
  110. }
  111.  
  112. # another virtual host using mix of IP-, name-, and port-based configuration
  113. #
  114. #server {
  115. # listen 8000;
  116. # listen somename:8080;
  117. # server_name somename alias another.alias;
  118.  
  119. # location / {
  120. # root html;
  121. # index index.html index.htm;
  122. # }
  123. #}
  124.  
  125. # HTTPS server
  126. #
  127. #server {
  128. # listen 443;
  129. # server_name localhost;
  130.  
  131. # ssl on;
  132. # ssl_certificate cert.pem;
  133. # ssl_certificate_key cert.key;
  134.  
  135. # ssl_session_timeout 5m;
  136.  
  137. # ssl_protocols SSLv2 SSLv3 TLSv1;
  138. # ssl_ciphers HIGH:!aNULL:!MD5;
  139. # ssl_prefer_server_ciphers on;
  140.  
  141. # location / {
  142. # root html;
  143. # index index.html index.htm;
  144. # }
  145. #}
  146.  
  147. include vhosts.conf;
  148.  
  149. }

以下是摘抄的内容

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内容很广泛,

参见:https://segmentfault.com/a/1190000009651161

proxy_pass  :为项目的实际访问地址

  1. server {
  2. listen 80;
  3. server_name tomcat1.com;
  4. #charset koi8-r;
  5. #access_log logs/host.access.log main;
  6. location / {
  7. proxy_pass http://127.0.0.1:8280;
  8. index index.html index.htm;
  9. }
  10. }
  11. server {
  12. listen 80;
  13. server_name tomcat2.com;
  14. #charset koi8-r;
  15. #access_log logs/host.access.log main;
  16. location / {
  17. proxy_pass http://127.0.0.1:8281;
  18. index index.html index.htm;
  19. }
  20. }

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服务器做反向代理服务器的全部内容,希望对你有所帮助。

windows版 nginx配置反向代理实例教程 跳转tomcat和php网站的更多相关文章

  1. nginx配置反向代理详细教程(windows版)

    内容属于原创,如果需要转载,还请注明地址:http://www.cnblogs.com/j-star/p/8785334.html Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(I ...

  2. Linux - Nginx配置反向代理。

    Nginx配置反向代理. 准备两台服务器 http://192.168.70.66 http://192.168.70.62 设置正则匹配(192.168.70.66) vim /usr/local/ ...

  3. Windos环境用Nginx配置反向代理和负载均衡

    Windos环境用Nginx配置反向代理和负载均衡 引言:在前后端分离架构下,难免会遇到跨域问题.目前的解决方案大致有JSONP,反向代理,CORS这三种方式.JSONP兼容性良好,最大的缺点是只支持 ...

  4. CentOS 7 安装 Nginx 配置反向代理

    Linux使用Nginx Yum存储库上安装Nginx,适用于Red Hat Enterprise Linux和CentOS系统. 1.添加设置Nginx Yum存储库 在CentOS中首次安装Ngi ...

  5. [笔记]nginx配置反向代理和负载均衡

    1.nginx配置文件:源码安装情况下,nginx.conf在解压后的安装包内.yum安装,一般情况下,一部分在/etc/nginx/nginx.conf中,一部分在/etc/nginx/conf.d ...

  6. nginx笔记 安装nginx 配置 反向代理 多虚拟主机

    1,检测linux上是否 通过yum安装了nginxrpm   -qi  nginx 2.安装nginx之前的依赖包yum install gcc patch libffi-devel python- ...

  7. nginx 配置反向代理,负载均衡实战解析

    前言:NGINX的反向代理和负载均衡是网站架构中经常用到的一种高并发,高可用的方案,下面我们直接实战操作,当然理论也是要的. 一.反向代理 过程:反向代理:客户端 一>代理 <一> ...

  8. nginx 配置反向代理和负载均衡

    Nginx的配置文件: nginx安装目录/conf/nginx.conf 重新加载配置文件 ./nginx -s reload 配置虚拟主机 一个server就是一台虚拟主机 server { li ...

  9. nginx 配置反向代理和静态资源

    https://unit.nginx.org/integration/ 与NGINX集成 在NGINX后面安装单元 将NGINX配置为静态Web服务器,并在Unit前面配置反向代理. NGINX直接从 ...

随机推荐

  1. 4.cocos场景和层的调用

    调用关系: AppDeligate.cpp bool AppDelegate::applicationDidFinishLaunching() { // initialize director aut ...

  2. HDU 4696 Answers 水题

    http://acm.hdu.edu.cn/showproblem.php?pid=4696 由题意可知 1<=Ci<=2 而且图上一定有环 那么我们可以得出: 只要存在奇环(即Ci=1) ...

  3. kali之EtterCap学习

    EtterCap是一个基于ARP地址欺骗方式的网络嗅探工具,主要适用于交换局域网络.借助于EtterCap嗅探软件,渗透测试人员可以检测网络内明文数据通讯的安全性,及时采取措施,避免敏感的用户名/密码 ...

  4. cogs P1578【模板】 次小生成树初级练习题

    1578. 次小生成树初级练习题 ☆   输入文件:mst2.in   输出文件:mst2.out   简单对比时间限制:1 s   内存限制:256 MB [题目描述] 求严格次小生成树 [输入格式 ...

  5. 让JavaScript在Visual Studio 2015中编辑得更easy

    微软公布的Visual Studio 2015展示了该公司对于让该开发工具更好的支持主流的开发语言的工作.微软项目经理Jordan Matthiesen已经具体列出了一些具体处理JavaScript开 ...

  6. 计蒜客 429(腾讯手机地图-pi的精确值)

    腾讯手机地图的定位功能用到了用户手机的多种信号.这当中有的信号的作用范围近.有的信号作用的范围则远一些.有的信号相对于用户在不同的方位强度是不同的.有的则是在不论什么一个方向上信号强度都一致的. 已知 ...

  7. 5.Node.js 安装配置

    转自:http://www.runoob.com/nodejs/nodejs-tutorial.html Node.js安装包及源码下载地址为:https://nodejs.org/en/downlo ...

  8. 二维LIS(CDQ分治)

    题目描述 给定一个长度为N的序列S,S的每个元素pi是一个二元组(xi,yi),定义pi<pj当且仅当xi<xj并且yi<yj,求S的最长上升子序列长度 输入格式 第一行一个N,表示 ...

  9. Python 极简教程(一)前言

    现在 Python 用处很多,学的人也很多,其流行程度自不必说.但是很多人学 Python 的时候都遇到过问题,特别对于非计算机专业毕业的人来说. 现在的教程非常多,但是绝大部分对于初学者都不够友好. ...

  10. 在 Swift 專案中使用 Javascript:編寫一個將 Markdown 轉為 HTML 的編輯器

    原文:Using JavaScript in Swift Projects: Building a Markdown to HTML Editor 作者:GABRIEL THEODOROPOULOS ...