otfker部署nginx

环境说明:

  linux centos环境下

操作准备:

  已安装docker

开始:

1.拉取镜像

docker pull nginx

2.准备一份nginx.conf文件上传至/root/nginx/文件夹下,没有的话末尾贴出一份配置供使用,注意该文件编码格式一定要为UTF-8,否则会读取失败,切记。

3.创建nginx容器,配置文件挂载

docker run -d -p 80:80 -v /root/nginx/:/var/log/nginx/ -v /root/nginx/nginx.conf:/etc/nginx/nginx.conf:ro --name nginx  nginx

  说明:-v 为挂载命令,本示例挂载路径为/root/nginx/,暴露的端口为80

  至此nginx配置完成,可用过IP进行访问

 

4.如需更改nginx配置,操作如下

  修改docker宿主机的nginx.conf文件,重启docker即可生效,重启指令

 

docker restart nginx

 

 

5.部署完成后,nginx运行和错误日志为access.log和error.log文件

 

注:如果部署完后未生效,可通过docker logs nginx查看输出日志定位问题,一般为路径和文件编码问题所致。

 

示例nginx.conf文件,注意修改http{}中的负载IP

  

##代码块中的events、http、server、location、upstream等都是块配置项##

##块配置项可以嵌套。内层块直接继承外层快,例如:server块里的任意配置都是基于http块里的已有配置的##

##Nginx worker进程运行的用户及用户组

#语法:user username[groupname] 默认:user nobody nobody

#user用于设置master进程启动后,fork出的worker进程运行在那个用户和用户组下。当按照"user username;"设置时,用户组名与用户名相同。

#若用户在configure命令执行时,使用了参数--user=usergroup 和 --group=groupname,此时nginx.conf将使用参数中指定的用户和用户组。

#user nobody;

##Nginx worker进程个数:其数量直接影响性能。

#每个worker进程都是单线程的进程,他们会调用各个模块以实现多种多样的功能。如果这些模块不会出现阻塞式的调用,那么,有多少CPU内核就应该配置多少个进程,反之,有可能出现阻塞式调用,那么,需要配置稍多一些的worker进程。

worker_processes 1;

##ssl硬件加速。

#用户可以用OpneSSL提供的命令来查看是否有ssl硬件加速设备:openssl engine -t

#ssl_engine device;

##守护进程(daemon)。是脱离终端在后台允许的进程。它脱离终端是为了避免进程执行过程中的信息在任何终端上显示。这样一来,进程也不会被任何终端所产生的信息所打断。##

##关闭守护进程的模式,之所以提供这种模式,是为了放便跟踪调试nginx,毕竟用gdb调试进程时最繁琐的就是如何继续跟进fork出的子进程了。##

##如果用off关闭了master_proccess方式,就不会fork出worker子进程来处理请求,而是用master进程自身来处理请求

#daemon off; #查看是否以守护进程的方式运行Nginx 默认是on

#master_process off; #是否以master/worker方式工作 默认是on

##error日志的设置#

#语法: error_log /path/file level;

#默认: error_log / log/error.log error;

#当path/file 的值为 /dev/null时,这样就不会输出任何日志了,这也是关闭error日志的唯一手段;

#leve的取值范围是debug、info、notice、warn、error、crit、alert、emerg从左至右级别依次增大。

#当level的级别为error时,error、crit、alert、emerg级别的日志就都会输出。大于等于该级别会输出,小于该级别的不会输出。

#如果设定的日志级别是debug,则会输出所有的日志,这一数据量会很大,需要预先确保/path/file所在的磁盘有足够的磁盘空间。级别设定到debug,必须在configure时加入 --with-debug配置项。

#error_log logs/error.log;

#error_log logs/error.log notice;

#error_log logs/error.log info;

##pid文件(master进程ID的pid文件存放路径)的路径

#pid logs/nginx.pid;

