Nginx(代理)+Tomcat(Java)+Apache(PHP)共用80端口
解决的核心问题是:使用一个80端口,根据域名或者子域名 同时访问java + php运行环境
1.下载nginx
官网下载链接:http://nginx.org/en/download.html 接下来我以nginx/Windows-1.16.0
nginx-1.16.0.zip下载链接如下:/caseinfo/link/044e5cf4c6594831b0d5706c685ef0b6
下载后解压,解压后如下
2.nginx的运用
有很多种方法启动nginx
(1)直接双击解压文件夹里的nginx.exe,双击后一个黑色的弹窗一闪而过,证明启动成功
(2)打开cmd命令窗口,切换到nginx解压目录下,输入命令 nginx.exe
或者 start nginx
,回车即可;
常用命令如下:
-
快速停止或关闭:
nginx -s stop
-
正常停止或关闭:
nginx -s quit
-
配置文件修改重装载命令:
nginx -s reload
检查nginx是否启动成功:
cmd命令窗口输入命令:tasklist /fi "imagename eq nginx.exe"
出现如下结果说明启动成功
3.nginx代理设置
①修改要用到的配置文件
…\nginx-1.16.0\conf\nginx.conf
Java
代码如下:
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
代码如下:
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 环境