Nginx(代理)+Tomcat(Java)+Apache(PHP)共用80端口

  • 2022-07-15 14:29:58

解决的核心问题是:使用一个80端口,根据域名或者子域名 同时访问java + php运行环境
1.下载nginx

官网下载链接:http://nginx.org/en/download.html 接下来我以nginx/Windows-1.16.0
nginx-1.16.0.zip下载链接如下:https://pan.baidu.com/s/1IqL1g7134Qd4Cjoq1d4lBQ
下载后解压,解压后如下
Nginx(代理)+Tomcat(Java)+Apache(PHP)共用80端口
2.nginx的运用
有很多种方法启动nginx
(1)直接双击解压文件夹里的nginx.exe,双击后一个黑色的弹窗一闪而过,证明启动成功
(2)打开cmd命令窗口,切换到nginx解压目录下,输入命令 nginx.exe 或者 start nginx ,回车即可;
常用命令如下:

  1. 快速停止或关闭:nginx -s stop

  2. 正常停止或关闭:nginx -s quit

  3. 配置文件修改重装载命令:nginx -s reload

检查nginx是否启动成功:
cmd命令窗口输入命令:tasklist /fi "imagename eq nginx.exe" 出现如下结果说明启动成功
Nginx(代理)+Tomcat(Java)+Apache(PHP)共用80端口

3.nginx代理设置
①修改要用到的配置文件
…\nginx-1.16.0\conf\nginx.conf
Java
Nginx(代理)+Tomcat(Java)+Apache(PHP)共用80端口
代码如下:

upstream java{
	server 127.0.0.1:8080 weight=1;
}
server {
    listen       80;
    server_name  www.java.com;
	location / {
		proxy_pass   http://java;
		proxy_set_header Host $host;
		proxy_set_header X-Real-IP $remote_addr;
		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
		
	}
}

PHP Nginx(代理)+Tomcat(Java)+Apache(PHP)共用80端口
代码如下:

upstream php{
	server 127.0.0.1:808 weight=1;
}

server {
    listen       80;
    server_name  www.php.com;
	location / {
		proxy_pass   http://php;
		proxy_set_header Host $host;
		proxy_set_header X-Real-IP $remote_addr;
		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
		
	}
}

②Tomcat :…\apache-tomcat-7.0.64\conf\server.xml
默认端口为8080

③Apache: …\Apache24\conf\httpd.conf
Listen 80 改 Listen 808

④Hosts : C:\Windows\System32\drivers\etc\HOSTS
增加两行数据
127.0.0.1 www.java.com
127.0.0.1 www.php.com

重新启动Tomcat/Apache/nginx

最后访问:
www.java.com 会进入 8080端口的Tomcat 环境
www.php.com 会进入 808 端口的 Apache 环境

猜你喜欢