• nginx代理的配置和文件访问权限配置


    第一、

    nginx的配置文件是在nginx.conf中引入了2个配置文件,一个是admin,一个是default,

    admin的配置如下:

    server {
           listen 4200;
           listen [::]:4200;
     
           server_name guest.xxxxx.com;
     
           root /root/admin/admin/dist;
           index index.html;
     
           location / {
                   try_files $uri $uri/ /index.html;
           }
    }

    default配置如下:

    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 / {
            try_files $uri $uri/ =404;
        }
    }

    第二、

    目前是想用一个域名和一个子域名进行映射处理

    www.xxxxx.com和admin.xxxxx.com, 阿里云域名映射已经做好,全部指向nginx所在的服务器,一开始以为一个服务器只能用一个80端口,后来朋友提点说nginx子域名也可以代理80端口,意思就是说一台服务器走80端口可以走不止一个,只要你的域名和子域名不重复.

    按照以上配置一直提示500 nginx错误.后来朋友提示说不要将文件分开,写在一个文件里面,并且server_name直接写域名,于是更改为如下配置:

    server {
        listen 80;
        root /var/www/html;
     
        index index.html index.htm index.nginx-debian.html;
     
        server_name www.xxxxx.com;
     
        location / {
            # First attempt to serve request as file, then
            # as directory, then fall back to displaying a 404.
            try_files $uri $uri/ =404;
    } } server { listen
    80; server_name admin.xxxxx.com; root /root/admin/admin/dist; index index.html; location / {try_files $uri $uri/ =404;} }
    这样修改后就没有再报500错误,但是新问题出现了: 报了404错误,然后检查配置的资源路径没问题,最后突然发现日志中出现了nginx没有权限访问该资源路径,后来把资源路径放到了nginx有访问权限的路径下,然后访问就正常了 
    
     root /root/admin/admin/dist;
    修改为
    
    root /var/www/dist;

    root路径下nginx无法访问,需要将路径改为nginx能访问的地方,或者将这个路径的权限放开也可以解决这个问题,考虑到安全问题就选择放在指定位置,没有解开权限

    nginx的权限配置:

    server {
          listen       80 default_server;
          server_name  zengfanping.com  www.zengfanping.com;
          root /home/zengfp/www/blog/public;
          index index.html;
         
          access_log  /var/log/nginx/host.access.log  main;
          error_log  /var/log/nginx/host.error.log;
    }

    配置好后重新加载nginx:

    nginx -s reload

    然后再 以域名zengfanping.com进行访问,出现了403 forbidden错误。

    在相关资料的理解下,个人认为:

    1、nginx用户和zengfp用户是两个独立的用户,nginx用户不能操作zengfp用户下的目录,如果想要操作zengfp用户下的文件,需要对齐授权操作

    2、如果想使用nginx用户,可以把项目目录放到nginx用户目录下,nginx用户的目录一般在/usr/share/nginx/html,这样的话也是比较方便的。

    3、使用root用户启动nginx,root用户拥有最高权限。

    做法如下,打开nginx.conf。本人的nginx.conf路径:/etc/nginx/nginx.conf

    复制代码
    user  root;//把这里的nginx改为root
    worker_processes  1;
    
    error_log  /var/log/nginx/error.log warn;
    pid /var/run/nginx/nginx.pid;
    
    
    events {
        worker_connections  1024;
    }
    
    
    http {
        include       /etc/nginx/mime.types;
        default_type  application/octet-stream;
    
        log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                          '$status $body_bytes_sent "$http_referer" '
                          '"$http_user_agent" "$http_x_forwarded_for"';
    
        access_log  /var/log/nginx/access.log  main;
    
        sendfile        on;
        #tcp_nopush     on;
    
        keepalive_timeout  65;
    
        #gzip  on;
    
        include /etc/nginx/conf.d/*.conf;
    }
    复制代码

     配置好后,还需要重启nginx服务: nginx -s reload 

    通过这样的方法,就可以让你的网站正常访问。

    春有百花秋有月,夏有凉风冬有雪!
  • 相关阅读:
    JavaScript常用函数和方法
    Django中csrf错误
    LVS+Keepalived负载均衡配置
    CSP-S2019 游记
    三角函数公式整理
    LGOJP3193 [HNOI2008]GT考试
    BZOJ3790. 神奇项链
    BZOJ4241: 历史研究
    LGOJP2051 [AHOI2009]中国象棋
    AT2000 Leftmost Ball
  • 原文地址:https://www.cnblogs.com/wwwcf1982603555/p/13924905.html
Copyright © 2020-2023  润新知