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"';
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name localhost;
location / {
root html;
index index.html index.htm;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
include sites-enabled/*.conf;
2、单个项目配置文件/nginx/conf/sites-enabled/jean.conf
server {
listen 80;
server_name www.jean.com;
root /mine/serve/project;
location ~* \.(jpg|jpeg|gif|css|png|js|ico|html)$ {
access_log off;
expires max;
access_log logs/access.jean.log main;
location / {
index index.html;
autoindex on;
autoindex_exact_size on;
autoindex_localtime on;
location ~ /\.ht {
deny all;
location ~ \.sh$ {
deny all;
3、测试配置
[root@192 sbin]# ./nginx -t
nginx: the configuration file /mine/serve/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /mine/serve/nginx/conf/nginx.conf test is successful
4、访问域名
正常输出!
5、查看日志
没有生成日志文件
[root@192 logs]# ls
access.log error.log nginx.pid
二、发现问题
1、当个项目配置文件/nginx/conf/sites-enabled/jean.conf
#可疑代码行
=-----------------------------------------------------=
location ~* \.(jpg|jpeg|gif|css|png|js|ico|html)$ {
access_log off;
expires max;
=-----------------------------------------------------=
注意:以上代码的意思是,所有访问是jpg|jpeg|gif|png、css|js|ico、html文件,都不写入日志,缓存都是保持最大!
2、解决问题
注释掉“access_log off;”这一行:“# access_log off;”,然后,重启nginx服务
并且,将nginx.conf文件,定义log_format的命令行打开(去掉前面的“#”)
=-----------------------------------------------------------------------=
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
=-----------------------------------------------------------------------=
3、再次访问域名,查看日志
果然,生成日志
[root@192 logs]# ls
access.jean.log access.log error.log nginx.pid
[root@192 logs]# ll
总用量 12
-rw-r--r--. 1 root root 194 11月 23 09:58 access.jean.log
-rw-r--r--. 1 root root 0 11月 23 03:12 access.log
-rw-r--r--. 1 root root 1442 11月 23 09:58 error.log
-rw-r--r--. 1 root root 4 11月 23 03:12 nginx.pid
有内容写入!!
4、可能有人会说,将“access_log logs/access.jean.log main;”放到【#可疑代码行】的上面,不行吗?不行,会创建一个access.jean.log文件,但是,不会写入内容!
三、问题总结
关于日志报错,一般有两个问题:
1、是开启日志,却没有生成日志,这种情况,首先,确认你有没有开启日志命令行,如“access_log logs/access.jean.log main;”,有,那就看你主配置文件nginx.conf和项目配置文件"/nginx/conf/sites-enabled/jean.conf"有没有"access_log off;"的命令行,若有,注释掉,重启nginx服务,一般没问题。
2、报“nginx: [emerg] "log_format" directive is not allowed here in /mine/serve/nginx/conf/sites-enabled/jean.conf:13”这种错误,通常"log_format"的定义必须在nginx.conf文件里,这个默认是注释的,开启即可,关于这个格式,你也可以在nginx.conf配置文件自定义,然后,在你的项目配置文件使用。
3、另外,日志格式"log_format"的定义,不能在项目配置文件,如“/nginx/conf/sites-enabled/jean.conf”中定义,否则,就会报错!
一、情景再现1、配置文件/nginx/conf/nginx.confworker_processes 1;events { worker_connections 1024;}http { include mime.types; default_type application/octet-stream; #log_form...
Nginx日志描述
通过访问日志,你可以得到用户地域来源、跳转来源、使用终端、某个URL访问量等相关信息;通过错误日志,你可以得到系统某个服务或server的性能瓶颈等。因此,将日志好好利用,你可以得到很多有价值的信息。
参数明细表:
$remote_addr
客户端的ip地址(代理服务器,显示代理服务ip)
$remote_user
用于记录远程客户端的用户名称(一般为“-”)
$time_local
用于记录访问时间和时区
$request
用于记录请求的url以及请求方法
$status
响应状态码,例如:200成功、404页面找不到等。
$body_byte
nginx.conf文件配置:
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "...
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入
欢迎使用Ma...
我们在公司实验室环境中使用nginx。 我的同事经常开发出一个应用程序,该应用程序现在已部署在我们的Stage或Prod环境中。 为了使该应用程序可访问,必须修改nginx。 大多数时候,我的同事没有访问服务器和更改配置文件的权限,并且由于我不想再对所有人都这样做了,所以我认为UI可以帮助我们所有人。 如果您有相同的想法,我希望您对应用程序感到满意,那么我希望收到您的反馈,更改请求甚至是好评。
容器化现在是最先进的技术,因此应用程序是在容器中交付的。
-d在后台作为守护进程运行
--restart=always在崩溃或服务器重启时重启
--name
<h3>回答1:</h3><br/>Linux Nginx配置文件是指Nginx服务器的配置文件,它包含了Nginx服务器的各种配置选项和参数,用于控制Nginx服务器的行为和功能。Nginx配置文件通常位于/etc/nginx目录下,主要包括nginx.conf、sites-available和sites-enabled等文件。其中,nginx.conf是Nginx服务器的主配置文件,用于配置全局参数和默认设置;sites-available和sites-enabled则用于配置虚拟主机和站点。在配置Nginx服务器时,需要根据实际需求修改配置文件,以达到最佳的性能和安全性。
<h3>回答2:</h3><br/>Linux作为一个开源的操作系统,被广泛地应用在各种服务器场景中,而Nginx作为一个高性能的Web服务器拥有着出色的负载能力和丰富的功能特性,使其在互联网应用中得到了广泛的应用。在Linux中Nginx的配置文件是一个重要的组成部分,该文件保存了Nginx服务器的所有配置信息,包括监听端口、虚拟主机、转发规则等。
Nginx的配置文件一般放置在/etc/nginx目录下,该目录下的nginx.conf是主配置文件,同时也是其他配置文件的入口文件。该文件主要包括了http、server、location等块,每个块都包含了不同的配置指令,并且可以继承其他块的配置,可以灵活地进行多层嵌套。
其中http块是最顶级的块,也是必须存在的,它定义了Nginx服务器的全局配置信息,包括服务器监听端口、代理服务器、负载均衡、缓存等基本配置信息。server块是定义虚拟主机的块,可以设置虚拟主机的监听端口、域名、证书等信息。location块则是定义URL路由和反向代理的块,可以设置转发规则、反向代理、缓存等信息。
在进行Nginx的配置时,可以使用注释对配置文件进行说明,以便后续维护者能够更加清晰地了解配置文件中的信息。同时,Nginx也提供了众多的指令和变量,可以分别用在不同的块中,以满足不同的应用场景。
总之,Nginx的配置文件是非常灵活的,在实际的应用过程中,需要不断地去优化和调整配置,以满足不同的应用需求。而对于开发者和运维人员来说,深入理解Nginx的配置文件,将对于提升应用性能和稳定性具有重要的意义。
<h3>回答3:</h3><br/>Linux是一种开源的操作系统,因为其高度的可定制性和安全性而被广泛使用。而Nginx则是一个高性能的Web服务器,是Web服务器中的一个重要对手,主要用于代理和负载均衡。
Nginx的配置文件有两个主要部分:全局块和Server块。全局块通常用于指定一些全局变量和指令,而Server块用于配置各个虚拟主机。
全局块通常位于nginx.conf文件的开头,其语法结构与Server块类似,只是其指定的指令对所有Server块共享。其中的一些重要变量包括: user nginx和worker_processes auto。user nginx表示Nginx用哪个用户身份运行,而worker_processes auto表示Nginx的工作进程数是自动选择的。此外,还可以通过指定事件模块来进行指定优化,如:events {worker_connections 1024;},表示服务器可以同时处理的最大连接数为1024个。
Server块通常指定不同域名或IP地址的服务器的行为。首先是指定server_name,如:server_name example.com www.example.com,其中example.com和www.example.com都指向同一个网站。接下来是listen指令,指定该虚拟主机监听的端口和协议,如: listen 80 default_server;。其中的端口80是标准的HTTP端口,default_server表示如果没有匹配到其他server,则使用该server作为默认的server。
最后是location块,用于匹配URL的请求,执行相应的操作。例如, location / { root /usr/share/nginx/html; index index.html index.htm; },表示匹配所有的URL请求,并返回网页文件。其中,root指向网页文件的根目录,index指定了可以使用的文件名。
通过这些配置就可以成功地在Linux上配置Nginx,使其高效地运行,并处理所有的Web请求。结合不同的指令和变量,可以定制出适合自己的Web服务器。