Nginx配置解析

#運行用戶,默認即是nginx,可不設置
#user  nobody;
#nginx進程,一般設置爲和cpu核數一樣
worker_processes  1;
 #;單個後臺worker process進程的最大併發鏈接數
events {
    worker_connections  1024;                      
}
http {
    #文件擴展名與類型映射表
    include       mime.types;    
    #默認文件類型
    default_type  application/octet-stream;
    #開啓高效傳輸模式
    sendfile        on;
    #連接超時時間,單位是秒
    keepalive_timeout  65;
    server {
        #監聽端口
        listen       80;
        #映射域名
        server_name  www.abc.com;
        #可以實現多種編碼識別
        charset utf-8;
        
        #nginx添加自定義header.表明,該資源可以被任意外域訪問,用作跨域請求使用
        add_header Access-Control-Allow-Origin *;
        
        location / {
            #請求轉向mysvr 定義的服務器列表
            proxy_pass http://192.168.126.1:9000/;
            #用來在後端獲取用戶發送過來的請求頭
            proxy_set_header  Host $host;
            #用來獲取客戶端的IP
            proxy_set_header  Remote_Addr    $remote_addr;
            #在後端這樣獲取:request.getAttribute("X-real-ip")
            proxy_set_header  X-Real-IP  $remote_addr;
            #後端通過request.getAttribute("X-Forwarded-For")獲得的將會是客戶端ip和第一臺nginx的ip
            proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
            #訪問http://192.168.126.1:9000/的路徑會被映射到index.html
            index index.html;           
        }       
        
        location ~ ^/(hryfilefront) {
            proxy_pass http://192.168.126.1:9000;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header Host $host;
        }
        
        location ~ ^/(hryfile) {
            proxy_pass http://192.168.126.1:9000;
            proxy_set_header  Host $host;
            proxy_set_header  X-Real-IP  $remote_addr;
            proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
        }
    }


    server {
        listen       80;
        server_name  manage.abc.com ;
        charset utf-8;

        location ~ ^/(manage) {
            proxy_pass http://192.168.126.1:9002;
            proxy_set_header  Host $host;
            proxy_set_header  X-Real-IP  $remote_addr;
            proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
        }
        location ~ ^/(hryfile) {
            proxy_pass http://192.168.126.1:9002;
            proxy_set_header  Host $host;
            proxy_set_header  X-Real-IP  $remote_addr;
            proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
        }
        location ~ ^/(oauth) {
            proxy_pass http://192.168.126.1:9001;
            proxy_set_header  Host $host;
            proxy_set_header  X-Real-IP  $remote_addr;
            proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
        }
        location ~ ^/(hryfilefront) {
            proxy_pass http://192.168.126.1:9002;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header Host $host;
        }

        location ~ ^/(hryfile) {
            proxy_pass http://192.168.126.1:9002;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header Host $host;
        }
                  
        location ~ ^/(admin) {
            root /usr/share/nginx/html/admin;
            index  index.html;
        }
    }
    
    server {
        listen       80;
        server_name  hq.abc.com ;
        charset utf-8;

        location / {
            proxy_pass http://192.168.126.1.25:3000;
            proxy_set_header  Host $host;
            proxy_set_header  X-Real-IP  $remote_addr;
            proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
        }       
    }


}

安裝命令解析

docker pull nginx:1.12.2
docker run -itd --restart=unless-stopped -v /etc/localtime:/etc/localtime -v /etc/timezone:/etc/timezone -p $1:80:80 --name nginx -v /data/yjs/nginx/html:/usr/share/nginx/html -v /data/yjs/nginx/logs:/var/log/nginx -v /data/yjs/nginx/conf/nginx.conf:/etc/nginx/nginx.conf nginx:1.12.2

解析後:

#拉取版本1.12.2的nginx
docker pull nginx:1.12.2   
#-i: 以交互模式運行容器,通常與 -t 同時使用;
#-t: 爲容器重新分配一個僞輸入終端,通常與 -i 同時使用;
#-d: 後臺運行容器,並返回容器ID;
#通過--restart選項,可以設置容器的重啓策略,以決定在容器退出時Docker守護進程是否重啓剛剛退出的容器。
#unless-stopped,在容器退出時總是重啓容器,但是不考慮在Docker守護進程啓動時就已經停止了的容器
docker run -itd --restart=unless-stopped  
# 同步時區
-v /etc/localtime:/etc/localtime 
-v /etc/timezone:/etc/timezone 
#開放端口,並映射到本地的 80 端口。
-p $1:80:80 --name nginx 
#掛載到絕對路徑下
-v /data/yjs/nginx/html:/usr/share/nginx/html 
-v /data/yjs/nginx/logs:/var/log/nginx 
-v /data/yjs/nginx/conf/nginx.conf:/etc/nginx/nginx.conf nginx:1.12.2

參考資源路徑:

nginx add_header指令使用方法

https://www.jb51.net/article/47681.htm

nginx proxy_set_header設置、自定義header

https://blog.csdn.net/bao19901210/article/details/52537279

nginx location正則寫法

https://www.cnblogs.com/IPYQ/p/7889399.html

nginx配置文件nginx.conf超詳細講解

https://www.cnblogs.com/liang-wei/p/5849771.html

注意事項:

  • 配置路徑要爲絕對路徑
  • 上面的域名要想可以訪問,要使用域名信息備案過的域名方可
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章