日常我们在使用Ngnix的时候,经常碰到的是通过指令进行合理配置,可以让一台Nginx服 务器正常工作,并且提供基本的web服务器功能。
接下来介绍一下如何通过一个比较完整和最简单的基础配置实例进行配置?
现在有这样一个简单的需求,如何实现(1)有如下访问:
http://192.168.200.133:8081/server1/location1 访问的是:index_sr1_location1.html http://192.168.200.133:8081/server1/location2 访问的是:index_sr1_location2.html http://192.168.200.133:8082/server2/location1 访问的是:index_sr2_location1.html http://192.168.200.133:8082/server2/location2 访问的是:index_sr2_location2.html (2)如果访问的资源不存在, 返回自定义的404页面 (3)将/server1和/server2的配置使用不同的配置文件分割 将文件放到/home/www/conf.d目录下,然后使用include进行 合并 (4)为/server1和/server2各自创建一个访问日志文件
先准备好对应的静态资源文件,如果有需要的可以后台私信我
使用tree /home/www 展现对应的目录结构
这里使用cp nginx.conf.default ngnix.conf,将ngnix文件进行复制
之后写
user www; // 用来指定ngnix进程对应的用户
worker_processess 2;// 指定生成工作进程的个数,最好与CPU数目相同
error_log 第三个指定的是error.log文件,会将错误信息放到error.log里面
pid是用来指定当前master存放pid进程的文件
daemon on 是保护模式,默认系统就是daemon on 这里默认也可以不写
accept_mutex on; 解決惊群现象
multi_accept on;允许ngnix连接多个请求,worker_connections最大所能接收连接数
events 中的use epoll是处理的模型的类型,http中的sendfile是处理静态资源的类型
这里可以使用include 引入ngnix的相关配置,log_format可以指定日志打印的信息
之后编写统一配置文件conf.d
使用 vim/home/www/conf.d/server1.conf
创建配置文件
编写 server1/location1中的文件内容,server_name除localhost外也可以写IP和域名,access_log 编写登录日志内容 路径+参数格式,location 中在访问 /server1/location1时寻找路径root 和首页index
最后编写访问失败后跳转到404.html页面
再创建名字为2的配置文件
改一改路径和日志信息,最后按ESC :wq退出
之后返回到sbin文件下,检验语法,重新加载
server1路径呈现内容,server2路径呈现不同内容
使用tail -f /home/xxxx 可以查看对应登录日志信息
相关配置文件:
##全局块 begin## #配置允许运行Nginx工作进程的用户和用户组 user www; #配置运行Nginx进程生成的worker进程数 worker_processes 2; #配置Nginx服务器运行对错误日志存放的路径 error_log logs/error.log; #配置Nginx服务器允许时记录Nginx的master进程的PID文件路径和名 称 pid logs/nginx.pid; #配置Nginx服务是否以守护进程方法启动 #daemon on; ##全局块 end## ##events块 begin## events{ #设置Nginx网络连接序列化 accept_mutex on; #设置Nginx的worker进程是否可以同时接收多个请求 multi_accept on; #设置Nginx的worker进程最大的连接数 worker_connections 1024; #设置Nginx使用的事件驱动模型 use epoll; } ##events块 end## ##http块 start## http{ #定义MIME-Type include mime.types; default_type application/octet-stream; #配置允许使用sendfile方式运输 sendfile on; #配置连接超时时间 keepalive_timeout 65; #配置请求处理日志格式 log_format server1 '===>server1 access log'; log_format server2 '===>server2 access log'; ##server块 开始## include /home/www/conf.d/*.conf; ##server块 结束## }
server1.conf的配置文件:
server{ #配置监听端口和主机名称 listen 8081; server_name localhost; #配置请求处理日志存放路径 access_log /home/www/myweb/server1/logs/access.log server1; #配置错误页面 error_page 404 /404.html; #配置处理/server1/location1请求的location location /server1/location1{ root /home/www/myweb; index index_sr1_location1.html; } #配置处理/server1/location2请求的location location /server1/location2{ root /home/www/myweb; index index_sr1_location2.html; } #配置错误页面转向 location = /404.html { root /home/www/myweb; index 404.html; } }
server2.conf的配置文件:
server{ #配置监听端口和主机名称 listen 8082; server_name localhost; #配置请求处理日志存放路径 access_log /home/www/myweb/server2/logs/access.log server2; #配置错误页面,对404.html做了定向配置 error_page 404 /404.html; #配置处理/server1/location1请求的location location /server2/location1{ root /home/www/myweb; index index_sr2_location1.html; } #配置处理/server2/location2请求的location location /server2/location2{ root /home/www/myweb; index index_sr2_location2.html; } #配置错误页面转向 location = /404.html { root /home/www/myweb; index 404.html; } }