1、查看可用源
docker search nginx
?2、安裝nginx鏡像
docker pull nginx
3、查看已安裝的nginx
docker images
?或者直接通過docker客戶端查看
4、運行nginx
docker run --name NginxTest -p 8080:8080 -d nginx
--name NginxTest:容器名稱
-p 8080:8080:映射端口
-d nginx:設(shè)置容器后臺運行
5、查看已運行容器
docker ps -a ### 所有容器,包括未運行
?docker客戶端查看
6、訪問測試?
7、創(chuàng)建本地掛載文件
mkdir -p /Users/huakai-mozhiqi/docker/nginx/log
mkdir -p /Users/huakai-mozhiqi/docker/nginx/html
mkdir -p /Users/huakai-mozhiqi/docker/nginx/conf
mkdir -p /Users/huakai-mozhiqi/docker/nginx/conf.d(注意:這是文件夾)
8、將nginx容器中的文件復制到主機
docker cp NginxTest:/etc/nginx/nginx.conf /Users/huakai-mozhiqi/nginx/conf/nginx.conf
docker cp NginxTest:/etc/nginx/conf.d/default.conf /Users/huakai-mozhiqi/docker/nginx/conf/conf.d/default.conf
9、修改nginx/confnginx.conf文件配置
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
client_max_body_size 10m;
client_body_buffer_size 128k;
# 代理配置1
server {
listen 8990;
server_name localhost;
location / {
proxy_pass http://172.16.***.**:****;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass_header Server;
proxy_redirect / /;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Scheme $scheme;
}
location ~(^\/api)(.*) {
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_buffering off;
proxy_pass http://127.0.0.1:8013;
}
}
# 代理配置2
server {
listen 8991;
server_name localhost;
location / {
proxy_pass http://172.16.***.**:****;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass_header Server;
proxy_redirect / /;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Scheme $scheme;
}
location ~(^\/api)(.*) {
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_buffering off;
proxy_pass http://127.0.0.1:12800;
}
location ~(^\/auth)(.*) {
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_buffering off;
proxy_pass http://127.0.0.1:12800;
}
}
}
1)全局塊:配置服務器整體運行的配置指令
nginx 服務器整體運行的配置指令,主要包括配置運行 Nginx 服務器的用戶(組)、允許生成的 worker process 數(shù),進程 PID 存放路徑、日志存放路徑和類型以及配置文件的引入等。
worker_processes 1;
# Nginx 服務器并發(fā)處理服務的關(guān)鍵配置,worker_processes 值越大,可以支持的并發(fā)處理量也越多。
2)events 塊:影響 Nginx 服務器與用戶的網(wǎng)絡(luò)連接
Nginx 服務器與用戶的網(wǎng)絡(luò)連接配置,包括是否開啟對多 work process下的網(wǎng)絡(luò)連接進行序列化,是否允許同時接收多個網(wǎng)絡(luò)連接,選取哪種事件驅(qū)動模型來處理連接請求,每個 work process 可以同時支持的最大連接數(shù)等。
events {
????????worker_connections 1024;
}
# 每個 work process 支持的最大連接數(shù)為 1024。
3)http 塊
????????Nginx 服務器代理、緩存和日志定義等絕大多數(shù)功能和第三方模塊的配置。
http {
?? ?include mime.types;
?? ?default_type application/octet-stream;
?? ?sendfile on;
?? ?keepalive_timeout 65;
?? ?client_max_body_size 10m;
?? ?client_body_buffer_size 128k;
?? ?# 代理配置1
?? ?server {
?? ??? ?listen 8990;?
?? ??? ?server_name localhost;
?? ??? ?location / {
?? ??? ??? ?proxy_pass http://172.16.***.**:****;
?? ??? ??? ?proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
?? ??? ??? ?proxy_pass_header Server;?? ??? ??? ?proxy_redirect / /;
?? ??? ??? ?proxy_set_header Host $http_host;
?? ??? ??? ?proxy_set_header X-Real-IP $remote_addr;
?? ??? ??? ?proxy_set_header X-Scheme $scheme;
?? ??? ?}
?? ??? ?location ~(^\/api)(.*) {
?? ??? ??? ?proxy_set_header Host $host:$server_port;
?? ??? ??? ?proxy_set_header X-Real-IP $remote_addr;
?? ??? ??? ?proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
?? ??? ??? ?proxy_buffering off;
?? ??? ??? ?proxy_pass http://127.0.0.1:8013;
?? ??? ?}?? ?}
}
a、http 全局塊
????????http 全局塊配置的指令包括文件引入、MIME-TYPE 定義、日志自定義、連接超時時間、單鏈接請求數(shù)上限等。
b、全局 server 塊?
listen 8990;?
server_name localhost;#需要監(jiān)聽的ip、端口配置
????????注意:server_name的配置不需要加“http://”
c、location 塊
????????一個 server 塊可以配置多個 location 塊。這塊的主要作用是基于 Nginx 服務器接收到的請求字符串(例如 server_name/uri-string),對虛擬主機名稱(也可以是 IP 別名)之外的字符串(例如 前面的 /uri-string)進行匹配,對特定的請求進行處理。地址定向、數(shù)據(jù)緩存和應答控制等功能,還有許多第三方模塊的配置也在這里進行。
?location / {}
?location ~(^\/api)(.*) {}
# 需要進行代理的請求路徑
proxy_pass http://172.16.***.**:****;
proxy_pass http://127.0.0.1:8013;
# 代理指向的ip:端口
????????注意:當通過docker部署nginx時,如指向本機應為 本機IP:端口號
?
10、運行鏡像
docker run --name myNginx --restart always -m 2g --cpus 1 -e TZ='Asia/Shanghai' -p 8990:8990 -p 8991:8991 -p 8992:8992 -v /Users/huakai-mozhiqi/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /Users/huakai-mozhiqi/nginx/conf/conf.d:/etc/nginx/conf.d -v /Users/huakai-mozhiqi/nginx/logs:/var/log/nginx -v /Users/huakai-mozhiqi/nginx/html:/usr/share/nginx/html -d nginx
--name myNginx:容器名稱
--restart always:重啟docker自動啟動容器
-m 2g:容器可以使用的最大內(nèi)存量
--cpus 1:可以使用的CPU數(shù)量
-e TZ='Asia/Shanghai':容器時區(qū)
-p 8990:8990:映射端口1
-p 8991:8991:映射端口2
-v /Users/huakai-mozhiqi/nginx/conf/nginx.conf:/etc/nginx/nginx.conf:掛載主配置文件"nginx.conf"
-v /Users/huakai-mozhiqi/nginx/conf/conf.d:/etc/nginx/conf.d:掛載docker內(nèi)子配置文件的路徑
-v /Users/huakai-mozhiqi/nginx/logs:/var/log/nginx:掛載ngixn日志
-v /Users/huakai-mozhiqi/nginx/html:/usr/share/nginx/html:掛載項目位置
-d nginx:設(shè)置容器后臺運行
????????注意:mac下文件路徑區(qū)分大小寫
11、查看掛載情況
docker inspect myNginx | grep Mounts -A 200
?
12、訪問文章來源:http://www.zghlxwxcb.cn/news/detail-784370.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-784370.html
到了這里,關(guān)于Mac Docker安裝配置nginx,配置代理前端訪問服務器后端訪問本地啟動項目的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!