#運行用戶,默認即是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指令使用方法
nginx proxy_set_header設置、自定義header
nginx location正則寫法
nginx配置文件nginx.conf超詳細講解
注意事項:
- 配置路徑要爲絕對路徑
- 上面的域名要想可以訪問,要使用域名信息備案過的域名方可