文章目录

  • 一、安装nginx
    • docker方式安装
    • linux方式安装
      • Ubuntu 或 Debian 系统:
      • CentOS 或 RHEL 系统:
    • macOS 系统(使用 Homebrew):
    • Windows 系统:
  • 二、nginx.conf浅析

一、安装nginx

docker方式安装

docker search nginxdocker pull nginx# 创建一个nginx目录,用于挂载nginx容器中的配置文件cd /home/testmkdir nginxcd nginxmkdir confmkdir logmkdir htmldocker run -d -p 80:80 --name nginx --restart=alwaysnginxdocker psdocker cp nginx:/etc/nginx/nginx.conf /home/test/nginx/conf/nginx.confdocker cp nginx:/etc/nginx/conf.d /home/test/nginx/conf/conf.ddocker cp nginx:/usr/share/nginx/html /home/test/nginx/

docker rm -f nginx# 重新启动容器docker run -d -p 80:80 --name=nginx --privileged=true -v /home/test/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /home/test/nginx/conf/conf.d:/etc/nginx/conf.d -v /home/test/nginx/log:/var/log/nginx -v /home/test/nginx/html:/usr/share/nginx/html nginx# 测试nginx启动是否成功curl 127.0.0.1:80

linux方式安装

Ubuntu 或 Debian 系统:

使用 apt 包管理器进行安装:

sudo apt updatesudo apt install nginx

安装完成后,可以使用以下命令启动 Nginx:

sudo systemctl start nginx

CentOS 或 RHEL 系统:

使用 yum 包管理器进行安装:

sudo yum install epel-releasesudo yum install nginx

安装完成后,可以使用以下命令启动 Nginx:

sudo systemctl start nginx

macOS 系统(使用 Homebrew):

安装 Homebrew(如果尚未安装):

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

使用 brew 包管理器安装 Nginx:

brew install nginx

安装完成后,可以使用以下命令启动 Nginx:

brew services start nginx

Windows 系统:

下载 Nginx 的 Windows 版本,并解压缩到目标文件夹。
在解压后的文件夹中,运行 nginx.exe 来启动 Nginx。

二、nginx.conf浅析

# 设置Nginx工作进程所运行的用户。user nginx; # 根据CPU核心数量自动设置工作进程的数量。默认1worker_processes auto;# 指定错误日志文件的路径和日志级别。error_log/var/log/nginx/error.log notice;# 指定主Nginx进程的PID文件路径。pid/var/run/nginx.pid; # 每个进程创建的连接数,默认1024events{worker_connections 1024;}http{# mime.types是一个文件,包含着请求头的各种文件类型html、txt、mp4、jpg等等,可以在文件中配置增加请求头类型# include 将一个配置文件引入到当前配置文件中include /etc/nginx/mime.types;# 如果mime.types中没有请求头类型,默认使用二进制流default_type application/octet-stream;# 定义访问日志的格式。log_formatmain'$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';# 开启通过sendfile系统调用来发送文件。sendfile on;# 保持长连接keepalive_timeout 65;# 指定访问日志文件的路径和使用的日志格式。access_log/var/log/nginx/access.logmain;# 包含"/etc/nginx/conf.d/"目录下的所有配置文件。 include /etc/nginx/conf.d/*.conf;}

可在http中增加server,配置代理内容,server内容格式示例如下:

# 主机,可以多个主机(server)server{# 监听端口号,每个server的端口号不一样listen 80;# 域名、主机名server_name localhost;# 域名后的目录、路径urilocation /{# 匹配的相对路径root html;index index.html index.htm;}# 报错页面转向到/50x.html地址error_page 500 502 503 504 /50x.html;location = /50x.html {root html;}}