我有带有 nginx 和 apache2 的 ubuntu 16.04。有 2 条 DNS A 记录指向这台机器:
- app1.mydomain.com
- app2.mydomain.com
我需要 app1.mydomain.com 由 apache 解析, app2.mydomain.com 由 nginx 解析。两者都在端口 80 上。有可能吗?
此外,apache 需要处理 2 个不同的应用程序(site1 和 site2)。
我想:
- app1.mydomain.com/site1 - 由 apache 解析并运行应用程序 site1
- app1.mydomain.com/site2 - 由 apache 解决并触发应用程序 site2
- app2.mydomain.com - 使用 nginx 服务 ghost 应用程序
这是我的 Apache 配置:
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName app1.mydomain.com
ServerAlias www.app1.mydomain.com
ErrorLog /var/www/site1/logs/error.log
CustomLog /var/www/site1/logs/access.log combined
WSGIScriptAlias /api /var/www/site1/application/index.py/
Alias /static /var/www/site1/application/static
<Directory /var/www/site1/application>
Order deny,allow
Allow from all
</Directory>
AddType text/html .py
ErrorLog /var/www/site2/logs/error.log
CustomLog /var/www/site2/logs/access.log combined
WSGIScriptAlias /site2 /var/www/site2/index.py/
Alias /site2/uploads /var/sftp/site2/uploads/
<Directory /var/www/site2/>
Order deny,allow
Allow from all
</Directory>
这是我的 NGINX 配置文件:
server {
listen 8080;
listen [::]:8080;
server_name app2.mydomain.com;
root /var/www/ghost/system/nginx-root;
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_pass http://127.0.0.1:2368;
}
location ~ /.well-known {
allow all;
}
client_max_body_size 50m;
}