nginx代理设置

需求:

  1. 企业可信域名 必须是不带项目名称的一级域名,且能访问给的验证txt
  2. 依然可以通过ip地址+端口号+应用名称进行访问
  3. 可以通过二级域名直接访问
  4. 能够提供微信审批功能

步骤:

  1. 域名解析,设置二级域名xxxx.“你的域名”指向对应的阿里云ecs服务器ip地址
    NGINX+tomcat配置流程(企业微信+Web应用)
  2. tomcat的server中,保留8080端口不变,此时,启动tomcat,应能通过ip地址+端口号+应用名称进行访问
  3. 将Nginx的文件夹放到服务器上,对conf/nginx.conf文件进行配置
    3.1 在nginx文件夹下,输入start nginx命令,启动nginx,此时,通过二级域名访问,应能看到和服务器本地http://localhost:80一样的内容
    3.1.1 http://localhost:80 出现无法找到该网页问题
  4. nginx未启动,通过任务管理器中,查看是否有两个nginx.exe,不等于两个都是错误的
  5. 输入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的二级域名,也能直接访问两个项目

  1. 静态文件处理
    5.1 部分txt类文件设置可直接访问
	location =/WW_verify_2Qhp7J7xB6LkeLgL.txt{
		root C:;
    }

此处默认的是,将root的路径,加入到所定位的文件前面,因此无需再次写文件

注意事项:

  1. 可能配置后,发现无法正常跳转,大部分是由于80端口没有开启,阿里云80端口开启过程,可以在ECS服务器控制台->安全组管理中配置,不明百度
  2. 配置了80端口后,发现仍然无法使用,可以查看是否为防火墙拦截了服务器的80端口访问。.
    操作步骤:
  3. 在服务器输入127.0.0.1/应用名称,如能正常访问,这说明不是nginx配置问题。
  4. 在服务器上找到防火墙,高级设置中找到新建规则,创建80端口的通过规则即可。

相关文章: