我正在 Ubuntu 服务器上制作我的第一个 go 应用程序。当我使用可执行文件或简单地运行 main.go 来运行我的服务器时,我得到了要呈现的初始 html 页面,但没有 css、图像或 js。这些路线还将我带到 404 页面。唯一似乎通过的是 index.html(它被命名为 index.gohtml 作为 go 的模板)

当我在本地主机和服务器上的 ip:port 配置上运行它时,我的所有 Assets 都被加载,但是当我使用 nginx 时, Assets 根本没有加载。由于这些因素,我假设 nginx 是我遇到问题的地方。

以下是我目前所拥有的。这是我第一次使用 nginx,所以我不知道正确配置它需要什么。

server { 
    listen 80 default_server; 
    listen [::]:80 default_server; 
 
 
    root /var/www/html; 
 
    index index.html index.htm index.nginx-debian.html; 
 
    server_name _; 
 
    location / { 
 
            proxy_set_header X-Real-IP $remote_addr; 
            proxy_set_header X-Forwarded-For $remote_addr; 
            proxy_set_header Host $host; 
            proxy_pass http://127.0.0.1:8001; 
 
            try_files $uri $uri/ =404; 
 
    } 

请您参考如下方法:

您可能希望将 try_filesproxy_pass 分开到不同的位置:

location / { 
    try_files $uri $uri/ @proxy; 
} 
location @proxy { 
    proxy_set_header X-Real-IP $remote_addr; 
    proxy_set_header X-Forwarded-For $remote_addr; 
    proxy_set_header Host $host; 
    proxy_pass http://127.0.0.1:8001; 
} 

如果静态文件不存在,请求将被转发到运行在端口8001上的服务。

参见 this document了解详情。


评论关闭
IT虾米网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!