nginx代理设置
需求:
- 企业可信域名 必须是不带项目名称的一级域名,且能访问给的验证txt
- 依然可以通过ip地址+端口号+应用名称进行访问
- 可以通过二级域名直接访问
- 能够提供微信审批功能
步骤:
- 域名解析,设置二级域名xxxx.“你的域名”指向对应的阿里云ecs服务器ip地址
- tomcat的server中,保留8080端口不变,此时,启动tomcat,应能通过ip地址+端口号+应用名称进行访问
- 将Nginx的文件夹放到服务器上,对conf/nginx.conf文件进行配置
3.1 在nginx文件夹下,输入start nginx命令,启动nginx,此时,通过二级域名访问,应能看到和服务器本地http://localhost:80一样的内容
3.1.1 http://localhost:80 出现无法找到该网页问题 - nginx未启动,通过任务管理器中,查看是否有两个nginx.exe,不等于两个都是错误的
- 输入nginx -s reload,查看是否未配置文件未生效
3.2 在nginx.conf中,配置server直接80端口转8080端口, 此时,通过二级域名+应用名称,应能够访问到该项目,并且,通过ip地址+端口号+应用名称进行访问依然可行
核心代码:
location / {
proxy_pass http://127.0.0.1:8080;
}
3.3 需要解决域名后不加应用名称,可直接访问的功能
3.3.1 修改nginx.conf文件,在proxy_pass改为http://127.0.0.1:8080/应用名称/;
此时已经能够通过单独的二级域名,正常访问了,但是不能进行跳转
3.3.2 修改nginx.conf文件,增加以下代码,用于处理带应用名称的跳转
location /应用名称/ {
proxy_pass http://127.0.0.1:8080/应用名称/;
}
3.3.3 此时发现,登录时会出现需要登录两次的问题,因为第一次登录,没有应用名称,nginx默认链接跳转到一次。
处理办法:
1) 将原有的通配符/下面的协议解析,改为直接return新的地址
return http://你的域名/应用名称/web/login.jsp;
4 增加另外的二级域名,访问其他的项目
4.1 增加应用名称2项目,重启tomcat后,能够通过ip地址+端口号+应用名称进行访问
4.2 配置阿里云域名跳转到对应的ip服务器上
4.3 在原有的nginx.conf文件中,复制之前的server,增加dist的二级域名跳转
4.4 此时会报一个“could not build the server_names_hash, you should increase server_names_hash_bucket_size: 32 ”的错误,在http中,增加下面的代码
server_names_hash_bucket_size 64;
如果64还不够,那么就按32的倍数往上加。
4.5 此时的功能应该是,ip地址+端口号+应用名称能够访问两个项目,通过hhisp和dist的二级域名,也能直接访问两个项目
- 静态文件处理
5.1 部分txt类文件设置可直接访问
location =/WW_verify_2Qhp7J7xB6LkeLgL.txt{
root C:;
}
此处默认的是,将root的路径,加入到所定位的文件前面,因此无需再次写文件
注意事项:
- 可能配置后,发现无法正常跳转,大部分是由于80端口没有开启,阿里云80端口开启过程,可以在ECS服务器控制台->安全组管理中配置,不明百度
- 配置了80端口后,发现仍然无法使用,可以查看是否为防火墙拦截了服务器的80端口访问。.
操作步骤: - 在服务器输入127.0.0.1/应用名称,如能正常访问,这说明不是nginx配置问题。
- 在服务器上找到防火墙,高级设置中找到新建规则,创建80端口的通过规则即可。