Centos7下Nginx代理和二级域名配置

Centos7下Nginx代理和二级域名配置


nginx的安装步骤请阅读上一篇文章。

一、nginx的反向代理配置

编辑nginx的配置文件(找到自己的配置文件)

vim /usr/local/nginx/conf/nginx.conf
user root;        #这里是nginx运行的用户
worker_processes 2;      #设置nginx服务的worker子进程:
error_log logs/error.log;#记录nginx错误日志:
pid logs/nginx.pid;      #nginx的pid位置

events {
    worker_connections  1024;    #每个进程允许的最多连接数,
}

http {
    include   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 logs/access.log main; 	 #日志存放位置

    #这是server段的配置 可配置多个server,即二级域名配置
    #server1 : 如,静态资源的配置
    server {
        listen       80;
        server_name  www.test.com;    #要访问的域名,我这里用的测试域名,如果有多个,用逗号分开
        charset utf8;

        #nginx的默认访问地址 即直接访问上诉的server_name配置的域名展示的Welcome to nginx!页面
        location / {
            root   html;
            index  index.html index.htm;
        }
	
        # 图片文件存放路径
        location /images/ {
            alias  /home/file/images/;# 这里需要使用alias而不是root,切路径末尾需要有/,否则访问静态资源时会出现404
            autoindex on;
        }
    }
}

二、基于nginx的二级域名配置

http{....}配置中新增server{.....}配置

    #server2:如,配置项目的域名,如此啊配置可理解为二级域名的配置
    server {
        listen       80;
        server_name  project.test.com;    #要访问的域名,如果有多个,用逗号分开
        charset utf8;

	#nginx的默认访问地址 即直接访问上诉的server_name配置的域名展示的Welcome to nginx!页面
	location / {
		root   html;
		index  index.html index.htm;
	}
	
        location /test {              
		proxy_pass http://127.0.0.1:8888/;	#这里http://127.0.0.1:8888/是访问该服务器上的某个项目的访问路径,也可写成ip:端口
		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
		proxy_set_header X-Forwarded-Proto $scheme;
		proxy_set_header X-Forwarded-Port $server_port;
         }
    }

三、注意

静态资源路径中配置root时,是无法访问资源的;如下配置,访问资源时会报404

server {
        listen       80;
        server_name  www.test.com; 
        charset utf8;
	
        # 图片文件存放路径
        location /images/ {
            root /home/file/images/;# 这里需要使用alias而不是root,切路径末尾需要有/,否则访问静态资源时会出现404
            autoindex on;
        }
    }

而nginx提供了另外一个静态路径配置  : alias

alias与root区别

官方root解释:
#Sets the root directory for requests. For example, with the following configuration
location /i/ {
    root /data/w3;
}
#The /data/w3/i/test.jpg file will be sent in response to the "/i/test.jpg" request
官方alias解释:

#Defines a replacement for the specified location. For example, with the following configuration
location /i/ {
    alias /data/w3/;
}
#on request of “/i/test.jpg”, the file "/data/w3/test.jpg" will be sent.
假设我们的静态资源存放地址为: /data/w3/test.jpg

当访问http://ip:端口/i/test.jpg时

    root是去/data/w3/i/test.jpg请求文件

    alias是去/data/w3/test.jpg请求请求文件

因此:

root响应的路径:配置的路径 + 完整访问路径(完整的location配置路径 + 静态文件)
alias响应的路径:配置路径 + 静态文件(去除location中配置的路径)






猜你喜欢

转载自blog.csdn.net/qq_35888875/article/details/80942813