【问题标题】:Nginx Forbidden error 403Nginx禁止错误403
【发布时间】:2018-03-17 17:28:21
【问题描述】:

我的 nodeJS 项目位于 /home/my-project/app 文件夹中。我这样设置 nginx 配置文件:

server {
    listen  80;
    server_name myproject.com;

    location / {
        root /home/my-project/app;
        index index.html index.htm;
    }
}

当我试图在浏览器中打开“myproject.com”页面时,它给了我一个错误“403 Forbidden nginx”。谁能解释我做错了什么?

【问题讨论】:

  • 您是否尝试将代理通行证放在位置proxy_pass http://myproject.com:80;
  • @NikolaAndreev 我用过,但还是不行。

标签: node.js nginx


【解决方案1】:

这是一个用于反向代理节点应用程序的基本 nginx 配置:

server {
    listen       80;
    server_name  myproject.com;

    #uncomment for logs
    #access_log  logs/host.access.log  main;

    location / {
        proxy_set_header   X-Real-IP        $remote_addr;
        proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
        proxy_set_header   Host             $host;

        proxy_pass http://127.0.0.1:3000/; # make sure port matches open port in node app
    }
}

重要的一点是proxy_pass 声明,它定义了节点应用所在的主机和端口。

作为测试,您应该能够从运行 nginx 的服务器上 curl/wget/open 节点应用程序 URL(带端口)没有问题。

对于节点应用:

  • 确保打开的端口大于 1024。任何低于 1024 的端口通常都需要提升权限(例如使用 sudo),这不是一个好习惯。
  • 确保该端口未被其他进程使用。

希望这会有所帮助!

【讨论】:

    【解决方案2】:

    在处理配置文件半天后​​,我仍然无法启动我的 phpmyadmin。

    问题可能来自你的 selinux。

    请执行以下步骤:

    • chmod 755 您的站点目录
    • chown 使用组和用户是 nginx 的站点

      chown -R nginx:nginx /var/www/<your-site>
      
    • 使用 selinux

      semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/phpmyadmin(/.*)?'
      semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/phpmyadmin/doc(/.*)?'
      semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/phpmyadmin/examples(/.*)?'
      semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/phpmyadmin/js(/.*)?'
      semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/phpmyadmin/libraries(/.*)?'
      semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/phpmyadmin/locale(/.*)?'
      semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/phpmyadmin/setup(/.*)?'
      semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/phpmyadmin/sql(/.*)?'
      semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/phpmyadmin/templates(/.*)?'
      semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/phpmyadmin/themes(/.*)?'
      semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/phpmyadmin/vendor(/.*)?'
      restorecon -Rv '/var/www/phpmyadmin/'`
      

    【讨论】:

      猜你喜欢
      • 2015-02-02
      • 2013-07-19
      • 2016-03-26
      • 1970-01-01
      • 2011-05-31
      • 2016-08-16
      • 2015-11-13
      • 2017-12-05
      • 1970-01-01
      相关资源
      最近更新 更多