[英]Nginx as virtual host and as reverse proxy
I have GlassFish (a java application server) running on an Ubuntu server.我在 Ubuntu 服务器上运行 GlassFish(一个 Java 应用程序服务器)。 I have also phppgadmin running on a different port, let say 5555 and configured with apache.我还在不同的端口上运行 phppgadmin,比如说 5555 并配置了 apache。
I use Nginx as a Reverse Proxy in front of GlassFish.我在 GlassFish 前面使用 Nginx 作为反向代理。 (Ssl and configs for port 443 hasn't been set yet.) (尚未设置端口 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;
}
}
When I try to create a virtual host for PostfixAdmin like described here by setting following file in /etc/nginx/conf.d/
.当我尝试通过在/etc/nginx/conf.d/
设置以下文件为此处描述的/etc/nginx/conf.d/
创建虚拟主机时。 In http://postfixadmin.my_domain/setup.php
I see only a 404 page from glassfish.在http://postfixadmin.my_domain/setup.php
我只看到 glassfish 的 404 页。
A DNS A
record for the subdomain is set.设置了子域的 DNS A
记录。
What is wrong with my config?我的配置有什么问题? How to fix this?如何解决这个问题?
Thanks in advance提前致谢
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;
}
}
I realized the way my server is set-up, it is not possible to achieve what I was trying to do above.我意识到我的服务器的设置方式,不可能实现我在上面尝试做的事情。 Creating a virtual host for PostfixAdmin is not necessary!不需要为 PostfixAdmin 创建虚拟主机!
Here is my final configuration and everything works fine.这是我的最终配置,一切正常。
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;
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.