events {

#仅对指定的客户端输出debug级别的日志: 语法:debug_connection[IP|CIDR]

#这个设置项实际上属于事件类配置,因此必须放在events{……}中才会生效。它的值可以是IP地址或者是CIRD地址。

#debug_connection 10.224.66.14; #或是debug_connection 10.224.57.0/24

#这样,仅仅以上IP地址的请求才会输出debug级别的日志,其他请求仍然沿用error_log中配置的日志级别。

#注意:在使用debug_connection前,需确保在执行configure时已经加入了--with-debug参数,否则不会生效。

worker_connections 1024;

}

##核心转储(coredump):在Linux系统中,当进程发生错误或收到信号而终止时,系统会将进程执行时的内存内容(核心映像)写入一个文件(core文件),以作为调试只用,这就是所谓的核心转储(coredump).

http {

##嵌入其他配置文件 语法:include /path/file

#参数既可以是绝对路径也可以是相对路径(相对于Nginx的配置目录,即nginx.conf所在的目录)

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;

sendfile on;

#tcp_nopush on;

#keepalive_timeout 0;

keepalive_timeout 65;

upstream taishan {

#weigth参数表示权值,权值越高被分配到的几率越大

#下面表示9500有3分之2几率,9501有3分之1几率

server 47.206.155.885:9500 weight=2;

server 47.206.155.885:9501 weight=1;

}

#gzip on;

server {

##listen监听的端口

#语法:listen address:port [ default(deprecated in0.8.21) | default_server | [ backlog=num | rcvbuf=size | sndbuf=size | accept_filter=filter | deferred | bind | ssl ] ]

#default_server: 如果没有设置这个参数,那么将会以在nginx.conf中找到的第一个server块作为默认server块

listen 80;

#主机名称:其后可以跟多个主机名称,开始处理一个HTTP请求时,nginx会取出header头中的Host,与每个server中的server_name进行匹配,以此决定到底由那一个server来处理这个请求。有可能一个Host与多个server块中的server_name都匹配,这时会根据匹配优先级来选择实际处理的server块。server_name与Host的匹配优先级见文末。

server_name localhost;

#charset koi8-r;

#access_log logs/host.access.log main;

#location / {

# root html;

# index index.html index.htm;

#}

##location 语法: location [=|~|~*|^~] /uri/ { ... }

# location的使用实例见文末。

#注意:location时有顺序的,当一个请求有可能匹配多个location时,实际上这个请求会被第一个location处理。

location / {

proxy_pass http://taishan;

}

#error_page 404 /404.html;

# redirect server error pages to the static page /50x.html

#

error_page 500502503504 /50x.html;

location = /50x.html {

root html;

}

# proxy the PHP scripts to Apache listening on 127.0.0.1:80

#

#location ~ \.php$ {

# proxy_pass http://39.96.34.52:8091;

#}

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000

#

#location ~ \.php$ {

# root html;

# fastcgi_pass 127.0.0.1:9000;

# fastcgi_index index.php;

# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;

# include fastcgi_params;

#}

# deny access to .htaccess files, if Apache's document root

# concurs with nginx's one

#

#location ~ /\.ht {

# deny all;

#}

}

# another virtual host using mix of IP-, name-, and port-based configuration

#

#server {

# listen 8000;

# listen somename:8080;

# server_name somename alias another.alias;

# location / {

# root html;

# index index.html index.htm;

# }

#}

# HTTPS server

#

#server {

# listen 443 ssl;

# server_name localhost;

# ssl_certificate cert.pem;

# ssl_certificate_key cert.key;

# ssl_session_cache shared:SSL:1m;

# ssl_session_timeout 5m;

# ssl_ciphers HIGH:!aNULL:!MD5;

# ssl_prefer_server_ciphers on;

# location / {

# root html;

# index index.html index.htm;

# }

#}

}

  

完事了。

以上是 otfker部署nginx 的全部内容, 来源链接: utcz.com/p/54517.html

回到顶部