我的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'。谁能解释一下我做错了什么?
答案 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(带端口)而不会出现问题。
对于节点应用程序:
sudo
),这不是一个好习惯。希望这有帮助!
答案 1 :(得分:0)
使用配置文件一天后,我仍然无法启动我的phpmyadmin。
问题可能来自你的selinux。
请执行以下步骤:
用您的网站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/'`