centos7安装配置nginx

安装nginx

yum install -y nginx

设置开机启动

systemctl enable nginx

启动nginx

systemctl start nginx

如果启动报错:

nginx: [emerg] getpwnam("nginx") failed in /etc/nginx/nginx.conf:5

说明没有nginx 用户

#创建用户 -s /sbin/nologin 参数的含义是为nginx指定默认的shell,像常用的bash、csh、ash等等。nginx用户是为了让nginx服务以低权限执行,并不真正使用这个账号登录,所以将它设定为不可登录。/sbin/nologin就是专门执行这个任务的特殊的shell。
useradd -s /sbin/nologin -M nginx
#查看是否创建成功
id nginx

如果还报错:

#说明 同名用户组存在
useradd: group nginx exists - if you want to add this user to that group, use -g.
#解决方式 把nginx加入nginx组里:
useradd -g nginx nginx -s /sbin/nologin
#如果报错 说明passwd没有修改权限
useradd: cannot open /etc/passwd
#查看权限 有i 则无法修改
[root@0002 etc]# lsattr /etc/passwd
----ia-------e-- /etc/passwd
#去掉i,a权限如下方式 如遇到类似方式 都执行次操作
[root@0002 etc]# chattr -i /etc/passwd

nginx自身命令

#启动
/usr/sbin/nginx
#重载配置文件
/usr/sbin/nginx -s reload
#指定配置文件启动
/usr/sbin/nginx -c /etc/nginx/nginx.conf
#检测配置文件 正在运行的nginx执行 会找到使用的配置文件 如果文件删除 会报错 可用于查找运行时nginx问题
/usr/sbin/nginx -t
#或者检测指定配置文件
/usr/sbin/nginx -t -c /etc/nginx/nginx.conf
 # 快速停止nginx
/usr/sbin/nginx -s stop
# 完整有序的停止nginx,这个命令会等待所有请求结束后再关闭nginx
/usr/sbin/nginx -s quit

配置跨域并监听80端口
普通配置 vim /etc/nginx/nginx.conf

#配置虚拟主机的相关参数 一个http中可以有多个server
server {
		# 监听端口
        listen       80;
        # 监听ipv6端口
        listen       [::]:80;
        # 监听地址 ip地址或域名
        server_name  192.168.10.66;
        root         /home/www/vote;

        # Load configuration files for the default server block.
        # include /etc/nginx/default.d/*.conf;
        #请求的url过滤,正则匹配
        location / {
          #根目录
          #root   /home/www/vote;
          #设置默认首页
          #index  index.html;
          #转发请求
          proxy_pass  http://192.168.10.66:8989;
          #访问日志
          access_log  /var/log/nginx/access.log;
          #错误日志
          error_log   /var/log/nginx/error.log;
         }
        error_page 404 /404.html;
        location = /404.html {
        }

        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
        }
    }

配置跨域

location / {
					proxy_redirect off;
					proxy_pass http://domain;
					# 把客户端的 host ip 写入转发请求头里 转发给代理服务器
					proxy_set_header        Host                 $http_host;
					proxy_set_header        X-Real-IP            $remote_addr;
					proxy_set_header        X-Forwarded-For      $proxy_add_x_forwarded_for;
					proxy_set_header        Cookie $http_cookie;
					#允许客户端携带验证信息,例如 cookie 之类的
					add_header 'Access-Control-Allow-Credentials' 'true';
					# 表示服务器可以接受的请求源(Origin) * 代表全部 也可以配置成多个域的map $http_origin 是nginx取请求中header的origin的值
					add_header Access-Control-Allow-Origin $http_origin;
					# 允许使用指定的方法请求该地址
					add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS';
					# 代表允许在请求该地址的时候带上指定的请求头
					add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,token,Keep-Alive,Access-Control-Request-Headers,Access-Control-Request-Method,User-Agent,Referer,X-Requested-With,Origin,Referer,If-Modified-Since,Cache-Control,Content-Type,content-type,Authorization';
					# OPTIONS 代表预检 浏览器先发送个OPTIONS方法得空数据 检测可否跨域
					if ($request_method = 'OPTIONS') {   
					   # 用来指定本次预检请求的有效期,单位为秒
					   add_header 'Access-Control-Max-Age' 86400;
					   add_header 'Content-Type' 'text/plain; charset=utf-8';
					   add_header Access-Control-Allow-Origin $http_origin;
					   add_header 'Access-Control-Allow-Credentials' 'true';
					   add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,token,Keep-Alive,Access-Control-Request-Headers,Access-Control-Request-Method,User-Agent,Referer,X-Requested-With,Origin,Referer,If-Modified-Since,Cache-Control,Content-Type,content-type,Authorization';
					   add_header 'Content-Length' 0;

					   return 204;
					}
			   }

源码安装方式:

#下载源码
https://nginx.org/
#解压
tar -zxvf nginx-1.18.0.tar.gz 
#进目录
cd nginx-1.18.0
#生成配置 默认安装目录 /usr/local/nginx
./configure
#或者修改安装目录
./configure --prefix=/home/program/nginx
#编译安装
make
make install

配置过滤目录

location /dir-web/ {
         root   /home/dir-web;
         index  index.html index.htm;
         #把pmcm-web过滤掉 
         #例如:https://10.0.0.1:9005/dir-web/index.html 转成:  		   https://10.0.0.1:9005/index.html
         location ~ ^/dir-web(?<dir_path>.+) {
                        try_files /$dir_path /$dir_path/ /$dir_path/index.html;
                }
}

修改403,404访问页面

error_page  403              /403.html;
        error_page  404              /404.html;
		# /home/nginx/html/ 目录下放对应403.html 404.html文件
        location = /403.html {
            root /home/nginx/html/;
        }
		location = /404.html {
            root /home/nginx/html/;
        }
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值