Nginx Forbidden错误403

时间:2018-01-16 15:03:28

标签: node.js nginx

我的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禁止nginx'。谁能解释一下我做错了什么?

2 个答案:

答案 0 :(得分:2)

以下是用于节点应用程序的反向代理的基本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声明,它定义了节点应用所在的主机和端口。

作为测试,您应该可以curl / wget / open来自运行nginx的服务器的节点应用URL(带端口)而不会出现问题。

对于节点应用程序:

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

希望这有帮助!

答案 1 :(得分:0)

使用配置文件一天后,我仍然无法启动我的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/'`