http://nginx.org/en/download.html 下载了linux下的安装版本

tar -xvf nginx-1.16.0.tar.gz

# 编译器环境GCC
yum install gcc
# 支持正则表达式(如 location 路由匹配)。
yum install pcre-devel
#支持 HTTP 响应的 GZIP 压缩功能
yum install zlib zlib-devel
#支持 HTTPS(SSL/TLS 加密)、HTTP/2 等安全协议。
yum install openssl openssl-devel因为nginx是C写的,所以要安装C语言的编译环境 yum install gcc

nginx的安装路径下执行:./configure
注:有些Linux环境对开发同学是不给root用户的,所以没有权限操作nignx,这时需要指定nginx安装路径,请参考如下内容:
cd nginx
./configure --prefix=/data/yourspace #/data/yourspace你要安装的路径
make
make install

报错了,发现缺少PCRE,所以需要安装依赖 https://ftp.pcre.org/pub/pcre/ 。下载后解压 tar -xvf pcre-8.00.tar.gz 或者直接 yum -y install pcre-devel openssl openssl-devel后,再次安装./configure,以下代表安装成功了

/usr/local/nginx/sbin/nginx



启动命令 :nginx 停止:nginx -s stop

如果后面是需要非root用户运维Nginx,还需要此步操作。需要给非root用户授权
# chown -R 非root用户:非root用户组 /usr/local/nginx/
chown -R appuser : appuser /usr/local/nginx/如果是非root用户启用会报下面错误,这是因为Linux系统下的非root用户没有足够权限监听80端口,只有root用户才能监听1024以下端口。如果不是非用80不可,可以将nginx配置文件中的监听端口改为大于1024以上的其它端口。

如果一定要用可试试以下方法: 在Linux中,非root用户配置Nginx监听80端口的方法如下:
setcap 赋予端口绑定能力赋予Nginx绑定低端口的能力 执行以下命令,允许Nginx二进制文件绑定低端口(需root权限):
sudo setcap 'cap_net_bind_service=+ep' /usr/sbin/nginx/usr/sbin/nginx 与实际Nginx安装路径一致。配置Nginx以非root用户运行
在 nginx.conf 中设置用户:
user www-data; # 替换为你的非root用户调整文件权限 确保Nginx相关文件(如日志、证书)对该用户可访问:
sudo chown -R www-data:www-data /var/log/nginx/
sudo chmod -R 755 /etc/letsencrypt/live/ # 若使用SSL证书启动Nginx 直接以非root用户运行:
nginxauthbind 授权端口访问安装authbind Debian/Ubuntu:
sudo apt install authbind配置端口权限
sudo touch /etc/authbind/byport/80
sudo chown your_user:your_user /etc/authbind/byport/80
sudo chmod 755 /etc/authbind/byport/80通过authbind启动Nginx
authbind --deep nginx -c /path/to/nginx.confauthbind --deep。设置iptables规则 将80端口流量转发到高端口(如8080):
sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080持久化规则 Debian/Ubuntu:
sudo apt install iptables-persistent
sudo netfilter-persistent save配置Nginx监听高端口
在 nginx.conf 中修改监听端口:
listen 8080;部署轻量级代理 用root运行前端代理(如Nginx或HAProxy)监听80端口,转发到后端Nginx(如8080端口)。
前端代理配置示例(Nginx)
server {
listen 80;
location / {
proxy_pass http://localhost:8080;
}
}创建Systemd Socket文件
/etc/systemd/system/nginx.socket:
[Socket]
ListenStream=80
Accept=yes创建Service文件
/etc/systemd/system/nginx@.service:
[Service]
User=www-data
ExecStart=/usr/sbin/nginx启用并启动服务
sudo systemctl enable nginx.socket
sudo systemctl start nginx.socketssl-cert 组)。根据环境和权限选择合适的方法,推荐优先使用 setcap 或 authbind。
大致步骤为:
1.找到nginx的安路径下的配制文件:cd /usr/local/nginx/conf/
2.先备份好原有的nginx.conf,然后对其进行修改,可以直接在原文件中改,也可以引入外部文件进行修改。本例中将通过include引入外部文件进行修改
3.修改本机的hosts,路径为:/etc/hosts ,加上ip 域名映射
4.重新起动nginx服务即可,具体操作如下所示:
server {
# 监听 80 端口
listen 80;
autoindex on;
server_name cmss.test.ce.inc;
access_log /usr/local/nginx/logs/access.log combined;
index index.html index.htm index.jsp index.php;
if ( $query_string ~* ".*[\;'\<\>].*" ){
return 404;
}
location / {
# 反向代理到 8080 端口
proxy_pass http://192.168.1.90:9080;
add_header Access-Control-Allow-Origin *;
}
}

192.168.1.90 cmss.test.ce.incnginx -s reload好了,大功告成,可以通过域名访问 了~~~
