前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Nginx反向代理Apache2多个端口

Nginx反向代理Apache2多个端口

原创
作者头像
我不是程序员110
发布2022-10-28 10:16:27
8390
发布2022-10-28 10:16:27
举报
文章被收录于专栏:Ubuntu建站指南Ubuntu建站指南

前言

在涉及到使用Nginx代理多个Apache2项目时,不可避免需要Apache2使用不同的端口才能正常访问。

而且不知道什么原因,好像Apache2开启了HSTS严格认证,使得Nginx只能代理https,代理http的话会出现无法访问的情况。无奈~

这边记录一下学习过程。

步骤

1.修改Apache2监听端口

Apache2的监听端口配置文件为{ports.conf}

代码语言:text
复制
vim /etc/apache2/ports.conf

增加自己需求的端口:

代码语言:text
复制
# If you just change the port or add more ports here, you will likely also
# have to change the VirtualHost statement in
# /etc/apache2/sites-enabled/000-default.conf

Listen 8081
Listen 8082

<IfModule ssl_module>
        Listen 444
        Listen 445
</IfModule>

<IfModule mod_gnutls.c>
        Listen 444
        Listen 445
</IfModule>
 
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

此时就监听了http的80818082,https的444445

2.修改Apache的网站配置文件

代码语言:text
复制
<VirtualHost *:8081> 
	DocumentRoot /var/www/***

</VirtualHost>

<VirtualHost *:444>
	DocumentRoot /var/www/***
		
	SSLEngine on
	SSLCertificateFile      /***/***.crt
	SSLCertificateKeyFile /***/***.key
	SSLCertificateChainFile /***/***.crt
		
	<Directory /var/www/***>
		Options FollowSymLinks
		AllowOverride All
		Require all granted
	</Directory>
	
	<FilesMatch "\.(?:cgi|shtml|phtml|php)$">
		SSLOptions +StdEnvVars
	</FilesMatch>
	<Directory /usr/lib/cgi-bin>
		SSLOptions +StdEnvVars
	</Directory>
</VirtualHost>

正常来说,监听http端口就行,我这边把https的一起配置进去了。

3.修改Nginx的网站配置文件

代码语言:text
复制
#https部分配置
server {
    listen 443      ssl http2;
    listen [::]:443 ssl http2;
    root /var/www/***
    server_name yydnas.cn www.yydnas.cn;
    index index.php index.html index.htm;

    ssl_certificate     /etc/xxx/xxx.pem
    ssl_certificate_key /etc/xxx/xxx.key
    ********省略********
    location / {
        proxy_pass_header Server;
        proxy_pass https://localhost:444;  #或者http://localhost:8081
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Scheme $scheme;
        proxy_redirect off;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

}

4.载入配置

代码语言:shell
复制
systemctl restart apache2
systemctl restart nginx

此时应该就可以访问网站了。

总结

学习的过程挺好玩的,主要是网上关于apache2的教程不是很多,很多东西都要自己一个个尝试,体验的是一个过程。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 步骤
    • 1.修改Apache2监听端口
      • 2.修改Apache的网站配置文件
        • 3.修改Nginx的网站配置文件
          • 4.载入配置
          • 总结
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档