CentOS配置离线Nginx
1.任务需求
使用nginx代理前端静态资源,以达到访问的目的,但服务器不可访问外网,只能内部开发,因此需要安装离线的nginx
2.下载必要文件
- 依赖文件
gcc-c++、openssl、zlib、pcre - Nginx离线包
nginx-1.22.0.tar.gz(也可尝试最新稳定版)
链接: https://pan.baidu.com/s/17HHskzOWZ7dodU1Rpf4RJA 提取码: jehq
3.安装
- 安装依赖
目录:/root/nginx-install
将依赖文件放到该目录
rpm -Uvh --force --nodeps ./gcc-c++/*.rpm
rpm -Uvh --force --nodeps ./openssl/*.rpm
rpm -Uvh --force --nodeps ./pcre/*.rpm
rpm -Uvh --force --nodeps ./zlib/*.rpm
- 安装nginx
解压nginx的文件
tar -zxvf 安装包名
进行配置
1. ./configure --prefix=/data/nginx
/data/nginx 为指定安装目录,也可以是
2. make
3. make install
4. 启动nginx: /usr/local/nginx/sbin/nginx
5. 验证是否安装 ps -ef|grep nginx
- 配置多个nginx文件
找到目录 /data/nginx/nginx.conf
http {
...
include /data/nginx/conf.d/*.conf;
}
之后,所有的文件可以写到conf.d文件下
- 使用的前端nginx配置
map $sent_http_content_type $expires {
default off;
text/html -1;
text/css max;
application/javascript max;
~image/ max;
}
server {
listen 80;
server_name localhost;
# 自定义过期时间,解决微信浏览器缓存问题
expires $expires;
# 开启 gzip on
# gzip 预编译
gzip_static on;
gzip on;
gzip_disable "msie6";
gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_buffers 16 8k;
gzip_http_version 1.1;
gzip_min_length 256;
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss application/javascript text/javascript application/vnd.ms-fontobject application/x-font-ttf font/opentype image/svg+xml image/x-icon;
#fix nginx头部没有token 是使用_导致的
underscores_in_headers on;
# location / {
# add_header Access-Control-Allow-Origin *;
# index index.html index.htm;
# try_files $uri $uri/ /index.html;
# }
location / {
add_header Access-Control-Allow-Origin *;
alias /usr/share/nginx/html/;
index index.html index.htm;
try_files $uri $uri/ /index.html;
}
# 代理
# location /my {
# proxy_pass https://qingyulan.967111.net;
# }
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
- 出现的问题
-
bash: nginx: command not found
解决:ln -s /usr/local/nginx/sbin/nginx /usr/local/bin/ -
./nginx -s reload重新读取配置文件
nginx: [error] open() "/usr/local/nginx/logs/nginx.pid" failed
解决:/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf -
nginx中配置gzip_static on提示nginx: [emerg] unknown directive “gzip_static“ in
通过nginx配置开启解压缩静态文件gzip_static on后,启动nginx会提示nginx: [emerg] unknown directive “gzip_static” in,访问页面会发现有些js找不到,在目录下查找文件时发现是已gz结尾的,系统没有自动识别解压
./nginx -V 查看nginx信息,是否有配置–with-http_gzip_static_module
解决:./configure --prefix=/data/nginx --with-http_gzip_static_module -
出现已启动现象,就删除掉
解决:ps -ef|grep nginx,并使用kill -quit xxxx
评论区