Nginx反向代理 & 设置二级域名 (CentOS)

nginx 配置

whereis nginx

/usr/sbin/nginx     ->    执行文件

/etc/nginx/conf.d  ->    自定义.conf文件的存放位置

常用操作举例:

重启:
$ /usr/local/nginx/sbin/nginx –s reload

停止:
$ /usr/local/nginx/sbin/nginx –s stop

测试配置文件是否正常:
$ /usr/local/nginx/sbin/nginx –t

 

反向代理

1. 找到nginx.conf文件   

路径:/usr/local/nginx/conf

2. 修改。

server {
        listen       80;
        server_name  XXX.com;   // 你的域名

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   /home/hanstore;
            index  index.html index.htm;
        }

    location /music/ {    // 跟在域名后的路径,匹配到会进行反向代理,指向proxy_pass
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_set_header X-NginX-Proxy true;
        proxy_pass http://127.0.0.1:8080/;   // 服务器上启的本地服务,监听对应的端口
    }

    location /2048/ {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_set_header X-NginX-Proxy true;
        proxy_pass http://127.0.0.1:2048/;
    }

.......

3. 重启nginx

nginx -s reload

会提示ngnix不是可执行命令,为了方便,先增加环境变量

4.将nginx的启动路径加入到环境变量

A. 打开环境变量所在的文件

vim /etc/profile 
B. 在命令模式下按GG至末尾,添加

#set for node.js
export NODE_HOME=/home/dc2-user/node
export PATH=$NODE_HOME/bin:$PATH

#set for git
export PATH=/usr/local/git/bin:$PATH

#set for nginx
export PATH=$PATH:/usr/local/nginx/sbin

C. 重新加载环境 
source profile 

5. 执行 nginx -s reload 重启nginx

----------------------------------------------------------------------------------------------------------------------------------------------------------

PS

如果nginx中只配置一个server域的话,则nginx是不会去进行server_name的匹配的。因为只有一个server域,也就是这有一个虚拟主机,那么肯定是发送到该nginx的所有请求均是要转发到这一个域的,即便做一次匹配也是没有用的。还不如干脆直接就省了。如果一个http域的server域有多个,nginx才会根据$hostname去匹配server_name进而把请求转发到匹配的server域中。此时的匹配会按照匹配的优先级进行,一旦匹配成功进不会再进行匹配,关于具体的匹配规则可以参见nginx官网提供的文档。

 

设置二级域名

1.二级域名解析

Nginx反向代理 & 设置二级域名 (CentOS)_第1张图片

去域名服务商增加二级域名解析

2.修改nginx.conf文件 

增加对应的server

server {
    listen       80;
    server_name  music.awesomehan.com // 匹配的二级域名地址
    location / {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_set_header X-NginX-Proxy true;
        proxy_pass http://127.0.0.1:1111/;  
    }
}

server {
        listen       80;
        server_name   ~^(www\.)?awesomehan.com$ // 正则匹配 www.awesomehan.com, awesomehan.com都能匹配到
        
        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   /home/hanstore;
            index  index.html index.htm;
        }

    location /music/ {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_set_header X-NginX-Proxy true;
        proxy_pass http://127.0.0.1:8080/;
    }  

    location /2048/ {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_set_header X-NginX-Proxy true;
        proxy_pass http://127.0.0.1:2048/;
    }


......


 

你可能感兴趣的:(Nginx)