Nginx作为虚拟主机和反向代理



我在Ubuntu服务器上运行了GlassFish(一个java应用程序服务器(。我也有phppgadmin在不同的端口上运行,比如5555,并使用apache进行配置。

我在GlassFish面前使用Nginx作为反向代理。(端口443的Ssl和配置尚未设置。(

server {
listen          80;
server_name     my_domain;
location / {
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://my_ip_number:8080;
}

location /phppgadmin {
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_pass http://my_ip_number:5555/phppgadmin;
}  
}

当我尝试为PostfixAdmin创建一个虚拟主机时,如这里所述,通过在/etc/nginx/conf.d/中设置以下文件。在http://postfixadmin.my_domain/setup.php中,我只看到来自glassfish的404页
已设置子域的DNSA记录
我的配置出了什么问题?如何解决此问题?

提前感谢

server {
listen 80;
listen [::]:80;
server_name postfixadmin.my_domain;
root /usr/share/postfixadmin/public/;
index index.php index.html;
access_log /var/log/nginx/postfixadmin_access.log;
error_log /var/log/nginx/postfixadmin_error.log;
location / {
try_files $uri $uri/ /index.php;
}
location ~ ^/(.+.php)$ {
try_files $uri =404;
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include /etc/nginx/fastcgi_params;
}
}

我意识到我的服务器的设置方式,不可能实现我上面试图做的事情。不需要为PostfixAdmin创建虚拟主机!

这是我的最终配置,一切都很好。

server {
listen          my_ip_number:80;
server_name     example.com www.example.com;
include snippets/letsencrypt.conf;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
server_name www.example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;
include snippets/ssl.conf;
include snippets/letsencrypt.conf;
return 301 https://example.com$request_uri;
}

server {
listen 443 ssl http2;
server_name example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;
include snippets/ssl.conf;
include snippets/letsencrypt.conf;
access_log  /var/log/nginx/example.com.access.log; # upstreamlog;
error_log   /var/log/nginx/example.com.error.log;
rewrite_log on;
location / {
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header HTTPS "on";
proxy_pass http://my_ip_number:8080;
}
location /phppgadmin {
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://my_ip_number:5555/phppgadmin;
}

location /mypostfixadmin {
proxy_pass http://my_ip_number:5555/postfixadmin;
proxy_set_header Host $http_host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Scheme $scheme;
client_max_body_size 0;
}
}

最新更新