Skip to content

部署流程 (Ubuntu)

目录

- base目录 /etc/nginx
- 初始html /var/www/html/

安装

> sudo apt install -y nginx

基本操作指令

> sudo service nginx start
> sudo systemctl start nginx

> sudo service nginx stop
> sudo systemctl stop nginx

重载

> nginx -s reload
> sudo service nginx reload
> sudo systemctl reload nginx

查看Nginx服务器状态

> sudo service nginx status

检查Nginx配置文件语法合规

> nginx -t

云服务器部署

  1. 禁用防火墙

    sudo ufw disable
    sudo systemctl stop iptables
    sudo systemctl stop firewalld
  2. 修改Nginx监听端口为内网端口

    需要知道服务器对应的"内网-外网转发端口映射关系"
    比如内网是8800, 对应外网是16120
    那么, Nginx中配置的监听端口为内网的8800
    外网访问时, 使用的是16120
  3. 重启Nginx & 重载Nginx配置

    nginx -s reload
  4. 监听端口,查看对应的内网端口是否是0.0.0.0,即允许外部端口转发访问

    ipstat
  5. 查看公网ip

    curl ip.sb
  6. 访问地址:"公网ip:外网端口"

配置

Nginx demo,listen监听的是内网端口,需要以0.0.0.0暴露到外网或者端口转发才可

server {
	listen 8800 default_server;
	listen [::]:8800 default_server;
	root /var/www/html;

	index index.html index.htm index.nginx-debian.html;
	server_name 223.109.239.11;
  	location /api/ {
		proxy_pass http://127.0.0.1:3000/api/;
		proxy_set_header Host $host;
		proxy_set_header X-Real-IP $remote_addr;
		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
		proxy_set_header X-Forwarded-Proto $scheme;
	}
	location / {
    try_files $uri $uri/ /index.html;
	}
}

转发其它内部端口,设置proxy_pass即可

server {
	listen 8801 default_server;
	listen [::]:8801 default_server;
	root /var/www/html;

	index index.html index.htm index.nginx-debian.html;
	server_name 223.109.239.11;
	location / {
		proxy_pass http://127.0.0.1:9997;
	}
	client_max_body_size 20m;
}

其它

SPA应用对路由的影响

SPA应用主要针对H5新增的历史路由,工程打包结合nginx配置,可以达到哈希路由的优点:仅提供单url入口即可实现前端页面的重绘与状态保持