抄自

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的

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

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

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

转载于:https://www.cnblogs.com/zonglonglong/p/10689821.html

windows版 nginx配置反向代理实例教程 跳转tomcat和php网站相关推荐

  1. windows 系统nginx做反向代理实例

    背景:客户原系统win-server 已经安装有web服务占用端口80,使用的集成工具phpstudy实现. 现添加新项目,tomcat+jdk+mysql 最终实现web端访问两个域名显示两个网站. ...

  2. nginx配置反向代理和负载均衡完结篇

    具体安装配置参考之前的文章 https://blog.csdn.net/weixin_44001965/article/details/102723855 文章目录 一,nginx操作的常用命令 ng ...

  3. Nginx配置反向代理访问内部服务

    Nginx可以提供高性能的反向代理服务,将客户机请求转发给内部网络中隐藏在幕后的真正的服务器,并将从服务器上得到的结果数据返回给Internet上请求的客户端,在用户看来,Nginx扮演的就是真实服务 ...

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

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

  5. nginx配置反向代理浏览器输入地址后点击登陆URL发生变化的处理

    今天项目上需要再用NGINX配置反向代理需求如下: 现在有A服务器只做为nginx服务器,B服务器作为代码服务器,用户访问A要实际上访问的是B的程序. 处理方式就是用nginx的方向代理处理即可: 打 ...

  6. nginx配置反向代理过程中遇到的坑 配置好之后报404问题

    项目场景: nginx配置反向代理路径 问题描述 在配置nginx反向代理的过程中,路径可以匹配上但是一直报404,找不到路径.nginx配置如下: location /business {add_h ...

  7. Nginx配置反向代理,一篇搞定!

    欢迎关注方志朋的博客,回复"666"获面试宝典 来源:blog.csdn.net/zxd1435513775/article/ details/102508463 一.引言 其他话 ...

  8. 淘淘商城第89讲——nginx配置反向代理

    什么是反向代理? 我们经常听说反向代理这个概念,既然有反向代理,那么就应该有正向代理,那什么是正向代理呢?如下图所示,所谓的正向代理是指当用户发起请求时无法直接访问到某个网站(比如我们经常要访问外网) ...

  9. Nginx配置——反向代理

    文章目录 0. 引言 1.何为反向代理? 2. Nginx配置文件 2.1 第一部分:全局块 2.2 第二部分:events 块 2.3 第三部分:http 块 2.3.1 全局 server 块 2 ...

最新文章

  1. Jupyter Notebook学习笔记
  2. linux内核网络协议栈--网卡报文收发(十六)
  3. 数据结构-编程实现一个单链表的测长
  4. html 页面重复度高,html – CSS背景渐变重复问题
  5. 漫话:如何给女朋友解释String对象是不可变的?
  6. 【Liunx】Linux 文件与目录管理
  7. 三分钟小课堂-----------------docker(三)增删改查命令
  8. Softmax回归概论
  9. sql关联查询子表的第一条_SQLAlchemy(8)惰性查询
  10. Delphi 集合和字符串互转
  11. 《概率统计》知识点(持续更新……)
  12. JS导出页面为PDF,分页导出
  13. 嗅探工具 --- wireshark、tcpdump、dsniff、ettercap、bettercap、netsniff-ng
  14. 聊天app开发——如何开发聊天app
  15. 四路模拟高清解码,CVI,四通道多合一同轴高清解码芯片方案
  16. Centos8 yum配置阿里云镜像
  17. 那村的人儿(村长)第十期数码照片后期处理全套培训教程
  18. android半透明闪退,移动端常见面试题一:移动端兼容解决方案
  19. 背阔肌(05):史密斯机俯身划船
  20. IT史记:愤怒的杰里·桑德斯

热门文章

  1. SkeyeVSS综合安防监控录像回放控制之自定义可拖动时间轴组件
  2. 金仓数据库KingbaseES高可用概述
  3. OEA 中的多国语言实现
  4. PS关于矩形选框的那些糟心问题
  5. CCNA考试要点--01
  6. 9.0版本SoundPool播放无声问题
  7. 企业微信增长案例 | 零售转型视光服务,宝岛眼镜是怎么做到的?
  8. 华三设备缺省登录信息,以及忘记密码如何恢复
  9. vscode配置html环境
  10. html5、CSS、JavaScript学习笔记